e3be4116 (main)
and
ee26eedb (PR)
+22 -4
+3 -1
[
{
"type": "ethereum",
"daLayer": "ethereum",
"sinceBlock": 23397515,
"inbox": "0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"sequencers": [
"0x415Ed64D42BC0c37AeaAEf79AA767d963Ef38807",
"0x4b2d036D2c27192549ad5A2F2D9875E1843833De"
"0x4b2d036D2c27192549ad5A2F2D9875E1843833De",
"0x6be789605b13Edb78749824633b9933D44B582ba",
"0xD85618da9E4A86DCC29180E0E683D3EA5412A0F8"
]
}
]
+18 -2
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "Abstract Multisig",
"name": "Abstract Multisig",
"description": "A Multisig with 4/8 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: ChainAdmin]",
"accounts": [
{
"address": "eth:0x7F3EaB9ccf1d8B9705F7ede895d3b4aC1b631063",
"type": "Contract",
"isVerified": true,
"name": "0x7F3E…1063",
"url": "https://etherscan.io/address/0x7F3EaB9ccf1d8B9705F7ede895d3b4aC1b631063"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x57533344e91d29f927AAEBee364A33633Bd205Ab",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x57533344e91d29f927AAEBee364A33633Bd205Ab"
},
{
"address": "eth:0xFC84E99984A3526dea97c408f5991A5E099f3Da2",
"type": "EOA",
"isVerified": true,
"name": "0xFC84…3Da2",
"url": "https://etherscan.io/address/0xFC84E99984A3526dea97c408f5991A5E099f3Da2"
},
{
"address": "eth:0x58536761C97F5037931b56efeE922471add0eEe8",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x58536761C97F5037931b56efeE922471add0eEe8"
},
{
"address": "eth:0x0807C9f0247084cf1C5aB86A8fb00e7c70Cd27eB",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x0807C9f0247084cf1C5aB86A8fb00e7c70Cd27eB"
},
{
"address": "eth:0x1CdfBDED92D46261837827607e674110Ca5a0575",
"type": "EOA",
"isVerified": true,
"name": "0x1Cdf…0575",
"url": "https://etherscan.io/address/0x1CdfBDED92D46261837827607e674110Ca5a0575"
},
{
"address": "eth:0x325407EEC948b97429068AF0cd8A8D95F06315a4",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x325407EEC948b97429068AF0cd8A8D95F06315a4"
},
{
"address": "eth:0x77D1124E9061d238430Df3F4311111BDf69a4CFA",
"type": "EOA",
"isVerified": true,
"name": "0x77D1…4CFA",
"url": "https://etherscan.io/address/0x77D1124E9061d238430Df3F4311111BDf69a4CFA"
},
{
"address": "eth:0x79CF3eCF9Bbfd793d8Be62ED44D98d9AfA657892",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x79CF3eCF9Bbfd793d8Be62ED44D98d9AfA657892"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"id": "EOA-1,-EOA-2,-EOA-3-and-EOA-4",
"name": "EOA 1, EOA 2, EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x415Ed64D42BC0c37AeaAEf79AA767d963Ef38807",
"type": "EOA",
"isVerified": true,
"name": "0x415E…8807",
"url": "https://etherscan.io/address/0x415Ed64D42BC0c37AeaAEf79AA767d963Ef38807",
"displayName": "EOA 1"
},
{
"address": "eth:0x4b2d036D2c27192549ad5A2F2D9875E1843833De",
"type": "EOA",
"isVerified": true,
"name": "0x4b2d…33De",
"url": "https://etherscan.io/address/0x4b2d036D2c27192549ad5A2F2D9875E1843833De",
"displayName": "EOA 2"
},
{
"address": "eth:0x6be789605b13Edb78749824633b9933D44B582ba",
"type": "EOA",
"isVerified": true,
"name": "0x6be7…82ba",
"url": "https://etherscan.io/address/0x6be789605b13Edb78749824633b9933D44B582ba",
"displayName": "EOA 3"
},
{
"address": "eth:0xD85618da9E4A86DCC29180E0E683D3EA5412A0F8",
"type": "EOA",
"isVerified": true,
"name": "0xD856…A0F8",
"url": "https://etherscan.io/address/0xD85618da9E4A86DCC29180E0E683D3EA5412A0F8",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602618,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "AstarMultisig",
"name": "AstarMultisig",
"description": "A Multisig with 3/6 threshold. \n* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]\n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches \n * sole address that can force batches \n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments ",
"accounts": [
{
"address": "eth:0xf98ee8c46baEa2B11e4f0450AD9D01861265F76E",
"type": "Contract",
"isVerified": true,
"name": "0xf98e…F76E",
"url": "https://etherscan.io/address/0xf98ee8c46baEa2B11e4f0450AD9D01861265F76E"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xe4D4fBC6e27B3AE9D881BD9400071FB6c62E4dfa",
"type": "EOA",
"isVerified": true,
"name": "0xe4D4…4dfa",
"url": "https://etherscan.io/address/0xe4D4fBC6e27B3AE9D881BD9400071FB6c62E4dfa"
},
{
"address": "eth:0xEc24369A1269171e3cb0A323DD920F99Cb528Fb0",
"type": "EOA",
"isVerified": true,
"name": "0xEc24…8Fb0",
"url": "https://etherscan.io/address/0xEc24369A1269171e3cb0A323DD920F99Cb528Fb0"
},
{
"address": "eth:0x127Bae6Fc751dC92111a359500ae91EB437f3dCb",
"type": "EOA",
"isVerified": true,
"name": "0x127B…3dCb",
"url": "https://etherscan.io/address/0x127Bae6Fc751dC92111a359500ae91EB437f3dCb"
},
{
"address": "eth:0x83cC8195856b0463dEd5f052021009b7985FDa2C",
"type": "EOA",
"isVerified": true,
"name": "0x83cC…Da2C",
"url": "https://etherscan.io/address/0x83cC8195856b0463dEd5f052021009b7985FDa2C"
},
{
"address": "eth:0x4324c3960c7B2567D0C13ba17493bb364c407937",
"type": "EOA",
"isVerified": true,
"name": "0x4324…7937",
"url": "https://etherscan.io/address/0x4324c3960c7B2567D0C13ba17493bb364c407937"
},
{
"address": "eth:0x6c4876Ecb5de33f76700f44d547C593065806dAC",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "#GnosisSafe"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "GnosisSafe",
"name": "GnosisSafe",
"description": "A Multisig with 1/3 threshold. \nMember of AstarMultisig.\n",
"accounts": [
{
"address": "eth:0x6c4876Ecb5de33f76700f44d547C593065806dAC",
"type": "Contract",
"isVerified": true,
"name": "0x6c48…6dAC",
"url": "https://etherscan.io/address/0x6c4876Ecb5de33f76700f44d547C593065806dAC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEc33045FA66cF43E9b5b9F332dc124dbc71c0917",
"type": "EOA",
"isVerified": true,
"name": "0xEc33…0917",
"url": "https://etherscan.io/address/0xEc33045FA66cF43E9b5b9F332dc124dbc71c0917"
},
{
"address": "eth:0x33f9b8ac59814E1A0a59e5d1a6125E5E7AF58BA8",
"type": "EOA",
"isVerified": true,
"name": "0x33f9…8BA8",
"url": "https://etherscan.io/address/0x33f9b8ac59814E1A0a59e5d1a6125E5E7AF58BA8"
},
{
"address": "eth:0x2b3Aa0Dc0622eFb9426F5A44015aE9151Bd8224C",
"type": "EOA",
"isVerified": true,
"name": "0x2b3A…224C",
"url": "https://etherscan.io/address/0x2b3Aa0Dc0622eFb9426F5A44015aE9151Bd8224C"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xA09F1c88C0194Da6b0a1c564CDBEcbF3AAd649E4",
"type": "EOA",
"isVerified": true,
"name": "0xA09F…49E4",
"url": "https://etherscan.io/address/0xA09F1c88C0194Da6b0a1c564CDBEcbF3AAd649E4",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-3",
"name": "EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 2"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0775e11309d75aA6b0967917fB0213C5673eDf81#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x1E163594e13030244DCAf4cDfC2cd0ba3206DA80",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1708632059,
"transactionHash": "0xd68a284c1d748ff541d3339f650f5b90e2faf2744db5fdfc27edfffc702e2dbd",
"implementations": [
"eth:0x9cf80f7eB1C76ec5AE7A88b417e373449b73ac30"
]
},
{
"timestamp": 1712599859,
"transactionHash": "0xf735ab474ff2e48c6231cc834828e35736c6fc9fec9759b74e5cf58a88075a36",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
}
],
"description": "The main system contract defining the Astar zkEVM Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: AstarMultisig\n * **forceBatchAddress**: AstarMultisig\n * **trustedSequencer**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1E163594e13030244DCAf4cDfC2cd0ba3206DA80#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0x9CCD205052c732Ac1Df2cf7bf8aACC0E371eE0B0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x1963D7b78e75A5eDfF9e5376E7A07A935Fb3d50d"
],
"implementations": [
"eth:0xF4e87685e323818E0aE35dCdFc3B65106002E456"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1708624559,
"transactionHash": "0x72856ab866229053e930b1e4ec2c8505ed4b72feffdf13db4a218eced4364fa2",
"implementations": [
"eth:0xF4e87685e323818E0aE35dCdFc3B65106002E456"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 5/3).\n* Roles:\n * **admin**: ProxyAdmin; ultimately AstarMultisig\n * **owner**: AstarMultisig",
"upgradableBy": [
{
"name": "AstarMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9CCD205052c732Ac1Df2cf7bf8aACC0E371eE0B0#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 2, EOA 3\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x1963D7b78e75A5eDfF9e5376E7A07A935Fb3d50d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: AstarMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1963D7b78e75A5eDfF9e5376E7A07A935Fb3d50d#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+4 -4
+3 -3
{
"dataAvailability": [
{
"name": "All transaction results (state diffs) are published in Ethereum blobs",
"description": "Each checkpoint proposal includes EIP-4844 blob commitments that are checked against the blob hashes in the proposing transaction. The epoch proof revalidates the accumulated blob commitments before the epoch is finalized.",
"references": [
{
"title": "Rollup.sol - propose() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
},
{
"title": "Rollup.sol - validateBlobs() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
}
],
"risks": []
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks. Once the epoch root proof has been verified, the rollup inserts the epoch root into the Outbox, from which withdrawals and other L2->L1 messages can be consumed on Ethereum. Withdrawals can be initiated privately on L2, revealing only the L1-facing portion of the transaction. There is no canonical bridge escrow: only the canonical messaging layer is immutable, while each token bridged through a locking escrow may introduce additional trust assumptions tied to that specific escrow.",
"risks": [],
"references": [
{
"title": "Rollup.sol - submitEpochRootProof() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
},
{
"title": "Outbox.sol - consume() on Etherscan",
"url": "https://etherscan.io/address/0xc9698B7AdEf9ee63F3Bf5cFF38086e4E836579f0#code"
}
]
}
],
"operator": {
"name": "There is no central operator",
"description": "There is no privileged sequencer. Anyone can stake 200 K AZTEC to join the sequencer queue, and anyone can call flushEntryQueue() to activate queued sequencers once the queue rules allow it.",
"risks": [],
"references": [
{
"title": "Rollup.sol - deposit() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
},
{
"title": "Rollup.sol - flushEntryQueue() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
}
]
},
"otherConsiderations": [
{
"name": "Upgrades replace the canonical rollup",
"description": "The core contracts are immutable, but Governance owns the Registry and GSE and can register a new rollup version as canonical after the governance delay. Governance also owns critical config parameters that can freeze or compromise the Rollup system.",
"references": [
{
"title": "Registry.sol - addRollup() on Etherscan",
"url": "https://etherscan.io/address/0x35b22e09Ee0390539439E24f06Da43D83f90e298#code"
},
{
"title": "Governance.sol - execute() on Etherscan",
"url": "https://etherscan.io/address/0x1102471Eb3378FEE427121c9EfcEa452E4B6B75e#code"
}
],
"risks": []
},
{
"name": "No canonical bridge escrow",
"description": "There is no default canonical escrow. The rollup is deployed only with an immutable canonical messaging bridge, which can be used by any escrow. As a result, each token bridged to Aztec via Ethereum lock-mint must be assessed individually by examining its specific locking escrow. The trust assumptions of a given escrow may differ from those of the immutable rollup itself. Gas tokens are bridged through the FeeJuicePortal, an immutable one-way portal that only supports bridging to public L2 addresses. Although the rollup and its canonical messaging bridge are immutable, an upgradeable escrow could migrate its funds to a new rollup version without requiring users to migrate, effectively trading immutability for convenience.",
"references": [
{
"title": "FeeJuicePortal.sol - on Etherscan",
"url": "https://etherscan.io/address/eth:0x2891F8b941067F8B5a3F34545A30Cf71E3E23617#code"
},
{
"title": "Outbox.sol - on Etherscan",
"url": "https://etherscan.io/address/0xc9698B7AdEf9ee63F3Bf5cFF38086e4E836579f0#code"
}
],
"risks": []
},
{
"name": "Inclusion is probabilistic",
"description": "All censorship resistance tools that are part of the protocol rely on probabilistic inclusion. In contrast to \"forced transactions\", there is no simple deterministic inclusion after some maximum delay, but rather different inclusion probabilities after different time horizons. The \"time needed to exit\" of 20d for the exit window was simulated by using a simple model of the decentralized sequencer set at launch. The escape hatch and private transactions can give additional inclusion guarantees.",
"references": [
{
"title": "CRsim - Simulated inclusion probability on Aztec",
"url": "https://sekuba.github.io/crsim"
}
],
"risks": []
}
],
"sequencing": {
"name": "Transactions are ordered by a staked validator committee",
"description": "Joining the sequencer set is permissionless and requires staking 200 K AZTEC. For each epoch, the rollup samples a 48-member committee from the active sequencer set of 3394 and selects one proposer from the current committee per slot. More than 2/3 of the sequencers in the committee need to attest to each proposed block in an epoch for it to be valid.",
"description": "Joining the sequencer set is permissionless and requires staking 200 K AZTEC. For each epoch, the rollup samples a 48-member committee from the active sequencer set of 3453 and selects one proposer from the current committee per slot. More than 2/3 of the sequencers in the committee need to attest to each proposed block in an epoch for it to be valid.",
"sequencerSetSpec": {
"slotTime": {
"value": "1m 12s"
},
"epochTime": {
"value": "38m 24s",
"description": "A random committee is sampled from the sequencer set for each epoch, a random block producer is sampled from the committee for each slot in the epoch"
},
"sequencerCount": {
"value": "3394 sequencers"
"value": "3453 sequencers"
},
"blockProductionAccess": {
"value": "Open",
"sentiment": "good"
},
"stakePerValidator": {
"value": "200 K AZTEC, constant"
},
"rateLimit": {
"value": "Up to 4 sequencers per epoch (current)",
"description": "Can be changed (or set to 0) by onchain Governance"
},
"deterministicCrGadget": {
"value": "No",
"sentiment": "warning"
},
"additionalCrGadgets": {
"value": "Bonded escape hatch, private transactions",
"sentiment": "good"
}
},
"inclusionDelayChart": {
"type": "committeelike",
"validatorCount": 3394,
"validatorCount": 3453,
"committeeSize": 48,
"epochSlots": 32,
"slotSeconds": 72,
"blockingThreshold": 15,
"target": 0.99,
"maxCensorFraction": 0.5,
"stakeDistribution": {
"stakeToken": "AZTEC",
"totalStake": 629230000,
"entities": [
{
"name": "Nethermind",
"stake": 123200000
},
{
"name": "Nansen | Stake to Stack Points",
"stake": 79800000
},
{
"name": "Sigma Prime",
"stake": 54600000
},
{
"name": "snoopfear|PON",
"stake": 47200000
},
{
"name": "P2P.org",
"stake": 45196000
},
{
"name": "Wonderland",
"stake": 35400000
},
{
"name": "GabbexNodes",
"stake": 30800000
},
{
"name": "ZKV",
"stake": 30590000
},
{
"name": "Aztec-Scan",
"stake": 21000000
},
{
"name": "01node",
"stake": 18000000
}
]
}
},
"inclusionDelayChartDescription": "The chart models live-chain selective censorship only. It does not model the escape hatch, validator-set changes, validator-set lag, and blanket-censorship resistance gadgets.",
"censorshipResistance": "The committee and regular sequencer set can be circumvented via the escape hatch, which designates a bonded proposer (via RANDAO) who can publish checkpoints without committee attestations. The bond is 332 M AZTEC, a high amount that is supposed to protect the single-proof system in case of bugs while still providing a last resort opportunity to circumvent the sequencer set. Aztec has developed a full private execution environment on the L2. This can benefit users because they cannot be censored based on their transaction content.\n### Selective censorship\nOn a live Aztec L2 with a given fraction of censoring sequencers, users can either send private transactions or wait for a non-censoring committee and proposing sequencer to include their public transaction.\n### Blanket censorship\nIf users are censored by the entire sequencer set, even if it stops block production just to censor, anyone can join the sequencer set permissionlessly at the churn rate or circumvent it completely by bonding and using the escape hatch. In both cases, expensive hardware is required to provide the required validity proof. Motivated censorers can try to saturate the entry queue and the escape hatch with their own new sequencers and thus lower the inclusion chances of the censored.\n### Walkaway\nIn the scenario of all sequencers stopping their service, the escape hatch provides an inclusion guarantee of 2d 23h in the worst case and the sequencer set can heal long-term by permissionless entry and churn.",
"references": [
{
"title": "Aztec docs - Privacy considerations",
"url": "https://github.com/AztecProtocol/aztec-packages/blob/next/docs/docs-developers/docs/resources/considerations/privacy_considerations.md#function-fingerprints-and-tx-fingerprints"
},
{
"title": "Rollup.sol - getProposerAt() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
},
{
"title": "EscapeHatch.sol - selectCandidates() on Etherscan",
"url": "https://etherscan.io/address/0x8c189ead28D5987A48e522162f9225124D50AD1B#code"
}
],
"risks": []
},
"stateValidation": {
"description": "Each epoch root proof is verified by the HonkVerifier smart contract on Ethereum before the proven checkpoint number is advanced and the epoch outbox state root is inserted into the Outbox. Proving is permissionless, and a single proof can cover one Checkpoint (1m 12s) to one epoch (38m 24s). Unproven checkpoints are pruned after the proof submission window of 1h 16m expires.",
"categories": [
{
"title": "State root proposals",
"description": "The rollup only advances the proven chain after submitEpochRootProof() succeeds. That call verifies the epoch proof and then inserts the epoch outbox state root for L2->L1 messaging.",
"references": [
{
"title": "Rollup.sol - submitEpochRootProof() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
}
],
"risks": []
},
{
"title": "Validity proofs",
"description": "Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.",
"risks": [],
"references": [
{
"title": "Rollup.sol - submitEpochRootProof() on Etherscan",
"url": "https://etherscan.io/address/0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962#code"
},
{
"title": "HonkVerifier.sol - verify() on Etherscan",
"url": "https://etherscan.io/address/0x70aEDda427f26480D240bc0f4308ceDec8d31348#code"
}
]
},
{
"title": "Slashing",
"description": "Each stake of 200 K AZTEC that is locked to join the sequencer set and vote in governance can be slashed under certain conditions. Slashing is voted on by sequencers each time they propose a checkpoint and is grouped in rounds that span 4 epochs (2h 33m) each.\n\nSlashing conditions are programmed into each sequencer node and can be changed by node operators by updating or editing their node software. Nodes usually submit votes to slash automatically on L1. The `TallySlashingProposer` contract only enforces the formalities of the slashing system:\n* A given slashing round's votes always target the checkpoint proposals from 2 rounds ago.\n* As soon as a round's votes have reached a quorum of 65/128, it enters an execution delay of 28 rounds (2d 23h)\n* An automatically generated slashing payload is executable by anyone on L1 after the execution delay, applying the slashing penalties defined by the sequencer votes.\n\nSlashing penalties are defined onchain in three levels: large (2.00 K AZTEC), medium (2.00 K AZTEC), and small (2.00 K AZTEC). Offenses that lead to slashing usually include:\n* Inactivity: A sequencer fails to attest or propose when selected.\n* Data Withholding: A sequencer proposes a checkpoint including state diff data availability on L1 but withholds the public transaction bodies and/or CHONK proofs required for permissionless proving.\n* Invalidity: A sequencer attests to invalid proposals, multiple conflicting proposals, with invalid signatures, or proposes a block that is not proven in time.\n\nThe above offense list is not exhaustive and not defined onchain but usually in the software the sequencers decide to run. This is also where the mapping of offenses to the slashing penalty levels can be defined.\n\nThe SlashVeto Council is a 5/9 Multisig that can veto specific proposals and/or all slashing for 3d at a time.",
"references": [
{
"title": "Slashing - Aztec Docs",
"url": "https://docs.aztec.network/operate/operators/sequencer-management/slashing_and_offenses"
},
{
"title": "SlashVeto Council - Github",
"url": "https://github.com/aztec-slash-veto/council"
},
{
"title": "slashveto.me - Monitor Slashing",
"url": "https://slashveto.me"
}
],
"risks": []
}
]
},
"upgradesAndGovernance": {
"content": "# Standard Path (Signaling)\nBecause sequencers stake AZTEC tokens to secure the L2 network, they are also the primary governors of the system. Any governance proposal must be encoded and deployed as a smart contract payload on Ethereum. While core contracts are immutable, the onchain Governance system can designate a new 'canonical' rollup with a 1mo delay and has access to critical configuration permissions that can freeze or compromise the Rollup system. These permissions can only be accessed through the process described below.\n\n## 1. The Signaling Phase (`GovernanceProposer`)\nAztec uses an onchain \"Empire\" signaling system. Active sequencers operating on the 'canonical rollup' (as defined by the Registry) call `signal(payloadAddress)` on the L1 `GovernanceProposer` contract during their designated L2 slots to support a specific upgrade payload. A voting round consists of 1,000 slots. To win a round and become a formal proposal, a payload must receive signals from at least 600 slots. Once quorum is reached, the payload is submitted to the L1 `Governance` contract.\n\n## 2. The Voting Phase (`Governance`)\nOnce submitted, the proposal enters a delay and voting flow:\n* **Pending (3d):** At the end of this delay, voting power is snapshotted.\n* **Active (7d):** AZTEC token holders can vote. To pass, a proposal must reach a 20% Quorum of all staked power, and the `yea` votes must exceed a required margin of 33%.\n* **Queued (1mo):** If successful, the proposal enters an execution delay. This acts as an exit window, allowing dissenting sequencers to initiate a withdrawal of their staked tokens before the malicious/disagreed-upon code is executed.\n* Executable (7d): The proposal enters a grace period where anyone can call `execute()`. If not executed, it expires.\n\nTotal standard delay from proposal to execution: **1mo 10d**.\n\n### Emergency Path (Circumvent Signaling)\nIf the L2 sequencer set is offline, censoring, or acting maliciously, the `GovernanceProposer` cannot be used. To ensure liveness, anyone can bypass the Sequencer signaling phase using the `proposeWithLock()` function directly on the `Governance` contract.\n* An actor must lock **258 M AZTEC**, roughly 2.5% of total supply\n* These funds are locked for an extended 3mo.\n* Once proposed, the payload enters the exact same 1mo 10d Voting Phase (Pending -> Active -> Queued -> Executable) as the standard path.\n\n### Rollup Immutability\nThe smart contract code of `Rollup`, its verifier and its canonical messaging contracts cannot be changed. However, `Governance` owns critical permissions for configuration parameters that can freeze the L2 indefinitely. 'Upgrading' a Rollup contract involves a `Governance` action that designates a new `Rollup` contract address as canonical. The `GSE` (Governance Staking Escrow) automatically migrates the voting power and stake of all active sequencers to the new rollup version if they staked to the default magic address `0x9064Fb41156D300196d5Eb95E0B3c1f08eBc39a8` instead of a specific immutable rollup. Importantly, `Governance` retains ownership of the old rollup, with the permissions to freeze it in the same or any future governance proposal. In summary and practice, the current Aztec rollup system is not immutable and prone to governance changes with the configured 1mo delay.\n\n### Slashing and the SlashVeto Council\nAztec features onchain slashing for equivocation or missing attestations, managed by `Slasher` and `TallySlashingProposer`. \n\nThere is a protective **Vetoer** role held by the SlashVeto Council. The Council cannot upgrade the protocol, alter governance, or steal funds. Instead it is limited to two permissions:\n* call `vetoPayload()` to stop a specific slashing event.\n* call `setSlashingEnabled(false)`, which pauses all slashing in the protocol for a period of 3d.\n\n### Economics & Treasury\n* **Coin Issuer:** The `CoinIssuer` contract is owned by Governance and is authorized to mint new AZTEC tokens up to a cap of 20%.\n* **Protocol Treasury:** Funds owned by the DAO sit in the `ProtocolTreasury`. The Treasury has a hardcoded timestamp (approx. Nov 2026). Before this date, the DAO cannot spend Treasury funds. After this date, Treasury funds and token ownership can be moved with a Governance Proposal."
},
"warning": "Aztec v4 has [know security vulnerabilities](https://aztec.network/blog/critical-vulnerability-in-alpha-v4) that can only be fixed in a new deployment."
}
+1 -1
{
"baseTimestamp": 1780405492,
"baseTimestamp": 1781603826,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780997809,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+31 -6
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Conduit Multisig 1",
"name": "Conduit Multisig 1",
"description": "A Multisig with 4/10 threshold. \n* Can upgrade **with no delay**\n * DelayedWETH [via: ProxyAdmin]\n * SuperchainConfig [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * L1StandardBridge [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n * L1ERC721Bridge [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * AnchorStateRegistry [via: ProxyAdmin]\n* Can interact with SuperchainConfig\n * Allowed to pause withdrawals. In op stack systems with a proof system, the Guardian can also blacklist dispute games and set the respected game type (permissioned / permissionless) \n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system ",
"accounts": [
{
"address": "eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746",
"type": "Contract",
"isVerified": true,
"name": "0x4a49…A746",
"url": "https://etherscan.io/address/0x4a4962275DF8C60a80d3a25faEc5AA7De116A746"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xcdC931935768c0562AfE989A366a3Dc4d52F4853",
"type": "EOA",
"isVerified": true,
"name": "0xcdC9…4853",
"url": "https://etherscan.io/address/0xcdC931935768c0562AfE989A366a3Dc4d52F4853"
},
{
"address": "eth:0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09",
"type": "EOA",
"isVerified": true,
"name": "0xA9FC…8d09",
"url": "https://etherscan.io/address/0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09"
},
{
"address": "eth:0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6",
"type": "EOA",
"isVerified": true,
"name": "0x6BB4…83A6",
"url": "https://etherscan.io/address/0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6"
},
{
"address": "eth:0x2103c69696CB2D3779f5445393808239034E911c",
"type": "EOA",
"isVerified": true,
"name": "0x2103…911c",
"url": "https://etherscan.io/address/0x2103c69696CB2D3779f5445393808239034E911c"
},
{
"address": "eth:0x81175155D85377C337d92f1FA52Da166C3A4E7Ac",
"type": "EOA",
"isVerified": true,
"name": "0x8117…E7Ac",
"url": "https://etherscan.io/address/0x81175155D85377C337d92f1FA52Da166C3A4E7Ac"
},
{
"address": "eth:0xA0737fea60F0601A192E3d2c98865A883ab0bda2",
"type": "EOA",
"isVerified": true,
"name": "0xA073…bda2",
"url": "https://etherscan.io/address/0xA0737fea60F0601A192E3d2c98865A883ab0bda2"
},
{
"address": "eth:0xF3313C48BD8E17b823d5498D62F37019dFEA647D",
"type": "EOA",
"isVerified": true,
"name": "0xF331…647D",
"url": "https://etherscan.io/address/0xF3313C48BD8E17b823d5498D62F37019dFEA647D"
},
{
"address": "eth:0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038",
"type": "EOA",
"isVerified": true,
"name": "0xa0C6…9038",
"url": "https://etherscan.io/address/0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038"
},
{
"address": "eth:0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C",
"type": "EOA",
"isVerified": true,
"name": "0xefCf…dD5C",
"url": "https://etherscan.io/address/0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C"
},
{
"address": "eth:0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe",
"type": "EOA",
"isVerified": true,
"name": "0x4D80…5BAe",
"url": "https://etherscan.io/address/0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"type": "EOA",
"isVerified": true,
"name": "0x8839…54DA",
"url": "https://etherscan.io/address/0x8839E742fd56ebC0d31d11DD5A2cA25aA61c54DA",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"type": "EOA",
"isVerified": true,
"name": "0xa400…e6e4",
"url": "https://etherscan.io/address/0xa4000bDD2bB92ce6750b31F1eeda47Bd1cB8e6e4",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xaD06988A3aBD79DC9eD6c4E84d373Bd739E9d4b5",
"type": "EOA",
"isVerified": true,
"name": "0xaD06…d4b5",
"url": "https://etherscan.io/address/0xaD06988A3aBD79DC9eD6c4E84d373Bd739E9d4b5",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x2f3d687e02dbe83B6cDaE02aeb66C0e8E69CcA4b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756733255,
"transactionHash": "0xf9461b9a1119187637520c5034603d8386799d01e97e5751e9bdbe46b4303c09",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the forknet Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 2\n * **aggchainSigners**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2f3d687e02dbe83B6cDaE02aeb66C0e8E69CcA4b#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x5D2952EAe032aa33e977c52f810e0089261efB27",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x2bFE4A5Bd5A41e9d848d843ebCDFa15954e9A557"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1\n * **batcherHash**: EOA 1\n * **owner**: Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5D2952EAe032aa33e977c52f810e0089261efB27#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0xAa47071585ee92Fa9AE314C87d3d12a25c241EeD",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x33D1e8571a85a538ed3D5A4d88f46C112383439D"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xAa47071585ee92Fa9AE314C87d3d12a25c241EeD#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0xD7cF5ce4688663e057E99D9f880599Ce88757695",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
{
"timestamp": 1756903199,
"transactionHash": "0xc33c7857ae90704d7d21f1670457a6889b8d3ac1b4f02e23f9f156a8ec3a51f9",
"implementations": [
"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x381E729FF983FA4BCEd820e7b922d79bF653B999"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
}
],
"description": "The OptimismPortal contract usually is the main entry point to deposit funds from L1 to L2 or for finalizing withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame. This specific contract is deployed in the agglayer system context which **disables the depositTransaction() function**, preventing users from sending or forcing any transactions from L1 to L2, including token deposits. It is instead used for configuration and administration of the system.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD7cF5ce4688663e057E99D9f880599Ce88757695#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 4, EOA 5\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x6C82EEE75Bb8b957C12FaaF8CAb549BE4b0fD5af",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x61525EaaCDdB97D9184aFc205827E6A4fd0Bf62A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6C82EEE75Bb8b957C12FaaF8CAb549BE4b0fD5af#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xB847cf7F5CE23cBaF76E751C066bfE732951501f",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x22D12E0FAebD62d429514A65EBAe32dd316c12D6"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB847cf7F5CE23cBaF76E751C066bfE732951501f#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0xd1cFFdEF1dc379372CB06f3dEdC6debeF6059E82",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x7f1d12fB2911EB095278085f721e644C1f675696"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x74f1aC50EB0BE98853805D381C884f5f9abDEcf9"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xd1cFFdEF1dc379372CB06f3dEdC6debeF6059E82#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x04B540f9e071a83555aB12d0CCcA812E272dcAf1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x04B540f9e071a83555aB12d0CCcA812E272dcAf1#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x514795090ceA49c14f65b45c4403A36b3576AE03",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756893611,
"transactionHash": "0x53d6644e17ea2b137c56349e0309465a9fb974aa17a056e14acd46527b864ba9",
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
},
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x514795090ceA49c14f65b45c4403A36b3576AE03#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6463dEE3828677F6270d83d45408044fc5eDB908#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0x88d414cA1d500E5CDf131022e4A27D281e8Dba44",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x88d414cA1d500E5CDf131022e4A27D281e8Dba44#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xb4899FF43Ae727B1E9CB19AC44660e4A43Fad0b5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Conduit Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb4899FF43Ae727B1E9CB19AC44660e4A43Fad0b5#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Conduit Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEfBb0af25B3bE24347f17916fda058795f36a5A0#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0xf9E57a0B702dF449295DEc146eC2bc80339FAAED",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEfBb0af25B3bE24347f17916fda058795f36a5A0"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1768924487,
"transactionHash": "0xdafb601ff7f28a914b21897e0fe0db50cf79e1e4376b62b8e503240368155c12",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Conduit Multisig 1",
"upgradableBy": [
{
"name": "Conduit Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf9E57a0B702dF449295DEc146eC2bc80339FAAED#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1756893611,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x5B8C9f36c8F84E49EC89Ae2881D920Ceb36D7F40",
"type": "EOA",
"isVerified": true,
"name": "0x5B8C…7F40",
"url": "https://etherscan.io/address/0x5B8C9f36c8F84E49EC89Ae2881D920Ceb36D7F40",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments \n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x3451F208447c4D81346c10239eF92A1eB98b65C3",
"type": "EOA",
"isVerified": true,
"name": "0x3451…65C3",
"url": "https://etherscan.io/address/0x3451F208447c4D81346c10239eF92A1eB98b65C3",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"type": "EOA",
"isVerified": true,
"name": "0xb860…2cfe",
"url": "https://etherscan.io/address/0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]",
"discoveryDrivenData": true
},
{
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0775e11309d75aA6b0967917fB0213C5673eDf81#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0x75E26A2996DEAbA20386B6f3c1C957eFadb3f6E8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xada59D145126A746976F0F56477aafFEB3acc8e3"
],
"implementations": [
"eth:0xA36aFB6b79A3d164a3d12C141c916BECc6e012D8"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1718797871,
"transactionHash": "0x0a7c7231ed11b5452e24014b44c25286a58b4048cb401623b23a77ff1ee67fe7",
"implementations": [
"eth:0xA36aFB6b79A3d164a3d12C141c916BECc6e012D8"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 2/1).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 3\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x75E26A2996DEAbA20386B6f3c1C957eFadb3f6E8#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0xC4E903D3Af4c3d2e437492d602adcC9d9b536858",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1716807971,
"transactionHash": "0x3dc530423d40c84109b6c3c014ee3182ae576375dc5888187e4a33380930d54a",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
}
],
"description": "The main system contract defining the gpt-mainnet Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 1\n * **trustedSequencer**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC4E903D3Af4c3d2e437492d602adcC9d9b536858#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 4, EOA 5\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xada59D145126A746976F0F56477aafFEB3acc8e3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xada59D145126A746976F0F56477aafFEB3acc8e3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602758,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+31 -6
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xc68685bBcb11F05ACE5117f9693a073be5fb55Ca",
"type": "EOA",
"isVerified": true,
"name": "0xc686…55Ca",
"url": "https://etherscan.io/address/0xc68685bBcb11F05ACE5117f9693a073be5fb55Ca",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xd4eb5EcF61FF2eCFA9069787ED14820E9A53bF2b",
"type": "EOA",
"isVerified": true,
"name": "0xd4eb…bF2b",
"url": "https://etherscan.io/address/0xd4eb5EcF61FF2eCFA9069787ED14820E9A53bF2b",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0xaD83Cd3e5A725546daDC5A25088c5c098d320Ca8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1756808195,
"transactionHash": "0xe032344eb8cef2d2df7a64076e1e0671870fa0b87a9a8b097ccf02c6be2a34af",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the Haust Network Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 1\n * **aggchainSigners**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaD83Cd3e5A725546daDC5A25088c5c098d320Ca8#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 3, EOA 4\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1756808195,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"HAUST"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+39 -7
+11 -4
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Polygon Multisig 2",
"name": "Polygon Multisig 2",
"description": "A Multisig with 3/5 threshold. \nMember of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.\n* Can upgrade **with no delay**\n * L1ERC721Bridge [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * SuperchainConfig [via: ProxyAdmin]\n * L1StandardBridge [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * AnchorStateRegistry [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n* Can interact with AggchainFEP\n * change verification keys (aggregationVkey, rangeVkeyCommitment, aggchainVkey) and the rollupConfigHash, manage multisig signers for permissioned state transitions and change critical configs for state validation \n * toggle the 'optimisticMode' \n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system \n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "0xd067…98CC",
"url": "https://etherscan.io/address/0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a",
"type": "EOA",
"isVerified": true,
"name": "0x6f8C…D08a",
"url": "https://etherscan.io/address/0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a"
},
{
"address": "eth:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://etherscan.io/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "eth:0xA697656ac37ee1f59A8a5318F61601B4C208960D",
"type": "EOA",
"isVerified": true,
"name": "0xA697…960D",
"url": "https://etherscan.io/address/0xA697656ac37ee1f59A8a5318F61601B4C208960D"
},
{
"address": "eth:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://etherscan.io/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "eth:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://etherscan.io/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana vaultBridge Multisig 1",
"name": "Katana vaultBridge Multisig 1",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbWBTC [via: ProxyAdmin]\n * vbETH [via: ProxyAdmin]\n * vbUSDT [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x2De242e27386e224E5fbF110EA8406d5B70740ec",
"type": "Contract",
"isVerified": true,
"name": "0x2De2…40ec",
"url": "https://etherscan.io/address/0x2De242e27386e224E5fbF110EA8406d5B70740ec"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4082A1D91A353b16e112FbE36b55d222bF417919",
"type": "EOA",
"isVerified": true,
"name": "0x4082…7919",
"url": "https://etherscan.io/address/0x4082A1D91A353b16e112FbE36b55d222bF417919"
},
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
}
],
"discoveryDrivenData": true
},
{
"id": "Polygon Labs Engineering/Security Multisig",
"name": "Polygon Labs Engineering/Security Multisig",
"description": "A Multisig with 2/8 threshold. \nMember of Katana vaultBridge Multisig 1, Katana vaultBridge Multisig 2, Katana vaultBridge Multisig 3.\n* Can upgrade **with no delay**\n * MigrationManager [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "0x9d85…9052",
"url": "https://etherscan.io/address/0x9d851f8b8751c5FbC09b9E74E6e68E9950949052"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2",
"type": "EOA",
"isVerified": true,
"name": "0xf02B…D4B2",
"url": "https://etherscan.io/address/0xf02BE0dA37dB50BEFA5a525158aa94b50F81D4B2"
},
{
"address": "eth:0xe0e8e6bBDef7bbcf8dF1F5Ac0ab9906BFe991d8B",
"type": "EOA",
"isVerified": true,
"name": "0xe0e8…1d8B",
"url": "https://etherscan.io/address/0xe0e8e6bBDef7bbcf8dF1F5Ac0ab9906BFe991d8B"
},
{
"address": "eth:0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890",
"type": "EOA",
"isVerified": true,
"name": "0x6Ab8…3890",
"url": "https://etherscan.io/address/0x6Ab87a62E250A5EB09a53Fca832B9Bda480c3890"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana vaultBridge Multisig 2",
"name": "Katana vaultBridge Multisig 2",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbUSDS [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff",
"type": "Contract",
"isVerified": true,
"name": "0xA8C3…C5Ff",
"url": "https://etherscan.io/address/0xA8C31B2edd84c654d06d626383f4154D1E40C5Ff"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7",
"type": "Contract",
"isVerified": true,
"name": "Yearn Strategist Multisig",
"url": "#Yearn Strategist Multisig"
},
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana vaultBridge Multisig 3",
"name": "Katana vaultBridge Multisig 3",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * vbUSDC [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E",
"type": "Contract",
"isVerified": true,
"name": "0xf4F2…C04E",
"url": "https://etherscan.io/address/0xf4F2f5F6bAdBE05433C4604320ecC56BbECBC04E"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x9d851f8b8751c5FbC09b9E74E6e68E9950949052",
"type": "Contract",
"isVerified": true,
"name": "Polygon Labs Engineering/Security Multisig",
"url": "#Polygon Labs Engineering/Security Multisig"
},
{
"address": "eth:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "Polygon Multisig 2",
"url": "#Polygon Multisig 2"
},
{
"address": "eth:0x827e86072B06674a077f592A531dcE4590aDeCdB",
"type": "Contract",
"isVerified": true,
"name": "Katana Steakhouse Financial / Morpho Multisig",
"url": "#Katana Steakhouse Financial / Morpho Multisig"
}
],
"discoveryDrivenData": true
},
{
"id": "Yearn Strategist Multisig",
"name": "Yearn Strategist Multisig",
"description": "A Multisig with 3/8 threshold. \nMember of Katana vaultBridge Multisig 2.\n",
"accounts": [
{
"address": "eth:0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7",
"type": "Contract",
"isVerified": true,
"name": "0x1638…0ff7",
"url": "https://etherscan.io/address/0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x5E5D6f849Fa86c058f148E9D3f643C8F4c43f20b",
"type": "EOA",
"isVerified": true,
"name": "0x5E5D…f20b",
"url": "https://etherscan.io/address/0x5E5D6f849Fa86c058f148E9D3f643C8F4c43f20b"
},
{
"address": "eth:0x5250077c42627cBd112988f32D482acC9ff40bDB",
"type": "EOA",
"isVerified": true,
"name": "0x5250…0bDB",
"url": "https://etherscan.io/address/0x5250077c42627cBd112988f32D482acC9ff40bDB"
},
{
"address": "eth:0xC357eE8a8DdE88Dd5a3Ea54847Adef6846A28c51",
"type": "EOA",
"isVerified": true,
"name": "0xC357…8c51",
"url": "https://etherscan.io/address/0xC357eE8a8DdE88Dd5a3Ea54847Adef6846A28c51"
},
{
"address": "eth:0xFcc3796370e1538F8cC60bec19A8be5457f2C74F",
"type": "EOA",
"isVerified": true,
"name": "0xFcc3…C74F",
"url": "https://etherscan.io/address/0xFcc3796370e1538F8cC60bec19A8be5457f2C74F"
},
{
"address": "eth:0xFafFb75e14faFf9f11315E44a2E54A22872c7a34",
"type": "EOA",
"isVerified": true,
"name": "0xFafF…7a34",
"url": "https://etherscan.io/address/0xFafFb75e14faFf9f11315E44a2E54A22872c7a34"
},
{
"address": "eth:0x80a3887BA60F76acAb48EE4aEAd0a71A0774A8B2",
"type": "EOA",
"isVerified": true,
"name": "0x80a3…A8B2",
"url": "https://etherscan.io/address/0x80a3887BA60F76acAb48EE4aEAd0a71A0774A8B2"
},
{
"address": "eth:0xB13C8f58a233607569D2F8411B912148aeC4aEe2",
"type": "EOA",
"isVerified": true,
"name": "0xB13C…aEe2",
"url": "https://etherscan.io/address/0xB13C8f58a233607569D2F8411B912148aeC4aEe2"
},
{
"address": "eth:0x0Dca0FDC170baA4CA9c1dCd37Ffe01f97bCfD504",
"type": "EOA",
"isVerified": true,
"name": "0x0Dca…D504",
"url": "https://etherscan.io/address/0x0Dca0FDC170baA4CA9c1dCd37Ffe01f97bCfD504"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 1/4 threshold. ",
"accounts": [
{
"address": "eth:0x261a25ec6c396389B75B6b22BD4A8227070E3B50",
"type": "Contract",
"isVerified": true,
"name": "0x261a…3B50",
"url": "https://etherscan.io/address/0x261a25ec6c396389B75B6b22BD4A8227070E3B50"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
},
{
"address": "eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c",
"type": "EOA",
"isVerified": true,
"name": "0x227D…238c",
"url": "https://etherscan.io/address/0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c"
},
{
"address": "eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756",
"type": "Contract",
"isVerified": true,
"name": "Katana yieldRecipient Mulsitig",
"url": "#Katana yieldRecipient Mulsitig"
},
{
"address": "eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "#Safe"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/4 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21",
"type": "Contract",
"isVerified": true,
"name": "0x3e86…6e21",
"url": "https://etherscan.io/address/0x3e86A8bcAF0A96DD16Ec8160532DA13b2C0f6e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x23CDc4Bc7713A1a8cb2adBbb5BdfCd135F74Bd50",
"type": "EOA",
"isVerified": true,
"name": "0x23CD…Bd50",
"url": "https://etherscan.io/address/0x23CDc4Bc7713A1a8cb2adBbb5BdfCd135F74Bd50"
},
{
"address": "eth:0xeA54bCaD99a8Cdd385c903236149Da9585B89ed3",
"type": "EOA",
"isVerified": true,
"name": "0xeA54…9ed3",
"url": "https://etherscan.io/address/0xeA54bCaD99a8Cdd385c903236149Da9585B89ed3"
},
{
"address": "eth:0x64512f695BFf25FD1bCD0F88EbC45Af144f374CA",
"type": "EOA",
"isVerified": true,
"name": "0x6451…74CA",
"url": "https://etherscan.io/address/0x64512f695BFf25FD1bCD0F88EbC45Af144f374CA"
},
{
"address": "eth:0xe969B418F3F5EF9E2E96d05C05Cc1e14f111aE8b",
"type": "EOA",
"isVerified": true,
"name": "0xe969…aE8b",
"url": "https://etherscan.io/address/0xe969B418F3F5EF9E2E96d05C05Cc1e14f111aE8b"
}
],
"discoveryDrivenData": true
},
{
"id": "Conduit Multisig 1",
"name": "Conduit Multisig 1",
"description": "A Multisig with 4/10 threshold. ",
"accounts": [
{
"address": "eth:0x4a4962275DF8C60a80d3a25faEc5AA7De116A746",
"type": "Contract",
"isVerified": true,
"name": "0x4a49…A746",
"url": "https://etherscan.io/address/0x4a4962275DF8C60a80d3a25faEc5AA7De116A746"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xcdC931935768c0562AfE989A366a3Dc4d52F4853",
"type": "EOA",
"isVerified": true,
"name": "0xcdC9…4853",
"url": "https://etherscan.io/address/0xcdC931935768c0562AfE989A366a3Dc4d52F4853"
},
{
"address": "eth:0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09",
"type": "EOA",
"isVerified": true,
"name": "0xA9FC…8d09",
"url": "https://etherscan.io/address/0xA9FCCc53F1c9095DA867Bd648683F8bdCcc78d09"
},
{
"address": "eth:0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6",
"type": "EOA",
"isVerified": true,
"name": "0x6BB4…83A6",
"url": "https://etherscan.io/address/0x6BB4249858Ee19b6ABC071AD26bEe690baa783A6"
},
{
"address": "eth:0x2103c69696CB2D3779f5445393808239034E911c",
"type": "EOA",
"isVerified": true,
"name": "0x2103…911c",
"url": "https://etherscan.io/address/0x2103c69696CB2D3779f5445393808239034E911c"
},
{
"address": "eth:0x81175155D85377C337d92f1FA52Da166C3A4E7Ac",
"type": "EOA",
"isVerified": true,
"name": "0x8117…E7Ac",
"url": "https://etherscan.io/address/0x81175155D85377C337d92f1FA52Da166C3A4E7Ac"
},
{
"address": "eth:0xA0737fea60F0601A192E3d2c98865A883ab0bda2",
"type": "EOA",
"isVerified": true,
"name": "0xA073…bda2",
"url": "https://etherscan.io/address/0xA0737fea60F0601A192E3d2c98865A883ab0bda2"
},
{
"address": "eth:0xF3313C48BD8E17b823d5498D62F37019dFEA647D",
"type": "EOA",
"isVerified": true,
"name": "0xF331…647D",
"url": "https://etherscan.io/address/0xF3313C48BD8E17b823d5498D62F37019dFEA647D"
},
{
"address": "eth:0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038",
"type": "EOA",
"isVerified": true,
"name": "0xa0C6…9038",
"url": "https://etherscan.io/address/0xa0C600a6e85bf225958FFAcC70B5FDDF9A059038"
},
{
"address": "eth:0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C",
"type": "EOA",
"isVerified": true,
"name": "0xefCf…dD5C",
"url": "https://etherscan.io/address/0xefCf0c8faFB425997870f845e26fC6cA6EE6dD5C"
},
{
"address": "eth:0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe",
"type": "EOA",
"isVerified": true,
"name": "0x4D80…5BAe",
"url": "https://etherscan.io/address/0x4D8007a0E9f293e62E2b0F43C6Cf4C4B9e135BAe"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana Foundation Engineering/Security Multisig",
"name": "Katana Foundation Engineering/Security Multisig",
"description": "A Multisig with 2/5 threshold. ",
"accounts": [
{
"address": "eth:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a",
"type": "Contract",
"isVerified": true,
"name": "0x4e98…C38a",
"url": "https://etherscan.io/address/0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana yieldRecipient Mulsitig",
"name": "Katana yieldRecipient Mulsitig",
"description": "A Multisig with 2/7 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0x67C912fF560951526BffDff66dFbD4DF8AE23756",
"type": "Contract",
"isVerified": true,
"name": "0x67C9…3756",
"url": "https://etherscan.io/address/0x67C912fF560951526BffDff66dFbD4DF8AE23756"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x34d23C4fb6542B467cA8724bAD30AC811399b184",
"type": "EOA",
"isVerified": true,
"name": "0x34d2…b184",
"url": "https://etherscan.io/address/0x34d23C4fb6542B467cA8724bAD30AC811399b184"
},
{
"address": "eth:0x09f5F2592791208219A1F51e3855Be9419fF6bE4",
"type": "EOA",
"isVerified": true,
"name": "0x09f5…6bE4",
"url": "https://etherscan.io/address/0x09f5F2592791208219A1F51e3855Be9419fF6bE4"
},
{
"address": "eth:0xf2dc90d4645579f261cA36E81181986dB576BbEe",
"type": "EOA",
"isVerified": true,
"name": "0xf2dc…BbEe",
"url": "https://etherscan.io/address/0xf2dc90d4645579f261cA36E81181986dB576BbEe"
},
{
"address": "eth:0x54DFA4B635E7eB98515fEBA81d360A3871739277",
"type": "EOA",
"isVerified": true,
"name": "0x54DF…9277",
"url": "https://etherscan.io/address/0x54DFA4B635E7eB98515fEBA81d360A3871739277"
},
{
"address": "eth:0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac",
"type": "EOA",
"isVerified": true,
"name": "0xb3dA…DCac",
"url": "https://etherscan.io/address/0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac"
},
{
"address": "eth:0xa1a4C71024a0CAD6a1cEf85561f1B9a34E00ff62",
"type": "EOA",
"isVerified": true,
"name": "0xa1a4…ff62",
"url": "https://etherscan.io/address/0xa1a4C71024a0CAD6a1cEf85561f1B9a34E00ff62"
},
{
"address": "eth:0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c",
"type": "EOA",
"isVerified": true,
"name": "0x227D…238c",
"url": "https://etherscan.io/address/0x227D9Ea843910Edd305c42e7bB9Ce6D9f369238c"
}
],
"discoveryDrivenData": true
},
{
"id": "Katana Steakhouse Financial / Morpho Multisig",
"name": "Katana Steakhouse Financial / Morpho Multisig",
"description": "A Multisig with 2/6 threshold. \nMember of Katana vaultBridge Multisig 3.\n",
"accounts": [
{
"address": "eth:0x827e86072B06674a077f592A531dcE4590aDeCdB",
"type": "Contract",
"isVerified": true,
"name": "0x827e…eCdB",
"url": "https://etherscan.io/address/0x827e86072B06674a077f592A531dcE4590aDeCdB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6",
"type": "EOA",
"isVerified": true,
"name": "0xf83d…81d6",
"url": "https://etherscan.io/address/0xf83dB716A1Ff12F9005F98f678D8BE97B8Bc81d6"
},
{
"address": "eth:0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b",
"type": "EOA",
"isVerified": true,
"name": "0x8AE8…422b",
"url": "https://etherscan.io/address/0x8AE8EE5ad6EaE89836B0070Ebc47AF06E3D7422b"
},
{
"address": "eth:0x0D61C8b6CA9669A36F351De3AE335e9689dd9C5b",
"type": "EOA",
"isVerified": true,
"name": "0x0D61…9C5b",
"url": "https://etherscan.io/address/0x0D61C8b6CA9669A36F351De3AE335e9689dd9C5b"
},
{
"address": "eth:0xcC771952fdE840E30C6802734e5ad20479c2959f",
"type": "EOA",
"isVerified": true,
"name": "0xcC77…959f",
"url": "https://etherscan.io/address/0xcC771952fdE840E30C6802734e5ad20479c2959f"
},
{
"address": "eth:0x387Cde8598E1CBb297FDc5bAEbA5E5c5c2735344",
"type": "EOA",
"isVerified": true,
"name": "0x387C…5344",
"url": "https://etherscan.io/address/0x387Cde8598E1CBb297FDc5bAEbA5E5c5c2735344"
},
{
"address": "eth:0xE3fCEE6B6cd564E073346f71394f60eC9aDf5120",
"type": "EOA",
"isVerified": true,
"name": "0xE3fC…5120",
"url": "https://etherscan.io/address/0xE3fCEE6B6cd564E073346f71394f60eC9aDf5120"
}
],
"discoveryDrivenData": true
},
{
"id": "Safe",
"name": "Safe",
"description": "A Multisig with 2/7 threshold. \nMember of Safe.\n",
"accounts": [
{
"address": "eth:0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb",
"type": "Contract",
"isVerified": true,
"name": "0xFA58…f9Cb",
"url": "https://etherscan.io/address/0xFA58659F64a393A6E1A548ABc70Ad2CfE1e8f9Cb"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xF045025C845E786E343Df30cC6f67ec6BB822b34",
"type": "EOA",
"isVerified": true,
"name": "0xF045…2b34",
"url": "https://etherscan.io/address/0xF045025C845E786E343Df30cC6f67ec6BB822b34"
},
{
"address": "eth:0x6B2Ba82994A1606605af1F11E50DA0b2B0cee6e6",
"type": "EOA",
"isVerified": true,
"name": "0x6B2B…e6e6",
"url": "https://etherscan.io/address/0x6B2Ba82994A1606605af1F11E50DA0b2B0cee6e6"
},
{
"address": "eth:0x6624307a4f672ec5C289fBA196952902BB518dc0",
"type": "EOA",
"isVerified": true,
"name": "0x6624…8dc0",
"url": "https://etherscan.io/address/0x6624307a4f672ec5C289fBA196952902BB518dc0"
},
{
"address": "eth:0x54DFA4B635E7eB98515fEBA81d360A3871739277",
"type": "EOA",
"isVerified": true,
"name": "0x54DF…9277",
"url": "https://etherscan.io/address/0x54DFA4B635E7eB98515fEBA81d360A3871739277"
},
{
"address": "eth:0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3",
"type": "EOA",
"isVerified": true,
"name": "0xFAc8…66a3",
"url": "https://etherscan.io/address/0xFAc88BB6229F47A31A78F0Ba91E5a541Cb1866a3"
},
{
"address": "eth:0x59cE4e1709c7E462F3b72Ca3e1256dFa7358FC29",
"type": "EOA",
"isVerified": true,
"name": "0x59cE…FC29",
"url": "https://etherscan.io/address/0x59cE4e1709c7E462F3b72Ca3e1256dFa7358FC29"
},
{
"address": "eth:0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4",
"type": "EOA",
"isVerified": true,
"name": "0xdEb9…1Bd4",
"url": "https://etherscan.io/address/0xdEb97974dfCC73178672205A1eadDc2BDeAc1Bd4"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x1FFDA89C755f6D4Af069897D77CcAbb580Fd412a",
"type": "EOA",
"isVerified": true,
"name": "0x1FFD…412a",
"url": "https://etherscan.io/address/0x1FFDA89C755f6D4Af069897D77CcAbb580Fd412a",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439",
"type": "EOA",
"isVerified": true,
"name": "0xC1E6…6439",
"url": "https://etherscan.io/address/0xC1E65a0cEbF95f56Cd8729f7e37CB33eD94d6439",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainFEP\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
},
"katana": {
"roles": [],
"actors": [
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 2/5 threshold. \n* Can upgrade **with 12h delay**\n * AgglayerBridgeL2 [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n * GlobalExitRootManagerL2SovereignChain [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n* Can interact with AgglayerBridgeL2\n * manage token mappings and deployments \n * own and upgrade default L2 token contracts deployed by the bridge \n * pause the bridge \n * unpause the bridge \n* Can interact with GlobalExitRootManagerL2SovereignChain\n * manage 'claimed' status of global deposit indexes (can freeze bridge transactions), remove global exit roots (used for L2 deposits) \n * roll back or insert leaves into the local exit tree (LET) that enables withdrawals from the L2. (can steal) \n* Can interact with L2Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 12h delay** [via: - acting directly with 12h delay (no delay if in emergency state)]",
"accounts": [
{
"address": "katana:0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a",
"type": "Contract",
"isVerified": true,
"name": "0x4e98…C38a",
"url": "https://katanascan.com/address/0x4e981bAe8E3cd06Ca911ffFE5504B2653ac1C38a"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://katanascan.com/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "katana:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://katanascan.com/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "katana:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://katanascan.com/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
},
{
"address": "katana:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://katanascan.com/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "katana:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://katanascan.com/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
}
],
"discoveryDrivenData": true
},
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 3/5 threshold. \n* Can upgrade **with no delay**\n * DeployerWhitelist [via: ProxyAdmin]\n * L2CrossDomainMessenger [via: ProxyAdmin]\n * GasPriceOracle [via: ProxyAdmin]\n * L2StandardBridge [via: ProxyAdmin]\n * SequencerFeeVault [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * L1BlockNumber [via: ProxyAdmin]\n * L2ERC721Bridge [via: ProxyAdmin]\n * L1Block [via: ProxyAdmin]\n * L2ToL1MessagePasser [via: ProxyAdmin]\n * OptimismMintableERC721Factory [via: ProxyAdmin]\n * ProxyAdmin [via: ProxyAdmin]\n * BaseFeeVault [via: ProxyAdmin]\n * L1FeeVault [via: ProxyAdmin]\n * OperatorFeeVault [via: ProxyAdmin]\n * SchemaRegistry [via: ProxyAdmin]\n * EAS [via: ProxyAdmin]\n* Can upgrade **with 12h delay**\n * AgglayerBridgeL2 [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n * GlobalExitRootManagerL2SovereignChain [via: L2Timelock with 12h delay (no delay if in emergency state) → ProxyAdmin]\n* Can interact with L2Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 12h delay** [via: - acting directly with 12h delay (no delay if in emergency state)]",
"accounts": [
{
"address": "katana:0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC",
"type": "Contract",
"isVerified": true,
"name": "0xd067…98CC",
"url": "https://katanascan.com/address/0xd0673F989bc3BA9314d0AAF28BfC84e99B7898CC"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a",
"type": "EOA",
"isVerified": true,
"name": "0x6f8C…D08a",
"url": "https://katanascan.com/address/0x6f8CC67A7F6c61E4047aC4870583899CC1fBD08a"
},
{
"address": "katana:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://katanascan.com/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "katana:0xA697656ac37ee1f59A8a5318F61601B4C208960D",
"type": "EOA",
"isVerified": true,
"name": "0xA697…960D",
"url": "https://katanascan.com/address/0xA697656ac37ee1f59A8a5318F61601B4C208960D"
},
{
"address": "katana:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://katanascan.com/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "katana:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://katanascan.com/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"discoveryDrivenData": true
},
{
"id": "SafeL2",
"name": "SafeL2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with SequencerFeeVault\n * receive fees \n* Can interact with BaseFeeVault\n * receive fees \n* Can interact with L1FeeVault\n * receive fees ",
"description": "A Multisig with 3/6 threshold. \n* Can interact with SequencerFeeVault\n * receive fees \n* Can interact with BaseFeeVault\n * receive fees \n* Can interact with L1FeeVault\n * receive fees ",
"accounts": [
{
"address": "katana:0x7990513f4d64d57524a0B2519759f53B0cB1aEbd",
"type": "Contract",
"isVerified": true,
"name": "0x7990…aEbd",
"url": "https://katanascan.com/address/0x7990513f4d64d57524a0B2519759f53B0cB1aEbd"
}
],
"chain": "katana",
"references": [],
"participants": [
{
"address": "katana:0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac",
"type": "EOA",
"isVerified": true,
"name": "0xb3dA…DCac",
"url": "https://katanascan.com/address/0xb3dA4c1Ba8De9E04f22B1554a070189F518FDCac"
},
{
"address": "katana:0x73D8846324B30477EA3Ac055589e40F39DE497F8",
"type": "EOA",
"isVerified": true,
"name": "0x73D8…97F8",
"url": "https://katanascan.com/address/0x73D8846324B30477EA3Ac055589e40F39DE497F8"
},
{
"address": "katana:0xf2dc90d4645579f261cA36E81181986dB576BbEe",
"type": "EOA",
"isVerified": true,
"name": "0xf2dc…BbEe",
"url": "https://katanascan.com/address/0xf2dc90d4645579f261cA36E81181986dB576BbEe"
},
{
"address": "katana:0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b",
"type": "EOA",
"isVerified": true,
"name": "0x4A65…154b",
"url": "https://katanascan.com/address/0x4A658D678804DD0a4Ad0A2c26AD4F4EB2517154b"
},
{
"address": "katana:0x02023f74ED12Df7752144aE8A23411776D4698b4",
"type": "EOA",
"isVerified": true,
"name": "0x0202…98b4",
"url": "https://katanascan.com/address/0x02023f74ED12Df7752144aE8A23411776D4698b4"
},
{
"address": "katana:0xa43901c63f7702C407378E55E0d0EB4064a2AE31",
"type": "EOA",
"isVerified": true,
"name": "0xa439…AE31",
"url": "https://katanascan.com/address/0xa43901c63f7702C407378E55E0d0EB4064a2AE31"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "katana:0x3138BBdAeAd339d34F084445192B2be9dd4B9f27",
"type": "EOA",
"isVerified": true,
"name": "0x3138…9f27",
"url": "https://katanascan.com/address/0x3138BBdAeAd339d34F084445192B2be9dd4B9f27",
"displayName": "EOA 3"
}
],
"chain": "katana",
"description": "* Can interact with GlobalExitRootManagerL2SovereignChain\n * update the global exit root (GER) that is used for L2 deposits ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainFEP",
"isVerified": true,
"address": "eth:0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746619859,
"transactionHash": "0x94512726adae49bb62110e2e8b037723a60d921d2ad2f18626e2d83a532e9f68",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1750690439,
"transactionHash": "0x3db4c1e8616cc300c46b7fea10aa3ef4d6e394642fce20ab2fd8ce15d16a7966",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1750858139,
"transactionHash": "0x69b66ecfc6cd449a80b58c1fcb937f436ca4afedc3cb9586fb7f9b3f35546c79",
"implementations": [
"eth:0xe7FE45579D784DC83B0feD844A65f4cEEFDe5682"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x9532A2F35fc9B18BD4FE8315D9C5B1C1Cf6Ac660"
]
}
],
"description": "The main system contract defining the katana Aggchain logic. This contract, based on the OP-Succinct L2OutputOracle, supports validity proofs and OP stack outputRoots (L2 state roots) are saved here.\n* Roles:\n * **aggchainManager**: Polygon Multisig 2\n * **aggchainSigners**: EOA 2 optimisticMode is enabled by the optimisticModeManager\n * **optimisticModeManager**: Polygon Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x100d3ca4f97776A40A7D93dB4AbF0FEA34230666#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"
],
"implementations": [
"eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746742811,
"transactionHash": "0x8889fe6d2dfe60b7a36d37f1f1177c604c413baef6bb6aa5ef9a517dce5bddb8",
"implementations": [
"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B"
]
},
{
"timestamp": 1746747095,
"transactionHash": "0xe49eea7d70073f7015c5d877a31b1375ba3422bebfdbcc23aa31111c01392c12",
"implementations": [
"eth:0x9a6C2Dcc7e523f87716e17Ba36D10CCfFA0A60bb"
]
},
{
"timestamp": 1753290299,
"transactionHash": "0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2",
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
]
},
{
"timestamp": 1753290299,
"transactionHash": "0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
{
"timestamp": 1753290299,
"transactionHash": "0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2",
"implementations": [
"eth:0x51c852eC17062FB229A117Cb8abCBc7Eb171D5Bc"
]
},
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x381E729FF983FA4BCEd820e7b922d79bF653B999"
]
},
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x7Cf803296662e8C72A6C1d6450572209aCF7f202"
]
},
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x3e6753e6c0162061cfa7eEc88d8fdaE651160Bf4"
]
},
{
"timestamp": 1779467495,
"transactionHash": "0x46d8e0a3a5383c133292ef51e4d7eef96fddc443b892d38e62c39b1186055691",
"implementations": [
"eth:0x5dEcbEEEFeCc5353355CD79A8fECC4c03F61ce8a"
]
}
],
"description": "Stores the configuration of the OP stack components and proof system. Specifies which game type is used for state validation, which currently is the PermissionedDisputeGame. This contract is modified to disable asset bridging, but it allows forced transactions.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Polygon Multisig 2",
"upgradableBy": [
{
"name": "Polygon Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x250D30c523104bf0a06825e7eAdE4Dc46EdfE40E#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"
],
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1746742811,
"transactionHash": "0x8889fe6d2dfe60b7a36d37f1f1177c604c413baef6bb6aa5ef9a517dce5bddb8",
"implementations": [
"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375"
]
},
{
"timestamp": 1746742811,
"transactionHash": "0x8889fe6d2dfe60b7a36d37f1f1177c604c413baef6bb6aa5ef9a517dce5bddb8",
"implementations": [
"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375"
]
},
{
"timestamp": 1753290299,
"transactionHash": "0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2",
"implementations": [
"eth:0x760C48C62A85045A6B69f07F4a9f22868659CbCc"
]
},
{
"timestamp": 1753290299,
"transactionHash": "0xc60a3166aa296b584f143a129ac53f156ee9946373ff5fb97b3785cc5fc092a2",
"implementations": [
"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
]
},
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x2bFE4A5Bd5A41e9d848d843ebCDFa15954e9A557"
]
},
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x2fA28989fc559836E9d66dFf3010C7F7f41c65ED"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Polygon Multisig 2\n * **batcherHash**: EOA 1\n * **owner**: Polygon Multisig 2",
"upgradableBy": [
{
"name": "Polygon Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb6e1f8B589A14B79DDD3aD7F0589AB548c70C174#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 4, EOA 5\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "vbWBTC",
"isVerified": true,
"address": "eth:0x2C24B57e2CCd1f273045Af6A5f632504C432374F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x420693B32113a0e00Eb9f3315D5D5ec3b32C2d69"
],
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0xda746ba183a805e81c8fc2bbaf726ca806f3a877b123a32c4a8fb233a3401cf1",
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
}
],
"description": "This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge WBTC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbWBTC-IOU but is sent to Safe.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Katana vaultBridge Multisig 1",
"upgradableBy": [
{
"name": "Katana vaultBridge Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2C24B57e2CCd1f273045Af6A5f632504C432374F#code"
},
{
"name": "vbETH",
"isVerified": true,
"address": "eth:0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x14Be6579A41342ca6B402ec85E7be538e6Ade951"
],
"implementations": [
"eth:0x81c16F89222C32806Daf01f5129937dFE19D525e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0x5771d96984dfa1aa2ac1437a9a760fcdd8698a51646c357d228ca93a0c2bef49",
"implementations": [
"eth:0x81c16F89222C32806Daf01f5129937dFE19D525e"
]
}
],
"description": "This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge ETH) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbETH-IOU but is sent to Safe.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Katana vaultBridge Multisig 1",
"upgradableBy": [
{
"name": "Katana vaultBridge Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2DC70fb75b88d2eB4715bc06E1595E6D97c34DFF#code"
},
{
"name": "vbUSDS",
"isVerified": true,
"address": "eth:0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xD1e389c046FB734D2a0c7C390312210c408ba832"
],
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0x219783dd1d89579d2930234430e92b72a7e4e314bb10955de8a2e3eb25290acc",
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
}
],
"description": "This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDS) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDS-IOU but is sent to Safe.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Katana vaultBridge Multisig 2",
"upgradableBy": [
{
"name": "Katana vaultBridge Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3DD459dE96F9C28e3a343b831cbDC2B93c8C4855#code"
},
{
"name": "MigrationManager",
"isVerified": true,
"address": "eth:0x417d01B64Ea30C4E163873f3a1f77b727c689e02",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x263b251D67BB154DD6b8352539466ACE7948ED56"
],
"implementations": [
"eth:0xC6dD6399eAE419A0a33A8dc307f4c1dB26D30e45"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0xe7bb72352b7a946e63626c8facddd751a5c413b1f8e617bc03972e29c79f7066",
"implementations": [
"eth:0xC6dD6399eAE419A0a33A8dc307f4c1dB26D30e45"
]
}
],
"description": "Helper contract for the vaultBridge tokens on Layer 2. If any vbTokens are minted 'natively' on Layer 2, this contract can receive the underlying assets and lock them in the Layer 1 vaults.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Polygon Labs Engineering/Security Multisig",
"upgradableBy": [
{
"name": "Polygon Labs Engineering/Security Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x417d01B64Ea30C4E163873f3a1f77b727c689e02#code"
},
{
"name": "vbUSDC",
"isVerified": true,
"address": "eth:0x53E82ABbb12638F09d9e624578ccB666217a765e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8970650CF3f1E57cA804C65B4DBcFf698789FE30"
],
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0xba1f13977401e784b36c67323c10a86828a2ba7dacce1c84be247bb3964a0aeb",
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
}
],
"description": "This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDC) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDC-IOU but is sent to Safe.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Katana vaultBridge Multisig 3",
"upgradableBy": [
{
"name": "Katana vaultBridge Multisig 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x53E82ABbb12638F09d9e624578ccB666217a765e#code"
},
{
"name": "vbUSDT",
"isVerified": true,
"address": "eth:0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x377a9e5df2882DC1DF8A0bD162cbc640eA634010"
],
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1747909835,
"transactionHash": "0xe5faaacdd7685d1b7fb939c740c7830a0fd07a48a7dc4495a3862e2a9cbff0cd",
"implementations": [
"eth:0xcC865B0324121b43728176024f58bdbB3afd6f29"
]
}
],
"description": "This token contract uses a standard 'vault bridge token' implementation created by Agglayer CDK. It keeps deposited assets in a vault and issues an IOU token (Vault Bridge USDT) which can be deposited to Agglayer. The underlying asset is generating yield, which does not accrue to the vbUSDT-IOU but is sent to Safe.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Katana vaultBridge Multisig 1",
"upgradableBy": [
{
"name": "Katana vaultBridge Multisig 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6d4f9f9f8f0155509ecd6Ac6c544fF27999845CC#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x14Be6579A41342ca6B402ec85E7be538e6Ade951",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Katana vaultBridge Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x14Be6579A41342ca6B402ec85E7be538e6Ade951#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Polygon Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x263b251D67BB154DD6b8352539466ACE7948ED56",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Polygon Labs Engineering/Security Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x263b251D67BB154DD6b8352539466ACE7948ED56#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x377a9e5df2882DC1DF8A0bD162cbc640eA634010",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Katana vaultBridge Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x377a9e5df2882DC1DF8A0bD162cbc640eA634010#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x420693B32113a0e00Eb9f3315D5D5ec3b32C2d69",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Katana vaultBridge Multisig 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x420693B32113a0e00Eb9f3315D5D5ec3b32C2d69#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x6463dEE3828677F6270d83d45408044fc5eDB908",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6463dEE3828677F6270d83d45408044fc5eDB908#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x6d0ff67fb427422AfF35EEa8596949B374b09a52",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Polygon Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6d0ff67fb427422AfF35EEa8596949B374b09a52#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x8970650CF3f1E57cA804C65B4DBcFf698789FE30",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Katana vaultBridge Multisig 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8970650CF3f1E57cA804C65B4DBcFf698789FE30#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xA7A26BbA1191a064637d7B0b23896589F4e4d22D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA7A26BbA1191a064637d7B0b23896589F4e4d22D#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0xaA8a62563CFe4E36118ED479B5486F503b438376",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Polygon Multisig 2",
"upgradableBy": [
{
"name": "Polygon Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaA8a62563CFe4E36118ED479B5486F503b438376#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0xb41151Bf2B989d3771caBd5BCb5C435949543322",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x19DbD16f0a8e706D817B7e3b7bcF72917Ebb8832"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1772552963,
"transactionHash": "0xa814ff1c6a02fa4a717875ed09e96cbd61874d85c896f3ddd8df290c73f34961",
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Polygon Multisig 2",
"upgradableBy": [
{
"name": "Polygon Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb41151Bf2B989d3771caBd5BCb5C435949543322#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xD1e389c046FB734D2a0c7C390312210c408ba832",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Katana vaultBridge Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD1e389c046FB734D2a0c7C390312210c408ba832#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
],
"katana": [
{
"name": "AgglayerBridgeL2",
"isVerified": true,
"address": "katana:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"katana:0x094B1B2322F1A8927B61dfAf686CA78d71C6cbf6"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1747842266,
"transactionHash": "0xb3c92e7a065f876cfe017a4bed5a966e28075d693b5ef221fa49b2ff0d727c7c",
"implementations": [
"katana:0xd4AC5935c9AeA32FC120D52B22Ee41C9C5f82DEe"
]
},
{
"timestamp": 1750928669,
"transactionHash": "0x2095014c39cf800cb6f965f51435d55108c75ef70ff4e83f148ba99fd115684a",
"implementations": [
"katana:0xc8EC6E02AF5D7E2EBf590601979401A696Bf820e"
]
},
{
"timestamp": 1751061868,
"transactionHash": "0xe21aaf644474404b9c5441f48e95467afaaec140d8435b9d3f31474e59a05dd2",
"implementations": [
"katana:0xe3E6F722b047Ce3B1F733D9c5B0609DA4e9D1FAb"
]
},
{
"timestamp": 1772560429,
"transactionHash": "0xff4926542308f9cea5b8b77f9c6d20a840b61878991d25981ca96b55c3a830ec",
"implementations": [
"katana:0x094B1B2322F1A8927B61dfAf686CA78d71C6cbf6"
]
}
],
"description": "Agglayer bridge contract. Supports interop with Ethereum and blockchains connected to Agglayer. Escrows all preminted ETH because it cannot mint on the L2. The globalExitRootManager is used as an oracle to validate bridge messages against.\n* Roles:\n * **admin**: ProxyAdmin; ultimately GnosisSafeL2, SafeL2\n * **bridgeManager**: GnosisSafeL2\n * **emergencyBridgePauser**: GnosisSafeL2\n * **emergencyBridgeUnpauser**: GnosisSafeL2\n * **getProxiedTokensManager**: GnosisSafeL2",
"upgradableBy": [
{
"name": "GnosisSafeL2",
"delay": "12h"
},
{
"name": "SafeL2",
"delay": "12h"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "GlobalExitRootManagerL2SovereignChain",
"isVerified": true,
"address": "katana:0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"katana:0x0200143Fa295EE4dffEF22eE2616c2E008D81688"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "Manages Layer 2 and global merkle roots (exit roots). It stores exit roots written during bridge deposits, accepts imported global exit roots from a permissioned address, and manages historical roots.\n* Roles:\n * **admin**: ProxyAdmin; ultimately GnosisSafeL2, SafeL2\n * **globalExitRootRemover**: GnosisSafeL2, GnosisSafeL2 if the bridge is paused\n * **globalExitRootUpdater**: EOA 3",
"upgradableBy": [
{
"name": "GnosisSafeL2",
"delay": "12h"
},
{
"name": "SafeL2",
"delay": "12h"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0xa40D5f56745a118D0906a34E69aeC8C0Db1cB8fA#code"
},
{
"name": "L2Timelock",
"isVerified": true,
"address": "katana:0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "katana",
"description": "A timelock with access control. The current minimum delay is 12h.\n* Roles:\n * **timelockAdmin**: GnosisSafeL2 (no delay if in emergency state), SafeL2 (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "katana:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "katana",
"description": "* Roles:\n * **owner**: L2Timelock",
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "DeployerWhitelist",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000002",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xc0d3c0d3C0d3c0D3c0d3C0D3c0d3C0d3c0D30002"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000002#code"
},
{
"name": "L2CrossDomainMessenger",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000007",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xC0d3c0d3c0D3c0D3C0d3C0D3C0D3c0d3c0d30007"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "The L2CrossDomainMessenger (L2xDM) contract sends messages from L2 to L1, and relays messages from L1 onto L2 with a system tx. In the event that a message sent from L2 to L1 is rejected for exceeding the L1 gas limit, it can be resubmitted via this contract’s replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000007#code"
},
{
"name": "GasPriceOracle",
"isVerified": true,
"address": "katana:0x420000000000000000000000000000000000000F",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1746806401,
"transactionHash": "0xb6560306ccb0e772b132a8a6dd78244c0d7ac270c80baba40f95006184926c30",
"implementations": [
"katana:0x93e57A196454CB919193fa9946f14943cf733845"
]
},
{
"timestamp": 1773066601,
"transactionHash": "0xc7c01d75d0b6950fcd30b448cba848e9841ab9ebb6b46eed9ecde4ba05ad0fd9",
"implementations": [
"katana:0x4f1db3c6AbD250ba86E0928471A8F7DB3AFd88F1"
]
}
],
"description": "Provides the current gas price for L2 transactions.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x420000000000000000000000000000000000000F#code"
},
{
"name": "SequencerFeeVault",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000011",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x8A52Ca0E8459460C6861C117285E6973Ecf7EE3f"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1751048222,
"transactionHash": "0xbfd0fa2d55165b0f6a787f0cd5ec9fe057e088f52556ca7b3d89bdf206961ae6",
"implementations": [
"katana:0x8A52Ca0E8459460C6861C117285E6973Ecf7EE3f"
]
}
],
"description": "Collects the sequencer fees.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **recipient**: SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000011#code"
},
{
"name": "L1BlockNumber",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000013",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xC0D3C0d3C0D3c0D3C0d3c0D3C0d3c0d3C0d30013"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "Simple contract that returns the latest L1 block number.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000013#code"
},
{
"name": "L1Block",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000015",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1746806401,
"transactionHash": "0xe992e00998b34075506d2726a274db07a62af6cdd9d527bfda9128114603cfbd",
"implementations": [
"katana:0xFf256497D61dcd71a9e9Ff43967C13fdE1F72D12"
]
},
{
"timestamp": 1773066601,
"transactionHash": "0xcd60191626fa3124e7031235c52f0adf6be545ebbd7cf55641bd9dabcbedaf6a",
"implementations": [
"katana:0x3Ba4007f5C922FBb33C454B41ea7a1f11E83df2C"
]
}
],
"description": "Simple contract that returns information about the latest L1 block, which is derived permissionlessly from the L1 chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000015#code"
},
{
"name": "L2ToL1MessagePasser",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000016",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1746747728,
"transactionHash": "0x8ff7fb4b9e07e0ba8436cd4a724fd4029bac1c49ed773e4b750c9d5b529f8a4b",
"implementations": [
"katana:0xFBF44D0341C03098A1D9C0336e3d5C34E8BFdf1A"
]
}
],
"description": "Contract used internally by the L2CrossDomainMessenger to send messages to L1. It can also be used directly as a low-level interface.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000016#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000018",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xC0d3C0D3c0d3C0d3c0d3c0D3C0D3C0d3C0D30018"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **owner**: SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000018#code"
},
{
"name": "BaseFeeVault",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000019",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x7e27d992B349B96ea8D32378B7c53b3D58139a2E"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1751047987,
"transactionHash": "0x102958f21f34f8d3e075ce9d124919c15f7c466105ab31957e94d698cceed77b",
"implementations": [
"katana:0x7e27d992B349B96ea8D32378B7c53b3D58139a2E"
]
}
],
"description": "Collects EIP-1559 base fees\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **recipient**: SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000019#code"
},
{
"name": "L1FeeVault",
"isVerified": true,
"address": "katana:0x420000000000000000000000000000000000001A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x0ebC896698De72A444d00Dc3d046B432c555EB09"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1751048135,
"transactionHash": "0x7f2d7c48dff15cb514d68ddf9c91d98165e1edaca9317fc22a3f16828311f8b2",
"implementations": [
"katana:0x0ebC896698De72A444d00Dc3d046B432c555EB09"
]
}
],
"description": "Collects the L1 portion of the L2 transaction fees.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2\n * **recipient**: SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x420000000000000000000000000000000000001A#code"
},
{
"name": "OperatorFeeVault",
"isVerified": true,
"address": "katana:0x420000000000000000000000000000000000001b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0x4fa2Be8cd41504037F1838BcE3bCC93bC68Ff537"
]
},
"chain": "katana",
"pastUpgrades": [
{
"timestamp": 1746806401,
"transactionHash": "0xf162acc8ebbaf9237755736b62331a4817fe27bbbe3712f473ecfa8fee499f7c",
"implementations": [
"katana:0x4fa2Be8cd41504037F1838BcE3bCC93bC68Ff537"
]
}
],
"description": "Holds the 'operator fees' for the L2 network, which are part of the L2 fees that users pay.\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x420000000000000000000000000000000000001b#code"
},
{
"name": "SchemaRegistry",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000020",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xc0d3c0d3c0d3C0d3c0d3C0D3C0D3c0d3C0D30020"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "Contracts to register schemas for the Ethereum Attestation Service (EAS).\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000020#code"
},
{
"name": "EAS",
"isVerified": true,
"address": "katana:0x4200000000000000000000000000000000000021",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"katana:0x4200000000000000000000000000000000000018"
],
"implementations": [
"katana:0xC0D3c0D3C0d3c0D3c0D3C0D3c0D3c0d3c0d30021"
]
},
"chain": "katana",
"pastUpgrades": [],
"description": "Contract containing the main logic for the Ethereum Attestation Service (EAS).\n* Roles:\n * **admin**: ProxyAdmin; ultimately SafeL2",
"upgradableBy": [
{
"name": "SafeL2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0x4200000000000000000000000000000000000021#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "katana:0xb30C032b183525de7427f04e79F45Cd19866E124",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "katana",
"description": "Utility library contract for the AgglayerBridgeL2.\n",
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0xb30C032b183525de7427f04e79F45Cd19866E124#code"
},
{
"name": "TokenWrappedBridgeUpgradeable",
"isVerified": true,
"address": "katana:0xF0777a825470092b3Debc9af291634460b8E1a2c",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "katana",
"description": "An ERC-20 implementation designed for cross-chain assets on the L2. It restricts token minting or burning strictly to the primary bridge contract.\n",
"discoveryDrivenData": true,
"url": "https://katanascan.com/address/0xF0777a825470092b3Debc9af291634460b8E1a2c#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client. Data availability layer is set to Ethereum blobs.",
"proverSystemProject": "sp1",
"verificationStatus": "notVerified",
"hash": "0x0065e407807b2b3610cc9ff6637ea16e815552bc34b48c206529d3cfcd9d1152"
},
{
"title": "Range program of OP Succinct",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks. Data availability layer is set to Ethereum blobs.",
"proverSystemProject": "sp1",
"verificationStatus": "notVerified",
"hash": "0x5c7c05114bc5dd360fdb52ec2b4977a45f7e22806bc949a72759ea1172202229"
},
{
"title": "Aggchain program of agglayer v1.1.2",
"description": "Verifies state transition of an Agglayer-based chain either by checking a full validity proof or just by checking a registered sequencer signature. Also checks that L1 information on the chain aligns with the values stored on Agglayer.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/provers/tree/v1.1.2/crates/aggchain-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [provers repo](https://github.com/agglayer/provers): `git checkout v1.1.2`. Commit hash should be `f8580024d771580217ded443f85e42919d682595`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make ap-elf` to generate aggchain program elf from sources\n5. Compute vkey hash bytes of the generated `crates/aggchain-proof-program/elf/riscv32im-succinct-zkvm-elf` using SP1 toolchain, e.g. by this simple rust script:\n\n```\nuse sp1_sdk::{HashableKey, Prover, CpuProver};\n\nfn main() {\n let elf_path = std::env::args().nth(1).expect(\"Provide elf_path\");\n let elf_bytes = std::fs::read(&elf_path).expect(\"File read error\");\n let prover = CpuProver::new();\n let (_pk, vkey) = Prover::setup(&prover, &elf_bytes);\n let comm = vkey.hash_bytes();\n let hex: String = comm.iter().\n map(|b| format!(\"{:02x}\", b)).collect();\n println!(\"0x{}\", hex);\n}\n```",
"hash": "0x713f8a687452545141b6cd852472c67742a5c61474b97a136d0d107804affa1f"
},
{
"title": "Aggchain program of agglayer v1.5.0",
"description": "Verifies state transition of an Agglayer-based chain either by checking a full validity proof or just by checking a registered sequencer signature. Also checks that L1 information on the chain aligns with the values stored on Agglayer.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/provers/tree/v1.5.0/crates/aggchain-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [provers repo](https://github.com/agglayer/provers): `git checkout v1.5.0`. Commit hash should be `347a140649383d8f5aa5a14907a45cfa756426af`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make ap-elf` to generate aggchain program elf from sources\n4. Compute vkey hash bytes of the generated `crates/aggchain-proof-program/elf/riscv32im-succinct-zkvm-elf` using SP1 toolchain, e.g. by this simple rust script:\n\n```\nuse sp1_sdk::{HashableKey, Prover, CpuProver};\n\nfn main() {\n let elf_path = std::env::args().nth(1).expect(\"Provide elf_path\");\n let elf_bytes = std::fs::read(&elf_path).expect(\"File read error\");\n let prover = CpuProver::new();\n let (_pk, vkey) = Prover::setup(&prover, &elf_bytes);\n let comm = vkey.hash_bytes();\n let hex: String = comm.iter().\n map(|b| format!(\"{:02x}\", b)).collect();\n println!(\"0x{}\", hex);\n}\n```",
"hash": "0x374ee73950cdb07d1b8779d90a8467df232639c13f9536b03f1ba76a2aa5dac6"
},
{
"title": "Aggchain program of agglayer v1.8.0",
"description": "Verifies state transition of an Agglayer-based chain either by checking a full validity proof or just by checking a registered sequencer signature. Also checks that L1 information on the chain aligns with the values stored on Agglayer.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/provers/tree/v1.8.0/crates/aggchain-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\n\nVerify:\n\n1. Checkout the correct branch in [provers repo](https://github.com/agglayer/provers): `git checkout v1.8.0`. Commit hash should be `df2e48ad8432a863bdc0a939108d37a69f4bea4e`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make ap-elf` to generate aggchain program elf from sources\n4. Compute vkey hash bytes of the generated `crates/aggchain-proof-program/elf/riscv32im-succinct-zkvm-elf` using SP1 toolchain, e.g. by this simple rust script:\n\n```\nuse sp1_sdk::{HashableKey, Prover, CpuProver};\n\nfn main() {\n let elf_path = std::env::args().nth(1).expect(\"Provide elf_path\");\n let elf_bytes = std::fs::read(&elf_path).expect(\"File read error\");\n let prover = CpuProver::new();\n let (_pk, vkey) = Prover::setup(&prover, &elf_bytes);\n let comm = vkey.hash_bytes();\n let hex: String = comm.iter().\n map(|b| format!(\"{:02x}\", b)).collect();\n println!(\"0x{}\", hex);\n}\n```",
"hash": "0x6e38caa6114ac4b9779f647547de9e8f09e9f5cd6194e7134110760d3aa31b53"
},
{
"title": "Aggchain program of agglayer v1.9.2",
"description": "Verifies state transition of an Agglayer-based chain either by checking a full validity proof or just by checking a registered sequencer signature. Also checks that L1 information on the chain aligns with the values stored on Agglayer.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/provers/tree/v1.9.2/crates/aggchain-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [provers repo](https://github.com/agglayer/provers): `git checkout v1.9.2`. Commit hash should be `191952ce5551badd578063e475f9a4f3c5a9b0f4`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make ap-elf` to generate aggchain program elf from sources\n4. Compute vkey hash bytes of the generated `crates/aggchain-proof-program/target/elf-compilation/docker/riscv32im-succinct-zkvm-elf/release/aggchain-proof-program` using SP1 toolchain, e.g. by this simple rust script:\n\n```\nuse sp1_sdk::{HashableKey, Prover, CpuProver};\n\nfn main() {\n let elf_path = std::env::args().nth(1).expect(\"Provide elf_path\");\n let elf_bytes = std::fs::read(&elf_path).expect(\"File read error\");\n let prover = CpuProver::new();\n let (_pk, vkey) = Prover::setup(&prover, &elf_bytes);\n let comm = vkey.hash_bytes();\n let hex: String = comm.iter().\n map(|b| format!(\"{:02x}\", b)).collect();\n println!(\"0x{}\", hex);\n}\n```",
"hash": "0x7767a8330ce68dac35265ba15d9eec6722b943cf00dc3b733779e1ae55696f70"
},
{
"title": "Aggchain program of agglayer v2.0.0",
"description": "Verifies state transition of an Agglayer-based chain either by checking a full validity proof or just by checking a registered sequencer signature. Also checks that L1 information on the chain aligns with the values stored on Agglayer.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/provers/tree/v2.0.0/crates/aggchain-proof-program",
"verificationStatus": "successful",
"verificationSteps": "\nPrepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install pkg-config and OpenSSL development headers, e.g. on Debian/Ubuntu: `sudo apt-get install pkg-config libssl-dev`\n4. Install protobuf compiler, e.g. on Debian/Ubuntu: `sudo apt-get install protobuf-compiler`. Make sure `protoc --version` works.\n\nVerify:\n\n1. Checkout the correct branch in [provers repo](https://github.com/agglayer/provers): `git checkout v2.0.0`. Commit hash should be `5c51190e0c0edd1ee9ba8bc4383bd74f361760e7`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make ap-elf` to generate aggchain program elf from sources. The generated ELF should be at `crates/aggchain-proof-program/target/elf-compilation/docker/riscv64im-succinct-zkvm-elf/release/aggchain-proof-program`.\n4. From the root dir: `cargo run -p aggkit-prover -- vkey` to compute vkey hash bytes for the aggchain program. This should print `0x679bc13716cdb49416a9ca9e297b10d76390df2c343690d4172676c207517915`.\n\nNote: `cargo prove vkey --elf ` prints a different SP1 vkey representation for this program, not the `hash_bytes()` program hash used here.\n ",
"hash": "0x679bc13716cdb49416a9ca9e297b10d76390df2c343690d4172676c207517915"
},
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "the contracts or their dependencies (e.g. AggLayerGateway) receive a malicious code upgrade. There is no delay on upgrades."
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781102006,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+7 -7
+6 -6
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayArb\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "arb1:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://arbiscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://arbiscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "arb1:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://arbiscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "arb1:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://arbiscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"base": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayBase\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "base:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://basescan.org/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://basescan.org/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "base:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://basescan.org/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "base:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://basescan.org/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "Lens Multisig",
"name": "Lens Multisig",
"description": "A Multisig with 2/10 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: LensZkEvmAdmin]",
"accounts": [
{
"address": "eth:0x4968A0E4b025eD7d095753E54058377969b41abC",
"type": "Contract",
"isVerified": true,
"name": "0x4968…1abC",
"url": "https://etherscan.io/address/0x4968A0E4b025eD7d095753E54058377969b41abC"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5",
"type": "EOA",
"isVerified": true,
"name": "0x7CBb…acf5",
"url": "https://etherscan.io/address/0x7CBba07e31Dc7b12bB69a1209C5B11A8aC50acf5"
},
{
"address": "eth:0x8f356fEC1793c4AEbd817A344C77310081Fa6917",
"type": "EOA",
"isVerified": true,
"name": "0x8f35…6917",
"url": "https://etherscan.io/address/0x8f356fEC1793c4AEbd817A344C77310081Fa6917"
},
{
"address": "eth:0x71910321A1d3b3f743ca52569f5Aa82f09538A2e",
"type": "EOA",
"isVerified": true,
"name": "0x7191…8A2e",
"url": "https://etherscan.io/address/0x71910321A1d3b3f743ca52569f5Aa82f09538A2e"
},
{
"address": "eth:0xfbDF62F0a73DED0BF5A264867cFD022E192B5526",
"type": "EOA",
"isVerified": true,
"name": "0xfbDF…5526",
"url": "https://etherscan.io/address/0xfbDF62F0a73DED0BF5A264867cFD022E192B5526"
},
{
"address": "eth:0x5dc301EcD8Bd7694BB1074B3E58Aa0916EE7887d",
"type": "EOA",
"isVerified": true,
"name": "0x5dc3…887d",
"url": "https://etherscan.io/address/0x5dc301EcD8Bd7694BB1074B3E58Aa0916EE7887d"
},
{
"address": "eth:0x62Ae8d9B6d0D9817bd9D41b9AfEAc301dBa713B8",
"type": "EOA",
"isVerified": true,
"name": "0x62Ae…13B8",
"url": "https://etherscan.io/address/0x62Ae8d9B6d0D9817bd9D41b9AfEAc301dBa713B8"
},
{
"address": "eth:0x2eD1df8F475b1f9c7493fC0eb0BFD4D1FD17f27b",
"type": "EOA",
"isVerified": true,
"name": "0x2eD1…f27b",
"url": "https://etherscan.io/address/0x2eD1df8F475b1f9c7493fC0eb0BFD4D1FD17f27b"
},
{
"address": "eth:0x2a80091816D7872850D500F6Ade835354238Af17",
"type": "EOA",
"isVerified": true,
"name": "0x2a80…Af17",
"url": "https://etherscan.io/address/0x2a80091816D7872850D500F6Ade835354238Af17"
},
{
"address": "eth:0x5063b3D23C3640d51c9E2aef41063B1d482C70ff",
"type": "EOA",
"isVerified": true,
"name": "0x5063…70ff",
"url": "https://etherscan.io/address/0x5063b3D23C3640d51c9E2aef41063B1d482C70ff"
},
{
"address": "eth:0xc5342CD71f67DAc44Bcfbc37df35700b5e4691e6",
"type": "EOA",
"isVerified": true,
"name": "0xc534…91e6",
"url": "https://etherscan.io/address/0xc5342CD71f67DAc44Bcfbc37df35700b5e4691e6"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484",
"address": "eth:0x9971903268BAED330DA9DD533D97924c725AB593",
"type": "EOA",
"isVerified": true,
"name": "0x3eA4…a484",
"url": "https://etherscan.io/address/0x3eA4D1684C65756E892b0B8d3e331E10D9d3a484",
"name": "0x9971…B593",
"url": "https://etherscan.io/address/0x9971903268BAED330DA9DD533D97924c725AB593",
"displayName": "EOA 1"
},
{
"address": "eth:0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67",
"address": "eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc",
"type": "EOA",
"isVerified": true,
"name": "0x477c…Ab67",
"url": "https://etherscan.io/address/0x477c1B7DC1091389CBD3Eef21Efb00081606Ab67",
"name": "0xBf02…36Bc",
"url": "https://etherscan.io/address/0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1780999809,
"baseTimestamp": 1781602943,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+31 -6
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x258862dec9a77db57b398c441390783293E2a7A1",
"type": "EOA",
"isVerified": true,
"name": "0x2588…a7A1",
"url": "https://etherscan.io/address/0x258862dec9a77db57b398c441390783293E2a7A1",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x8F2D2Da3044B0A1ea54Ee26F7fe376cD9ec4393F",
"type": "EOA",
"isVerified": true,
"name": "0x8F2D…393F",
"url": "https://etherscan.io/address/0x8F2D2Da3044B0A1ea54Ee26F7fe376cD9ec4393F",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x92726F7dE49300DBdb60930066bc1d0803c0740B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1719499031,
"transactionHash": "0x03c9a006f95a45fda2a18e475242078b8563715bc621e21e62a78962e9fb4e63",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1741176767,
"transactionHash": "0xc376c3725fb986eead241c5b7663e6e081f66b92984bc4b3f0c08d23a0101a35",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1759404935,
"transactionHash": "0x4a9633f61bf7eacf4cfffefccc1e8a561fdaacfbed6470573463e28304b3906d",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the prism Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x92726F7dE49300DBdb60930066bc1d0803c0740B#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 3, EOA 4\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"LUMIA"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+13 -5
+11 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Paradex Multisig 2",
"name": "Paradex Multisig 2",
"description": "A Multisig with 3/6 threshold. \n* Can upgrade **with no delay**\n * StarkgateManager \n * StarkgateRegistry \n * USDC Bridge \n * Paradex \n* Can interact with USDC Bridge\n * disable the withdrawal limit and manage the security agent role that can enable it \n * enable the withdrawal limit \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with Paradex\n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"accounts": [
{
"address": "eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0",
"type": "Contract",
"isVerified": true,
"name": "0xFF57…61C0",
"url": "https://etherscan.io/address/0xFF57A3bB6465501c993acF8f3b29125a862661C0"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x721e0A5e09A6e0Bf9641193a4D82901607837Df9",
"type": "EOA",
"isVerified": true,
"name": "0x721e…7Df9",
"url": "https://etherscan.io/address/0x721e0A5e09A6e0Bf9641193a4D82901607837Df9"
},
{
"address": "eth:0xdaA9c7160E33d7c5C7D292f452c074Ec60f5C199",
"type": "EOA",
"isVerified": true,
"name": "0xdaA9…C199",
"url": "https://etherscan.io/address/0xdaA9c7160E33d7c5C7D292f452c074Ec60f5C199"
},
{
"address": "eth:0xfF206f46453A9dd8e1664532788f4987c15B937d",
"type": "EOA",
"isVerified": true,
"name": "0xfF20…937d",
"url": "https://etherscan.io/address/0xfF206f46453A9dd8e1664532788f4987c15B937d"
},
{
"address": "eth:0x3552F50fFe9517d8c6913992F3d4bA8030Ca1512",
"type": "EOA",
"isVerified": true,
"name": "0x3552…1512",
"url": "https://etherscan.io/address/0x3552F50fFe9517d8c6913992F3d4bA8030Ca1512"
},
{
"address": "eth:0x94d5dc7c96Eb6176783787669571970C7ba43e01",
"type": "EOA",
"isVerified": true,
"name": "0x94d5…3e01",
"url": "https://etherscan.io/address/0x94d5dc7c96Eb6176783787669571970C7ba43e01"
},
{
"address": "eth:0x6f52712Ae102e6B7970F1e24c83d22e5fF5E8950",
"type": "EOA",
"isVerified": true,
"name": "0x6f52…8950",
"url": "https://etherscan.io/address/0x6f52712Ae102e6B7970F1e24c83d22e5fF5E8950"
}
],
"discoveryDrivenData": true
},
{
"id": "SHARP Multisig",
"name": "SHARP Multisig",
"description": "A Multisig with 2/4 threshold. \n* Can upgrade **with 8d delay**\n * SHARPVerifierCallProxy [via: - acting directly with 8d delay]\n* Can interact with SHARPVerifierCallProxy\n * manage the upgrade admin amd access control roles \n * set custom implementations for specific operators (changes the verifier based on who calls it) ",
"accounts": [
{
"address": "eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4",
"type": "Contract",
"isVerified": true,
"name": "0x21F9…AEc4",
"url": "https://etherscan.io/address/0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
},
{
"address": "eth:0xebc8416179fE90854fe8B3f774801165572cfD7F",
"type": "EOA",
"isVerified": true,
"name": "0xebc8…fD7F",
"url": "https://etherscan.io/address/0xebc8416179fE90854fe8B3f774801165572cfD7F"
},
{
"address": "eth:0x955B978F3ee7818dA71fA25c676062E6BC462Fec",
"type": "EOA",
"isVerified": true,
"name": "0x955B…2Fec",
"url": "https://etherscan.io/address/0x955B978F3ee7818dA71fA25c676062E6BC462Fec"
}
],
"discoveryDrivenData": true
},
{
"id": "Paradex Multisig",
"name": "Paradex Multisig",
"description": "A Multisig with 3/6 threshold. \n* Can upgrade **with no delay**\n * Paradex \n* Can interact with Paradex\n * Permissioned to manage the Operator role, finalize state and change critical parameters like the programHash, configHash, or message cancellation delay in the core contract ",
"accounts": [
{
"address": "eth:0x0a64d3D7747549aF6d65C225D56ac8f71e436B93",
"type": "Contract",
"isVerified": true,
"name": "0x0a64…6B93",
"url": "https://etherscan.io/address/0x0a64d3D7747549aF6d65C225D56ac8f71e436B93"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0405107a60391Eb51821be373ff978115Ee58488",
"type": "EOA",
"isVerified": true,
"name": "0x0405…8488",
"url": "https://etherscan.io/address/0x0405107a60391Eb51821be373ff978115Ee58488"
},
{
"address": "eth:0x64F4396bb0669C72858Cc50C779b48EB25F45770",
"type": "EOA",
"isVerified": true,
"name": "0x64F4…5770",
"url": "https://etherscan.io/address/0x64F4396bb0669C72858Cc50C779b48EB25F45770"
},
{
"address": "eth:0xCe958D997F4a5824D4d503A128216322C6C223a0",
"type": "EOA",
"isVerified": true,
"name": "0xCe95…23a0",
"url": "https://etherscan.io/address/0xCe958D997F4a5824D4d503A128216322C6C223a0"
},
{
"address": "eth:0x804d60CB1ade94511f7915A2062948685Ca8C81f",
"type": "EOA",
"isVerified": true,
"name": "0x804d…C81f",
"url": "https://etherscan.io/address/0x804d60CB1ade94511f7915A2062948685Ca8C81f"
},
{
"address": "eth:0xBF6aAc7Ae78B351180AD42b3dc5087eAd886B4A6",
"type": "EOA",
"isVerified": true,
"name": "0xBF6a…B4A6",
"url": "https://etherscan.io/address/0xBF6aAc7Ae78B351180AD42b3dc5087eAd886B4A6"
},
{
"address": "eth:0x59232aC80E6d403b6381393e52f4665ECA328558",
"type": "EOA",
"isVerified": true,
"name": "0x5923…8558",
"url": "https://etherscan.io/address/0x59232aC80E6d403b6381393e52f4665ECA328558"
}
],
"discoveryDrivenData": true
},
{
"id": "StarkgateManager",
"name": "StarkgateManager",
"accounts": [
{
"address": "eth:0x279b87139f2e89D7ce44c3056D2876fDEAB29BAE",
"type": "Contract",
"isVerified": true,
"name": "0x279b…9BAE",
"url": "https://etherscan.io/address/0x279b87139f2e89D7ce44c3056D2876fDEAB29BAE"
}
],
"chain": "ethereum",
"description": "Acts as a central contract to manage StarkGate bridge escrows (add new ones, deactivate existing, change configs) when given the Manager role from the respective escrows.\n* Can interact with USDC Bridge\n * deactivate bridging for deposits into the escrow ",
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xC70ae19B5FeAA5c19f576e621d2bad9771864fe2",
"type": "EOA",
"isVerified": true,
"name": "0xC70a…4fe2",
"url": "https://etherscan.io/address/0xC70ae19B5FeAA5c19f576e621d2bad9771864fe2",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with Paradex\n * Permissioned to regularly update the state of the L2 on L1. Each state update must have been proven via the SHARP verifier and contains state diffs for data availability ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x40060493a280915e2df7b46f8A9f251156080C39",
"type": "EOA",
"isVerified": true,
"name": "0x4006…0C39",
"url": "https://etherscan.io/address/0x40060493a280915e2df7b46f8A9f251156080C39",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with StarkgateManager\n * enroll new tokens, deactivate existing ones (for deposits) or block tokens from being added to the Multibridge \n * manage critical access control roles related to upgrades and set the proxy governor that can upgrade the implementation \n* Can interact with StarkgateRegistry\n * manage critical access control roles and the role that can upgrade the implementation ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x27aFEd9831209B58Cf24fa241E028dD1e80Fb17D",
"type": "EOA",
"isVerified": true,
"name": "0x27aF…b17D",
"url": "https://etherscan.io/address/0x27aFEd9831209B58Cf24fa241E028dD1e80Fb17D",
"displayName": "EOA 3"
},
{
"address": "eth:0x3e87462D152DFDeD22b6AC5bcde702B20ed70CB6",
"type": "EOA",
"isVerified": true,
"name": "0x3e87…0CB6",
"url": "https://etherscan.io/address/0x3e87462D152DFDeD22b6AC5bcde702B20ed70CB6",
"displayName": "EOA 3"
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with USDC Bridge\n * enable the withdrawal limit ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"addresses": {
"ethereum": [
{
"name": "Paradex",
"isVerified": true,
"address": "eth:0xF338cad020D506e8e3d9B4854986E0EcE6C23640",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x0a64d3D7747549aF6d65C225D56ac8f71e436B93",
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1689851135,
"transactionHash": "0x7862f09db4097dc43ad1972ca9ee11eaf64a1fbfdb21fe6f84ad6b68d4b9fa56",
"implementations": [
"eth:0xA964D693cd45FCBe4303524E0EFe0988cfF5ed08"
]
},
{
"timestamp": 1710346919,
"transactionHash": "0x7292984e71d89bd82d8555a1060cf741e9090f33874c6bc3b87db6d1352784d0",
"implementations": [
"eth:0x6E0aCfDC3cf17A7f99ed34Be56C3DFb93F464e24"
]
},
{
"timestamp": 1725811535,
"transactionHash": "0xe78b11cbf1332af60b8da9b2eaf51ec52cdc5bdc7cc0a89af3c2fbb0936c14d8",
"implementations": [
"eth:0x47103A9b801eB6a63555897d399e4b7c1c8Eb5bC"
]
},
{
"timestamp": 1744056299,
"transactionHash": "0x63d55b2c0cfa3b1866e99b66c6632e5474e177ce0e3b5d5b68ed8b801d76cc53",
"implementations": [
"eth:0x2793010E6711Acd5C46ed17f2183a9d58db71e04"
]
},
{
"timestamp": 1778419811,
"transactionHash": "0x1e964f795063d0e9b55f3f260bcbd3f11b3f3b43df658b9da2b78ce919bd4009",
"implementations": [
"eth:0x9961D34D3baE6914635c882e8FE382e14E0F172A"
]
}
],
"description": "Central rollup contract. Receives (verified) state roots from the Sequencer, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.\n* Roles:\n * **admin**: Paradex Multisig, Paradex Multisig 2\n * **operators**: EOA 1",
"upgradableBy": [
{
"name": "Paradex Multisig",
"delay": "no"
},
{
"name": "Paradex Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF338cad020D506e8e3d9B4854986E0EcE6C23640#code"
},
{
"name": "SHARPVerifierCallProxy",
"isVerified": true,
"address": "eth:0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0x21F9eC47b19d95b5C2DDFB6Ae5D4F92fAdacAEc4"
],
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1635080785,
"transactionHash": "0x80ebb7a22a207d00e26464db2f8a719d43eb3b836740a693aad13d5ef922f5e4",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1651510161,
"transactionHash": "0x604e235c6207b7909f6fc8dc0bd86b410e935dcf2f6f6bd37a5567a89379353a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1659869409,
"transactionHash": "0xc31b74237a0c68aa1b95fe2ed28ad54cf6d7df42a8beab1ea947532c95dda20a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1678106063,
"transactionHash": "0xbaa8ffb1b7e5177dbf75de753b9b2ff2fc313b244ff910cfd6d7f1f6254b6e1a",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1708939523,
"transactionHash": "0x31e3caf3940dde662a1e98580259f79963dc5e098793b6519311e201d4e19312",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722161267,
"transactionHash": "0x7c71592ea4c455371365d843f1a21bbf647aad7d6fae12f7187650ce24805f00",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1722197315,
"transactionHash": "0x4b25445a8e86b4620b9a19f747122b518d8973975ea73aa474b210395e277b66",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1747066175,
"transactionHash": "0x0764cd09cc5c9a96b151dd222bf14b9c33111c80bdddf27721a6406f4c0e1f3f",
"implementations": [
"eth:0xD4C4044ACa68ebBcB81B13cC2699e1Bca2d3F458"
]
},
{
"timestamp": 1760862467,
"transactionHash": "0x7b4a25af246b28b6d5bed86942696273a84e57abc629b83072be370df2bdb797",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1765192091,
"transactionHash": "0xed93cf713d33ac63297d8c7e2eafc0d9f277b718b4074600536eb9a4205bcb81",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1769954759,
"transactionHash": "0x257cfdefacd18f0c221b1e486ee002cb974d14bb292884dfaf7f5aa987cc7170",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
},
{
"timestamp": 1777465247,
"transactionHash": "0xf088946bc461774cf86ce348fcee4d52bb27ebf049d99f3fab806226053b0d5b",
"implementations": [
"eth:0x3597c5CBCbCB30079a0bD2A68cDE5f98272f9feb"
]
}
],
"description": "Upgradable call proxy contract through which the SHARPVerifier can be called. A call proxy does not delegatecall and the storage context remains at the target contract. It allows SHARP Multisig to change the otherwise immutable verifier contract with 8d delay.\n* Roles:\n * **admin**: SHARP Multisig\n * **appGovernor**: SHARP Multisig\n * **governanceAdmin**: SHARP Multisig",
"upgradableBy": [
{
"name": "SHARP Multisig",
"delay": "8d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x47312450B3Ac8b5b8e247a6bB6d523e7605bDb60#code"
},
{
"name": "SHARPVerifier_2026_13",
"isVerified": true,
"address": "eth:0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5C1Ce45534A9c5f7F3E6683Cd79a8ad57EE3a9fe#code"
},
{
"name": "SHARPVerifier",
"isVerified": true,
"address": "eth:0x7Da1225C752ab37E610a242D9D8a0548262E3fF7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Shared Starkware SHARP verifier used collectively by Starknet and other SN stack and StarkEx projects. It receives STARK proofs from the Prover and verifies the integrity of the offchain execution including a correctly computed state root which is part of the Program Output.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7Da1225C752ab37E610a242D9D8a0548262E3fF7#code"
},
{
"name": "StarkgateRegistry",
"isVerified": true,
"address": "eth:0xc50E4DF59aad8Ab494d10d2B66a90C9F0298f280",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0x61D146CfE95Dc5Ba6d9c5d9C83c39C1bff018bD3"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1771091351,
"transactionHash": "0xcf488e7f151fe248bd1c51fd3e8d1ecb40286adccb5527079d40886583cae510",
"implementations": [
"eth:0x61D146CfE95Dc5Ba6d9c5d9C83c39C1bff018bD3"
]
}
],
"description": "A simple registry that maps tokens to their StarkGate escrows. It also keeps a list of tokens that are blocked from being added to StarkGate.\n* Roles:\n * **admin**: Paradex Multisig 2\n * **govAdmin**: EOA 2",
"upgradableBy": [
{
"name": "Paradex Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc50E4DF59aad8Ab494d10d2B66a90C9F0298f280#code"
},
{
"name": "USDC Bridge",
"isVerified": true,
"address": "eth:0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0xDcbD52FFaF81BF0aA5bD38B0c15F60345e8Eec86"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692341231,
"transactionHash": "0x25fbb19a94fb450c7254e45b992272c2d6dd6b24692e34e87052621e4df3cfed",
"implementations": [
"eth:0x6Fd62239f3A441d1898683C5a84ce3681bB42C16"
]
},
{
"timestamp": 1716894071,
"transactionHash": "0x015d716fec0e72b13c6ec480a008653d2402eb0e216c3b1adcb87d13582c6a7a",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1718445143,
"transactionHash": "0x7288e6bd014f04b9aa916599a60854eb8de2106cb95030762a2372751de95922",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1747418723,
"transactionHash": "0x6df9f1b6e2fe53f2ea980ff4908aca6e43dc77e17cfdb869c67e4879c49eabf2",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1771682039,
"transactionHash": "0xb0ea49fedd399a118b3f8a0c6a05b3e73a8235a184e1e5c61f57c601f94b59e7",
"implementations": [
"eth:0xDcbD52FFaF81BF0aA5bD38B0c15F60345e8Eec86"
]
}
],
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 0% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Paradex Multisig 2\n * **govAdmin**: Paradex Multisig 2\n * **manager**: StarkgateManager\n * **secAdmin**: Paradex Multisig 2\n * **secAgent**: EOA 3, Paradex Multisig 2",
"description": "Standard Starkware bridge escrow (single token). Withdrawals can be throttled to 0% of the locked funds per 24 hours.\n* Roles:\n * **admin**: Paradex Multisig 2\n * **govAdmin**: Paradex Multisig 2\n * **manager**: StarkgateManager\n * **secAdmin**: Paradex Multisig 2\n * **secAgent**: EOA 3, EOA 4, Paradex Multisig 2",
"upgradableBy": [
{
"name": "Paradex Multisig 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3#code"
},
{
"name": "CairoBootloaderProgram",
"isVerified": true,
"address": "eth:0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24105e6697AdD9B4B1BDE04079a91BDFCCa24A47#code"
},
{
"name": "MemoryPageFactRegistry",
"isVerified": true,
"address": "eth:0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Auxiliary to the SHARPVerifier contract: Verified 'memory fact pages' get stored here. This is important as it registers all necessary onchain data produced by the verifier.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe583BcDE0160b637330b27a3ea1F3c02ba2eC460#code"
}
]
},
"escrows": [
{
"address": "0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"sinceTimestamp": 1692341159,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3",
"upgradeability": {
"proxyType": "StarkWare proxy",
"admins": [
"eth:0xFF57A3bB6465501c993acF8f3b29125a862661C0"
],
"implementations": [
"eth:0xDcbD52FFaF81BF0aA5bD38B0c15F60345e8Eec86"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1692341231,
"transactionHash": "0x25fbb19a94fb450c7254e45b992272c2d6dd6b24692e34e87052621e4df3cfed",
"implementations": [
"eth:0x6Fd62239f3A441d1898683C5a84ce3681bB42C16"
]
},
{
"timestamp": 1716894071,
"transactionHash": "0x015d716fec0e72b13c6ec480a008653d2402eb0e216c3b1adcb87d13582c6a7a",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1718445143,
"transactionHash": "0x7288e6bd014f04b9aa916599a60854eb8de2106cb95030762a2372751de95922",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1747418723,
"transactionHash": "0x6df9f1b6e2fe53f2ea980ff4908aca6e43dc77e17cfdb869c67e4879c49eabf2",
"implementations": [
"eth:0x8A4e51ff0F2a45899519e6049FB2D1F038Be1e77"
]
},
{
"timestamp": 1771682039,
"transactionHash": "0xb0ea49fedd399a118b3f8a0c6a05b3e73a8235a184e1e5c61f57c601f94b59e7",
"implementations": [
"eth:0xDcbD52FFaF81BF0aA5bD38B0c15F60345e8Eec86"
]
}
],
"description": "Paradex USDC Escrow. The current bridge cap is 500 M USDC.",
"upgradableBy": [
{
"name": "USDC Escrow owner",
"delay": "0s"
}
],
"url": "https://etherscan.io/address/0xE3cbE3A636AB6A754e9e41B12b09d09Ce9E53Db3#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Starknet OS",
"proverSystemProject": "stwo",
"description": "Proves correct state transition for a range of consecutive Starknet transactions.",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/os.cairo#L69",
"verificationStatus": "successful",
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout c294a8ba263834d45cf525217d8700f5de24a260`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"os\"` value of this file will be equivalent to dec value of the hash.",
"hash": "2733003247060056328192560178934419513655729851806095615814023997114795707702"
},
{
"title": "Aggregation program for SHARP prover",
"description": "Aggregates proofs of correct execution for several consecutive transaction ranges generated by StarkNet OS.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/sequencer/blob/c294a8ba263834d45cf525217d8700f5de24a260/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/aggregator/main.cairo#L15",
"verificationStatus": "successful",
"verificationSteps": "1. Install python and pip.\n2. Install rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`.\n3. Checkout the correct version of [https://github.com/starkware-libs/sequencer/tree/main](https://github.com/starkware-libs/sequencer/tree/main): `git checkout c294a8ba263834d45cf525217d8700f5de24a260`.\n4. Install required python dependencies: `python3 -m venv sequencer_venv`, then `. sequencer_venv/bin/activate && pip install -r scripts/requirements.txt`.\n5. Run `UPDATE_EXPECT=1 cargo test -p apollo_starknet_os_program test_program_hashes` to regenerate program hashes in `crates/apollo_starknet_os_program/src/program_hash.json`. The `\"aggregator_with_prefix\"` value of this file will be equivalent to dec value of the hash.",
"hash": "2571508110958925737463010241874806654058743535666147712534445437599630018294"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3442855748187296636739564186904728563385971901122957091055928358173521721079"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/1c5dace6fbd1dc9d1ae2eb878dc1dd85f23512ab/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "2358844945297786488640123814540854423585455959362109345448922524567546993330"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2025_12",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/56407b69f3f19f69302a8623baa8c5f71f967eed/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 56407b69f3f19f69302a8623baa8c5f71f967eed\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "37889379279861089970868356983774360253508326951064758033885675883862334778"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2026_13",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/56407b69f3f19f69302a8623baa8c5f71f967eed/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 56407b69f3f19f69302a8623baa8c5f71f967eed\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "989994135429182905628199499137734285064642484443466268071170571058909750176"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2025_12",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/020f846ee43d0a85f082dcfcc001f39446977272/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 020f846ee43d0a85f082dcfcc001f39446977272\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3480185788024326007166778030599498673382667448173974782477620863541158415714"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2025_11",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/57317a743004a608ce1aab0211c40d50083f0a65/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 57317a743004a608ce1aab0211c40d50083f0a65\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3035974089339935040143966034750116008615662951603253398063766337728525196711"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2025_11",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/57317a743004a608ce1aab0211c40d50083f0a65/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout 57317a743004a608ce1aab0211c40d50083f0a65\n```\n\n4. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/56407b69f3f19f69302a8623baa8c5f71f967eed/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n5. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "3585039955034622347908243360088523999417661979601115750324841620224559981237"
},
{
"title": "Simple bootloader Cairo program StarkWare_GpsStatementVerifier_2024_10",
"description": "Cairo program that can sequentially run multiple programs to reduce the size of the public inputs, and recursively verify bootloader proofs.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/v0.13.5/src/starkware/cairo/bootloaders/simple_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout v0.13.5\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/v0.13.5/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/v0.13.5/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "160268921359133235574810995023520895391777547407923205700393332203861498631"
},
{
"title": "Applicative bootloader Cairo program StarkWare_GpsStatementVerifier_2024_10",
"description": "Cairo program that verifies the correct aggregation of several proofs of a base program.",
"proverSystemProject": "stwo",
"programUrl": "https://github.com/starkware-libs/cairo-lang/tree/v0.13.5/src/starkware/cairo/bootloaders/applicative_bootloader",
"verificationStatus": "successful",
"verificationSteps": "The steps below are supposed to be run on linux OS. They could also be run on macOS, but several tweaks need to be made: update from `lru-dict==1.1.8` to `lru-dict==1.3.0` in `scripts/requirements.txt` and update `python_interpreter` in `bazel_utils/python/stub.sh` to the correct location.\n\n1. Install [bazel](https://bazel.build) version 7.4.1 and `gmp` library using [brew](https://brew.sh):\n```\nbrew install bazelisk\nUSE_BAZEL_VERSION=7.4.1 bazelisk version\nbrew install gmp # or sudo apt-get install libgmp-dev\n```\n\n2. On linux, install JDK if you don't have it: `sudo apt install openjdk-21-jre`.\n\n3. Check out the correct commit of repo:\n```\ngit clone https://github.com/starkware-libs/cairo-lang.git\ncd cairo-lang\ngit checkout v0.13.5\n```\n\n4. Update `cairo-lang/src/starkware/cairo/bootloaders/BUILD` file by appending [this snippet](/files/starkware_proghash_artifacts/v0.13.5/BUILD_ADDITION) at the end.\n5. Copy [this hash_bootloaders.py script](/files/starkware_proghash_artifacts/v0.13.5/hash_bootloaders.py) that computes bootloader hashes into `cairo-lang/src/starkware/cairo/bootloaders/`.\n6. Execute the script above by `USE_BAZEL_VERSION=7.4.1 bazel run //src/starkware/cairo/bootloaders:cairo_hash_bootloaders_exe`. The output of the script should contain the correct hash.",
"hash": "1104316318711847786071125527957082259001554753246760931396914052122269757907"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x13e120F6c8E747983F7aaF0f7731796bfcb0D934"
]
}
+1 -1
{
"baseTimestamp": 1780586770,
"baseTimestamp": 1781603222,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+29 -5
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x8499B48896660D549b3A55e6c68a3169B5f9B382",
"type": "EOA",
"isVerified": true,
"name": "0x8499…B382",
"url": "https://etherscan.io/address/0x8499B48896660D549b3A55e6c68a3169B5f9B382",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address \n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471",
"type": "EOA",
"isVerified": true,
"name": "0x34Da…f471",
"url": "https://etherscan.io/address/0x34DaDcB5010ffB1E355B92AD53bbEbECe98af471",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+25 -1
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B9671dB83CfcB4508bF361942488C5cA2b1286D#code"
},
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0xb1714954bBc0162A36FB44934F3216aCE81C40d7",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1740743363,
"transactionHash": "0x351a86bec0a58f513f88024a6a845b25bce736ed78da4ef1c7cda90a717dd61e",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1777640915,
"transactionHash": "0x5ec0f7293eb1ef1149a55aea2a4845d0b905fd808ffa05cd7f949c7ff2ed86e2",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the Pentagon Games Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 1\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb1714954bBc0162A36FB44934F3216aCE81C40d7#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 3, EOA 4\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"PC"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+7 -7
+2 -2
{
"self": {
"stateValidation": {
"value": "None",
"description": "Currently the system permits invalid state roots. More details in project overview.",
"sentiment": "bad",
"orderHint": null
},
"dataAvailability": {
"value": "PoS network",
"description": "Data is guaranteed to be available by an external proof of stake network of validators. On Ethereum, DA is attested via signed block headers.",
"sentiment": "warning"
},
"exitWindow": {
"value": "None",
"description": "There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": 0
},
"sequencerFailure": {
"value": "Decentralized Sequencer Set",
"sentiment": "warning",
"description": "Although there is a sequencer set of 105 (called validators), if the cap of 105 is reached, no new stakers can join. A minimum of 100,000 POL stake is required to obtain block production rights. There is no specific censorship resistance mechanism against selective censorship by parts of the active validator set nor a way to force transactions from Ethereum L1. The canonical bridge between Polygon PoS and Ethereum allows for queuing transactions from the Ethereum and Polygon PoS sides, which cannot be skipped, except for halting the queue entirely."
"description": "Although there is a sequencer set of 102 (called validators), if the cap of 105 is reached, no new stakers can join. A minimum of 100,000 POL stake is required to obtain block production rights. There is no specific censorship resistance mechanism against selective censorship by parts of the active validator set nor a way to force transactions from Ethereum L1. The canonical bridge between Polygon PoS and Ethereum allows for queuing transactions from the Ethereum and Polygon PoS sides, which cannot be skipped, except for halting the queue entirely."
},
"proposerFailure": {
"value": "Cannot withdraw",
"description": "The PoS network is composed of 105 validators. Blocks are included in the chain only if signed by 2/3+1 of the network stake. It's currently not possible to join the set if the validator cap is reached. The current validator cap is set to 105. In the event of a failure in reaching consensus, withdrawals are frozen.",
"description": "The PoS network is composed of 102 validators. Blocks are included in the chain only if signed by 2/3+1 of the network stake. It's currently not possible to join the set if the validator cap is reached. The current validator cap is set to 105. In the event of a failure in reaching consensus, withdrawals are frozen.",
"sentiment": "warning"
}
}
}
+1 -1
[
{
"layer": {
"value": "Polygon PoS DA",
"sentiment": "warning",
"description": "The data is guaranteed to be available by Polygon proof of stake validators. On Ethereum, the data is indirectly referenced in the signed block header."
},
"bridge": {
"value": "105 validators",
"value": "102 validators",
"sentiment": "warning",
"description": "The bridge verifies that at least 2/3+1 of the Polygon PoS stake has signed off on the checkpoint. The StakeManager contract is the source of truth for the current validator set."
},
"mode": {
"value": "Transaction data"
}
}
]
+3 -3
{
"otherConsiderations": [
{
"name": "Destination tokens are upgradeable",
"description": "Tokens transferred end up as wrapped ERC20 proxies, some of them are upgradable. The contract is named UChildERC20Proxy.",
"references": [],
"risks": [
{
"category": "Funds can be stolen if",
"text": "destination token contract is maliciously upgraded."
}
],
"isIncomplete": true
}
],
"sequencing": {
"name": "Transactions are ordered by Polygon PoS validators",
"description": "Polygon PoS is operated by a closed proof-of-stake validator set with 105 active validators. Block production rights are given to validators randomly (stake-weighted) for the duration of a *span*. In practice, validators delegate the block production further to centralised validator-elected block producers (VeBloPs). Ethereum smart contracts accept checkpoints signed by more than two thirds of Polygon PoS validator stake.",
"description": "Polygon PoS is operated by a closed proof-of-stake validator set with 102 active validators. Block production rights are given to validators randomly (stake-weighted) for the duration of a *span*. In practice, validators delegate the block production further to centralised validator-elected block producers (VeBloPs). Ethereum smart contracts accept checkpoints signed by more than two thirds of Polygon PoS validator stake.",
"sequencerSetSpec": {
"slotTime": {
"value": "2s"
},
"epochTime": {
"value": "3h 33m",
"description": "Randomly sampled validators delegate block production for the duration of a span: 6400 blocks"
},
"sequencerCount": {
"value": "105 validators"
"value": "102 validators"
},
"blockProductionAccess": {
"value": "Closed and capped",
"sentiment": "bad",
"description": "The current validator cap is 105. Joining the set is permissioned (Multisig)."
},
"stakePerValidator": {
"value": "100,000 POL minimum, variable",
"description": "stake-weighted block production rights, no maximum"
},
"rateLimit": {
"value": "No (permissioned)"
},
"deterministicCrGadget": {
"value": "No",
"sentiment": "warning"
},
"additionalCrGadgets": {
"value": "No",
"sentiment": "bad"
}
},
"inclusionDelayChart": {
"type": "spanlike",
"validatorCount": 105,
"validatorCount": 102,
"spanBlocks": 6400,
"blockSeconds": 2,
"target": 0.99,
"maxCensorFraction": 0.33,
"stakeDistribution": {
"stakeToken": "POL",
"totalStake": 3606070002,
"entities": [
{
"name": "Upbit Staking",
"stake": 408044403
},
{
"name": "Coinbase",
"stake": 351875004
},
{
"name": "Luganodes",
"stake": 305004763
},
{
"name": "Binance Node",
"stake": 251922326
},
{
"name": "Figment",
"stake": 225231066
},
{
"name": "Matic Power",
"stake": 207784342
},
{
"name": "Anonymous 194",
"stake": 183259002
},
{
"name": "Blockdaemon",
"stake": 176532472
},
{
"name": "Kraken",
"stake": 152345919
},
{
"name": "Kiln x Ownest 🔸 Pro Staking 🔸",
"stake": 130976081
}
]
}
},
"inclusionDelayChartDescription": "The chart models live-chain selective censorship only. Since proposing is stake-weighted, the x-axis represents the censoring POL stake, and does not cover validator-set changes, or blanket-censorship resistance gadgets.",
"censorshipResistance": "The validator set (on Polygon PoS, validators are both proposers and sequencers) is closed and capped, but includes a diverse set of known entities who share block production rights. There are no specific censorship resistance gadgets built into the protocol.\n### Selective censorship\nAs long as the Polygon PoS blockchain is producing blocks, users can expect to include their transactions due to the rotating, diverse block producers, even if they are censored by some of them. Unfortunately, the rotation is very slow (see *span* time) and even just a few entities censoring can cause long inclusion delays.\n### Blanket censorship\nValidators holding more than 1/3 of Polygon PoS stake among them can censor users if they actively refuse to attest to blocks with their transactions. Polygon Multisig controls the core smart contracts on Ethereum and can administer the validator set (including malicious changes) as a consequence.\n### Walkaway\nIf validators holding more than 1/3 of the stake on Polygon PoS stop block production, the chain stops and there is no way for users to include any transactions. As the validator set is currently closed by a permissioned smart contract setting on ethereum, walkaway of the permissioned actor would require social coordination and a hard fork to progress the chain.",
"references": [
{
"title": "Polygon PoS architecture documentation",
"url": "https://docs.polygon.technology/pos/architecture/"
}
],
"risks": [
{
"category": "Users can be censored if",
"text": "the active span proposer censors them, or if at least one third of Polygon PoS stake refuses to attest blocks that include their transactions."
}
]
},
"stateValidation": {
"categories": [
{
"title": "No state validation",
"description": "State updates are settled on Ethereum if signed by at least 2/3+1 of the Polygon PoS validators stake. Contracts on Ethereum do not check whether the state transitions are valid.",
"references": [],
"risks": [
{
"category": "Users can be censored if",
"text": "validators on Polygon decide to not mint tokens after observing an event on Ethereum."
},
{
"category": "Funds can be stolen if",
"text": "validators decide to mint more tokens than there are locked on Ethereum thus preventing some existing holders from being able to bring their funds back to Ethereum."
},
{
"category": "Funds can be stolen if",
"text": "validators submit a fraudulent checkpoint allowing themselves to withdraw all locked funds."
}
]
}
]
}
}
+1 -1
{
"baseTimestamp": 1780406469,
"baseTimestamp": 1781604054,
"contractsDiscoDriven": false,
"hasDiscoUi": true,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+31 -6
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Polygon zkEVM Multisig",
"name": "Polygon zkEVM Multisig",
"description": "A Multisig with 5/10 threshold. \n* Can upgrade **with no delay**\n * daiBridge \n * usdcBridge \n * wstETHBridge ",
"accounts": [
{
"address": "eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904",
"type": "Contract",
"isVerified": true,
"name": "0xf694…E904",
"url": "https://etherscan.io/address/0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x099198353446A9E3a20672eDC1Bd461E978842c3",
"type": "EOA",
"isVerified": true,
"name": "0x0991…42c3",
"url": "https://etherscan.io/address/0x099198353446A9E3a20672eDC1Bd461E978842c3"
},
{
"address": "eth:0xb771380f912E4b5F6beDdf81314C383c13F16ab5",
"type": "EOA",
"isVerified": true,
"name": "0xb771…6ab5",
"url": "https://etherscan.io/address/0xb771380f912E4b5F6beDdf81314C383c13F16ab5"
},
{
"address": "eth:0xD09971D8ed6C6a5e57581e90d593ee5B94e348D4",
"type": "EOA",
"isVerified": true,
"name": "0xD099…48D4",
"url": "https://etherscan.io/address/0xD09971D8ed6C6a5e57581e90d593ee5B94e348D4"
},
{
"address": "eth:0xc4591c41e01a7a654B5427f39Bbd1dEe5bD45D1D",
"type": "EOA",
"isVerified": true,
"name": "0xc459…5D1D",
"url": "https://etherscan.io/address/0xc4591c41e01a7a654B5427f39Bbd1dEe5bD45D1D"
},
{
"address": "eth:0xE6Ee0F8D81170160d50ed77b9C91E6219473d43a",
"type": "EOA",
"isVerified": true,
"name": "0xE6Ee…d43a",
"url": "https://etherscan.io/address/0xE6Ee0F8D81170160d50ed77b9C91E6219473d43a"
},
{
"address": "eth:0xd1B856ee12Bd00922cae8DD86ab068f8c0F95224",
"type": "EOA",
"isVerified": true,
"name": "0xd1B8…5224",
"url": "https://etherscan.io/address/0xd1B856ee12Bd00922cae8DD86ab068f8c0F95224"
},
{
"address": "eth:0xF53D1fB2EeD22Cf1E8f7E90Da7f1CAe88344065F",
"type": "EOA",
"isVerified": true,
"name": "0xF53D…065F",
"url": "https://etherscan.io/address/0xF53D1fB2EeD22Cf1E8f7E90Da7f1CAe88344065F"
},
{
"address": "eth:0xf56AE6520776934127AB68438d1b4652BCe07F8f",
"type": "EOA",
"isVerified": true,
"name": "0xf56A…7F8f",
"url": "https://etherscan.io/address/0xf56AE6520776934127AB68438d1b4652BCe07F8f"
},
{
"address": "eth:0x4DE44Aa0Ef9DB64DF3eB3465d35D73d0409d44ed",
"type": "EOA",
"isVerified": true,
"name": "0x4DE4…44ed",
"url": "https://etherscan.io/address/0x4DE44Aa0Ef9DB64DF3eB3465d35D73d0409d44ed"
},
{
"address": "eth:0x4E83124eD15b13265240B61EC9627797CCE1032E",
"type": "EOA",
"isVerified": true,
"name": "0x4E83…032E",
"url": "https://etherscan.io/address/0x4E83124eD15b13265240B61EC9627797CCE1032E"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xD6f0FEEaAB8EAc205b182D51AE05B588a132Be5A",
"type": "EOA",
"isVerified": true,
"name": "0xD6f0…Be5A",
"url": "https://etherscan.io/address/0xD6f0FEEaAB8EAc205b182D51AE05B588a132Be5A",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-2-and-EOA-3",
"name": "EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 2"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x519E42c24163192Dca44CD3fBDCEBF6be9130987",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1706364971,
"transactionHash": "0x4e3fc80071c2d0852584cb59bfcd784519bfb3582aa3334098a4b32b5f6aaef4",
"implementations": [
"eth:0x79BCB82B35A335cD8A8Ec433b304a0c91f67CDE0"
]
},
{
"timestamp": 1710419135,
"transactionHash": "0xeba0bc3b2674c961c5a998f22f789ea610a7c3e57e622a4dd951cca2702b8be3",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1711323407,
"transactionHash": "0x67e892c44b9d14709693e74dd5e17fb40d98c8c2cc1c5330265e758e8958a01b",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1727792579,
"transactionHash": "0x069690e412d29d96bc94d6bf5c816e43bb401cbf948f3e3cad261e073e2d2afe",
"implementations": [
"eth:0x2650a9a4fC64f63F573EF0F405064EF54BC46f71"
]
},
{
"timestamp": 1736943371,
"transactionHash": "0x9328cfd3d2833dca2d0ea16fbb34f8fc096c26ca8334476c5bf7107f32436029",
"implementations": [
"eth:0x7253F329302b1b5E774Ac641EA3743E9E3244f2E"
]
},
{
"timestamp": 1764753203,
"transactionHash": "0xd8eb9f7bf7594d047e0c8b254b3893eb05daf692b1688adaacd21af144efe2a5",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the polygon zkEVM Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **aggchainSigners**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x519E42c24163192Dca44CD3fBDCEBF6be9130987#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 2, EOA 3\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "daiBridge",
"isVerified": true,
"address": "eth:0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1695199499,
"transactionHash": "0x2c7c12aeaf738701352017fc49f5268db9632b84bdc6f76474e6776371f53b7e",
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
}
],
"description": "Custom Bridge escrow for DAI bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98#code"
},
{
"name": "usdcBridge",
"isVerified": true,
"address": "eth:0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700125979,
"transactionHash": "0x6402dc60bb9c4f704f126f4b11e40b33c287b4ac7f73ea60c50d7452d52ce735",
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
}
],
"description": "Custom Bridge escrow for USDC bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB#code"
},
{
"name": "wstETHBridge",
"isVerified": true,
"address": "eth:0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1703945135,
"transactionHash": "0x12c54f4243dc8e3b41be87984b78248eecbf98b92e30ff10b487be2599d7e3a1",
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
}
],
"description": "Custom Bridge escrow for wstETH bridged to PolygonZkEVM allowing for a custom L2 tokens contract.\n* Roles:\n * **admin**: Polygon zkEVM Multisig",
"upgradableBy": [
{
"name": "Polygon zkEVM Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "200000000000000000000000000"
},
"chainId": 1
},
{
"address": "0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"sinceTimestamp": 1700125979,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1700125979,
"transactionHash": "0x6402dc60bb9c4f704f126f4b11e40b33c287b4ac7f73ea60c50d7452d52ce735",
"implementations": [
"eth:0xA4e6762eAAf259DA74696F46fAAF79bA9DdE14E6"
]
}
],
"description": "Custom Bridge escrow for USDC bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0x70E70e58ed7B1Cec0D8ef7464072ED8A52d755eB#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"sinceTimestamp": 1703945135,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1703945135,
"transactionHash": "0x12c54f4243dc8e3b41be87984b78248eecbf98b92e30ff10b487be2599d7e3a1",
"implementations": [
"eth:0x18FED1E19dC564DC917D203be9d40790472D22e9"
]
}
],
"description": "Custom Bridge escrow for wstETH bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0xf0CDE1E7F0FAD79771cd526b1Eb0A12F69582C01#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"sinceTimestamp": 1695199499,
"tokens": [
"DAI",
"sDAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xf694C9e3a34f5Fa48b6f3a0Ff186C1c6c4FcE904"
],
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1695199499,
"transactionHash": "0x2c7c12aeaf738701352017fc49f5268db9632b84bdc6f76474e6776371f53b7e",
"implementations": [
"eth:0xF684f2CB299cCDaAB483ffc1573B82f40C6b775b"
]
}
],
"description": "Custom Bridge escrow for DAI bridged to PolygonZkEVM allowing for a custom L2 tokens contract.",
"url": "https://etherscan.io/address/0x4A27aC91c5cD3768F140ECabDe3FC2B2d92eDb98#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7",
"type": "EOA",
"isVerified": true,
"name": "0xef5D…dBF7",
"url": "https://etherscan.io/address/0xef5D7af5dbBeE845860E75cE8f8e8fE7F6e8dBF7",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]\n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments \n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x121EA966b6AA6A361CD4c0b01cb39C6dc65e1b71",
"type": "EOA",
"isVerified": true,
"name": "0x121E…1b71",
"url": "https://etherscan.io/address/0x121EA966b6AA6A361CD4c0b01cb39C6dc65e1b71",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D",
"type": "EOA",
"isVerified": true,
"name": "0x47ed…d60D",
"url": "https://etherscan.io/address/0x47ed9538faA1522be7abD8a8BCAEc8d9C04Ed60D",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1"
],
"implementations": [
"eth:0xa2F7e6Dfd6f43976ee1E2e8A122984ECa8e38608"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1724259359,
"transactionHash": "0xee62b099c28e601917f60c0abff8441d48a2e7aee41711ff89a9ae0cc2fc647c",
"implementations": [
"eth:0xa2F7e6Dfd6f43976ee1E2e8A122984ECa8e38608"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 3/2).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x24e09Ef4F69B6058E047EE5E709B345F3cA47F3A#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1724183531,
"transactionHash": "0xc47c5c6b0ea1740437487c101b78895a761501a35bfa97a77d79e803151ccf41",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1745932175,
"transactionHash": "0xdadc987a1a0f2da5a24bcf9c6958c3e4bbe015686cfd2f954ba4f3ee4884dc07",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
}
],
"description": "The main system contract defining the silicon-zk Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 2\n * **trustedSequencer**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x419dcD0f72ebAFd3524b65a97ac96699C7fBebdB#code"
},
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B9671dB83CfcB4508bF361942488C5cA2b1286D#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 4, EOA 5\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x3F74698A4ADb075c0501DF739745ACA55Ae543a1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3F74698A4ADb075c0501DF739745ACA55Ae543a1#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+8 -8
+7 -7
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayArb\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "arb1:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://arbiscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://arbiscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "arb1:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://arbiscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "arb1:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://arbiscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"base": {
"roles": [],
"actors": [
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGatewayBase\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "base:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://basescan.org/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "base",
"references": [],
"participants": [
{
"address": "base:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://basescan.org/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "base:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://basescan.org/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "base:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://basescan.org/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 1",
"name": "Avail Multisig 1",
"description": "A Multisig with 4/7 threshold. \n* Can upgrade **with no delay**\n * Vector \n* Can upgrade **with 1d delay**\n * AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin]\n* Can interact with Vector\n * can freeze the Vector contract and update the list of authorized relayers \n* Can interact with AvailBridgeV1\n * manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay]\n* Can interact with TimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly]\n * propose transactions ",
"accounts": [
{
"address": "eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666",
"type": "Contract",
"isVerified": true,
"name": "0x7F2f…3666",
"url": "https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70a4F624A4E62C539abf0002634377b646612b1C",
"type": "EOA",
"isVerified": true,
"name": "0x70a4…2b1C",
"url": "https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
},
{
"address": "eth:0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2",
"type": "EOA",
"isVerified": true,
"name": "0xBe1D…78A2",
"url": "https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2"
},
{
"address": "eth:0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d",
"type": "EOA",
"isVerified": true,
"name": "0x4983…cE4d",
"url": "https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "SophonTransactionFilterer",
"name": "SophonTransactionFilterer",
"accounts": [
{
"address": "eth:0x9D06B34adc3026eF876e4DABb859C424DbDA3063",
"type": "Contract",
"isVerified": true,
"name": "0x9D06…3063",
"url": "https://etherscan.io/address/0x9D06B34adc3026eF876e4DABb859C424DbDA3063"
}
],
"chain": "ethereum",
"description": "A contract implementing the ITransactionFilterer interface, able to whitelist transactions based on sender- OR contractL2 (target) addresses. The whitelist is defined in AccessControl roles.\n* Can interact with Diamond\n * define addresses that can send transactions from L1 to L2 (e.g. for deposits, withdrawals, queued transactions). This is enforced in the Mailbox Facet ",
"discoveryDrivenData": true
},
{
"id": "SophonChainAdminMultisig",
"name": "SophonChainAdminMultisig",
"description": "A Multisig with 3/6 threshold. \n* Can interact with Diamond\n * administrate operator roles for this chain in the ValidatorTimelock, manage fees, apply predefined upgrades, manage censorship through a TransactionFilterer, set DA mode, migrate the chain to whitelisted settlement layers (Chain Admin role) [via: SophonZkEvmAdmin]\n* Can interact with SophonTransactionFilterer\n * manage the whitelist ",
"accounts": [
{
"address": "eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1",
"type": "Contract",
"isVerified": true,
"name": "0xe464…52d1",
"url": "https://etherscan.io/address/0xe4644b6d106A18062344c0A853666bc0B8f052d1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xF6877208302D9715A576D4Bff96f6576B5A1dFbA",
"type": "EOA",
"isVerified": true,
"name": "0xF687…dFbA",
"url": "https://etherscan.io/address/0xF6877208302D9715A576D4Bff96f6576B5A1dFbA"
},
{
"address": "eth:0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336",
"type": "EOA",
"isVerified": true,
"name": "0x4BBB…c336",
"url": "https://etherscan.io/address/0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336"
},
{
"address": "eth:0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97",
"type": "EOA",
"isVerified": true,
"name": "0x2Ea9…6D97",
"url": "https://etherscan.io/address/0x2Ea9CcB15Ceb6c228786a3d4837B0bA3e9736D97"
},
{
"address": "eth:0x3b6036d410cA018661324766680674921a8b2d89",
"type": "EOA",
"isVerified": true,
"name": "0x3b60…2d89",
"url": "https://etherscan.io/address/0x3b6036d410cA018661324766680674921a8b2d89"
},
{
"address": "eth:0x20719Abd2E63518e68D30a295388cAd6B542dCEf",
"type": "EOA",
"isVerified": true,
"name": "0x2071…dCEf",
"url": "https://etherscan.io/address/0x20719Abd2E63518e68D30a295388cAd6B542dCEf"
},
{
"address": "eth:0x14574dfC6B7aF658c5033BA95673864947956521",
"type": "EOA",
"isVerified": true,
"name": "0x1457…6521",
"url": "https://etherscan.io/address/0x14574dfC6B7aF658c5033BA95673864947956521"
},
{
"address": "eth:0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69",
"type": "EOA",
"isVerified": true,
"name": "0xd89b…1F69",
"url": "https://etherscan.io/address/0xd89b0f620E0C72BD82e0447dE07FB0A0Abe01F69"
}
],
"discoveryDrivenData": true
},
{
"id": "Avail Multisig 2",
"name": "Avail Multisig 2",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AvailBridgeV1\n * pause the bridge ",
"accounts": [
{
"address": "eth:0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930",
"type": "Contract",
"isVerified": true,
"name": "0x1a5B…8930",
"url": "https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE458b870F2F59a49915591282f1Bb688901767AD",
"type": "EOA",
"isVerified": true,
"name": "0xE458…67AD",
"url": "https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD"
},
{
"address": "eth:0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A",
"type": "EOA",
"isVerified": true,
"name": "0x340e…8E4A",
"url": "https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A"
},
{
"address": "eth:0xAD379D3275a18bd4BB741C3b291a3778D51c3304",
"type": "EOA",
"isVerified": true,
"name": "0xAD37…3304",
"url": "https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5",
"type": "EOA",
"isVerified": true,
"name": "0x1fbA…85f5",
"url": "https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "SP1VerifierGatewayMultisig",
"name": "SP1VerifierGatewayMultisig",
"description": "A Multisig with 2/3 threshold. \n* Can interact with SP1VerifierGateway\n * affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes ",
"accounts": [
{
"address": "eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878",
"type": "Contract",
"isVerified": true,
"name": "0xCafE…6878",
"url": "https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126",
"type": "EOA",
"isVerified": true,
"name": "0xBaB2…1126",
"url": "https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126"
},
{
"address": "eth:0x72Ff26D9517324eEFA89A48B75c5df41132c4f54",
"type": "EOA",
"isVerified": true,
"name": "0x72Ff…4f54",
"url": "https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54"
},
{
"address": "eth:0x9395e83720bf2D8ac6435f9c520b48E289Cb8885",
"type": "EOA",
"isVerified": true,
"name": "0x9395…8885",
"url": "https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x78325837C780788Ce6afF7883FdF68890010Fe30",
"type": "EOA",
"isVerified": true,
"name": "0x7832…Fe30",
"url": "https://etherscan.io/address/0x78325837C780788Ce6afF7883FdF68890010Fe30",
"displayName": "EOA 1"
},
{
"address": "eth:0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA",
"type": "EOA",
"isVerified": true,
"name": "0xCD0b…55dA",
"url": "https://etherscan.io/address/0xCD0b5A01Abe9C14f6EFbC610C02ECf0FB69855dA",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xe14828E4405239dD331F194F1B7883eeD73bCBF3",
"type": "EOA",
"isVerified": true,
"name": "0xe148…CBF3",
"url": "https://etherscan.io/address/0xe14828E4405239dD331F194F1B7883eeD73bCBF3",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonZkEvmAdmin\n * set the conversion factor for gas token deposits ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x50B238788747B26c408681283D148659F9da7Cf9",
"type": "EOA",
"isVerified": true,
"name": "0x50B2…7Cf9",
"url": "https://etherscan.io/address/0x50B238788747B26c408681283D148659F9da7Cf9",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) \n * manage the whitelist ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with Vector\n * it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1780913579,
"baseTimestamp": 1781602990,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+52 -0
+52 -0
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "fluent",
"sinceTimestamp": 1776599267
},
{
"projectId": "forknet",
"sinceTimestamp": 1781600877
},
{
"projectId": "katana",
"sinceTimestamp": 1781600877
},
{
"projectId": "lumia",
"sinceTimestamp": 1781600877
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1781600877
},
{
"projectId": "xlayer",
"sinceTimestamp": 1781600877
},
{
"projectId": "silicon",
"sinceTimestamp": 1781600877
},
{
"projectId": "ternoa",
"sinceTimestamp": 1781600877
},
{
"projectId": "wirex",
"sinceTimestamp": 1781600877
},
{
"projectId": "penchain",
"sinceTimestamp": 1781600877
},
{
"projectId": "haust",
"sinceTimestamp": 1781600877
},
{
"projectId": "celo",
"sinceTimestamp": 1771445567
},
{
"projectId": "vector",
"sinceTimestamp": 1771445567
},
{
"projectId": "sophon",
"sinceTimestamp": 1771445567
},
{
"projectId": "lens",
"sinceTimestamp": 1771445567
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1771445567,
"untilTimestamp": 1763420400
},
{
"projectId": "rari",
"sinceTimestamp": 1771445567
},
{
"projectId": "blobstream",
"sinceTimestamp": 1771445567
},
{
"projectId": "molten",
"sinceTimestamp": 1771445567
},
{
"projectId": "winr",
"sinceTimestamp": 1771445567
},
{
"projectId": "phala",
"sinceTimestamp": 1771445567
},
{
"projectId": "kroma",
"sinceTimestamp": 1771445567
},
{
"projectId": "taiko",
"sinceTimestamp": 1774964687
},
{
"projectId": "mantle",
"sinceTimestamp": 1778001356
},
{
"projectId": "morph",
"sinceTimestamp": 1779354407
},
{
"projectId": "base",
"sinceTimestamp": 1779825599
},
{
"projectId": "appchain",
"sinceTimestamp": 1780326419
},
{
"projectId": "apechain",
"sinceTimestamp": 1780346337
},
{
"projectId": "gpt",
"sinceTimestamp": 1781600877
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1781600877
},
{
"projectId": "witness",
"sinceTimestamp": 1781600877
}
],
"proofSystemInfo": "## Description\n\nSP1 Hypercube is the latest Succint's RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 Hypercube provides 98 bits of proven security, as per [Ethereum Foundation’s soundcalc evaluation](https://github.com/ethereum/soundcalc/blob/main/reports/sp1.md).\n\n## Proof system\n\nSP1 Hypercube is an iteration of the previous zkVM version, SP1 Turbo, introducing architectural changes that improve prover performance and memory efficiency.\n\nHypercube proves execution of a 64-bit RISC-V VM using several ZK circuits, or chips, connected by lookup arguments ([LogUp based on GKR protocol](https://docs.succinct.xyz/docs/sp1/hypercube/logupgkr)). VM execution trace is split into several shards of size approximately 2^22, that could be proven in parallel with a STARK proving system. Additional arguments prove memory consistency across shards. \n\nThe parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n### Hypercube vs. Turbo\n\nProving time and memory optimizations of SP1 Hypercube are based on several design improvements compared to SP1 Turbo.\n\nHypercube implements a [multilinear polynomial](https://github.com/succinctlabs/sp1/tree/v6.0.0/slop/crates/multilinear) STARK compared to univariate polynomials in Turbo. Multilinear polynomial based proving systems are more efficient than univariate because manipulating them reduces usage of log-linear FFT algorithm.\n\nMultilinear polynomials also allow Hypercube to innovate on a polynomial commitment scheme, implementing [Jagged PCS](https://docs.succinct.xyz/docs/sp1/hypercube/jagged) (defined in [this preprint](https://eprint.iacr.org/2025/917)). Jagged PCS allows efficient packing of computation traces of zkVM chips with different lengths, optimizing the prover memory requirement. More efficient LogUp based on GKR is also made possible because of multilinear polynomials.\n\n### Recursion circuits\n\nSP1 Hypercube provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\nFirst, proofs for correctness of separate shards are generated. These shards may have different trace shape, so in the next step they are normalized. Finally, normalized shard proofs are recursively compressed in batches of 3-4 to a single zkVM proof. For further details see [this page](https://docs.succinct.xyz/docs/sp1/hypercube/recursion).\n\n### Final wrap\n\nSP1 Hypercube supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/sp1/generating-proofs/proof-types#compressed)). The implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup (todo: link to trusted setups section).",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV64",
"type": "ISA",
"name": "RISC-V 64bit",
"description": "Free and open-source universal 64-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
},
{
"id": "KoalaBear",
"type": "Field",
"name": "Koala Bear",
"description": "Prime field of order p = 2**31 - 2**24 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
{
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"participantCount": 176,
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": "Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \nIt included 176 participants and was publicly open for participation.\n\n- Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n- Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n- Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition)."
},
{
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"id": "SP1HypercubeGroth16_v6_1_0",
"name": "SP1 Hypercube v6.1.0 Groth16 circuit-specific setup",
"participantCount": 18,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 18 participants from 8 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.1.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 18 participants affiliated with Etherealize, Polygon, OP Labs, Alpen Labs, Offchain Labs, Succinct, Coinbase, Across Protocol. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: .\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
},
{
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"id": "SP1HypercubeGroth16",
"name": "SP1 Hypercube Groth16 circuit-specific setup",
"participantCount": 12,
"risk": "red",
"shortDescription": "Trusted setup ceremony for SP1 Hypercube (release v6.0.0) Groth16 final wrap circuits. Phase 2 of the ceremony was organized by Succinct and includes 12 participants from 7 different organizations, without public calls to participate.",
"longDescription": "SP1 Hypercube v6.0.0 Groth16 trusted setup builds on top of the first 54 contributions to the [Perpetual Powers of Tau](https://github.com/privacy-ethereum/perpetualpowersoftau) ceremony as its phase 1 setup.\n\nPhase 2 of the ceremony was run among 12 participants affiliated with Across Protocol, OP Labs, Offchain Labs, Succinct Labs, Conduit, Ethrealize and 1 independent participant. It generated circuit-specific setup parameters for Groth16 wrapper of SP1 Hypercube zkVM.\n\n- Phase 1 ceremony (first 54 contributions are used): .\n- Ceremony info on Succinct docs page: (link is updated and points to a different ceremony now).\n- Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n- Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): ."
}
],
"verifierHashes": [
{
"hash": "0x4388a21c687fdd5f218d7e3d13190cac4c5355818d3605fd5fb811df468ee696",
"name": "SP1 Hypercube Groth16 v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0/crates/prover",
"proofSystem": {
"id": "SP1_v6_1_0",
"type": "Groth16",
"name": "SP1 v6.1.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.1.0"
},
"knownDeployments": [
{
"address": "eth:0xb69f2584CBcFf99a58C4e7002E8b89Af54a6f4e2"
},
{
"address": "eth:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
},
{
"address": "arb1:0xD9d5C8456a168Dd25561064F47bF116111131B1D"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.1.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-17 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x0e78f4db7a6771a3a6a7d9c3b0de6fe73d58781368967a7fe84d87aefffec896",
"name": "SP1 Hypercube Groth16 v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0/crates/prover",
"proofSystem": {
"id": "SP1_v6_0_0",
"type": "Groth16",
"name": "SP1 v6.0.0",
"description": "Succinct's Groth16 final wrap circuit for SP1 zkVM v6.0.0"
},
"knownDeployments": [
{
"address": "eth:0x99A74A05a0FaBEB217C1A329b0dac59a1FA52508"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to build groth16 circuit file.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThis script will generate `groth16_circuit.bin` file in the `prover/build/groth16` directory, however it will not generate correct prover and verifier keys.\n\n3. Generate correct pk and vk using the correct SP1 trusted setup. This will require [semaphore-gnark-11](https://github.com/succinctlabs/semaphore-gnark-11/tree/main) repo.\n\n```\ncd\ngit clone https://github.com/succinctlabs/semaphore-gnark-11.git # tested on commit hash 6d6ebc3608e609ec879e9ba99abee6b6b97d937d\ncd semaphore-gnark-11\n# Download the trusted setup transcript\ncurl \"https://sp1-circuits.s3-us-east-2.amazonaws.com/v6.0.0-trusted-setup.tar.gz\" -o trusted-setup.tar.gz\n\n# Extract trusted setup transcript.\ntar -xzf trusted-setup.tar.gz\n\n# Build the binary.\ngo build\n\n# Generate keys. They are outputted to the files pk and vk in the root directory.\n./semaphore-gnark-11 key trusted-setup/phase1 trusted-setup/phase2-11 trusted-setup/evals /path/to/sp1/crates/prover/build/groth16/groth16_circuit.bin\n```\nThe last step will take several hours to complete.\n\n4. Compute the hash of generated `vk` file: `shasum vk -a 256`."
},
{
"hash": "0x5a093a2fcb46394f5cadfe55c44d4d572fad9cec7aeb38026b0278322ef07fac",
"name": "SP1 Hypercube Plonk v6.1.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.1.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "arb1:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
},
{
"address": "eth:0x9774CE99E8Ab3f13582bC6c2Bd2832e5A25C4624"
},
{
"address": "eth:0xD9F24400816c4CC1a3cBb9B851C9B0bAB63Ad692"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 100 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.1.0 # commit should be d454975ac7c1126097e36eceda9bce2cb9899da4\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
},
{
"hash": "0xbb1a6f2930e94bfe8b35e794faf43133214534a17d2ad8e51358cad437b3c317",
"name": "SP1 Hypercube Plonk v6.0.0",
"sourceLink": "https://github.com/succinctlabs/sp1/tree/v6.0.0/crates/prover",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
},
{
"address": "arb1:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C"
}
],
"verificationStatus": "successful",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
],
"verificationSteps": "The regeneration process consumed around 70 GiB of memory on the peak.\n\n1. Install necessary dependencies: rust, docker, sp1 toolkit, go.\n\n```\nsudo apt update\nsudo apt install build-essential golang-go protobuf-compiler\n\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n. .cargo/env\ncargo install --debug --locked cargo-make\n\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\nsudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\"\nsudo apt install -y docker-ce\nsudo usermod -aG docker ${USER}\n\ncurl -L https://sp1up.succinct.xyz/ | bash\nsource ~/.bashrc\nsp1up\n```\n\n2. Clone [sp1 repo](https://github.com/succinctlabs/sp1), set `SP1_ALLOW_DEPRECATED_HOOKS` for correct compilation and run the script to regenerate verifiers.\n\n```\ngit clone https://github.com/succinctlabs/sp1.git\ncd sp1/crates/prover\ngit checkout v6.0.0 # commit should be f87f8d6ff005d542db22e241928319f5e96a4609\nexport SP1_ALLOW_DEPRECATED_HOOKS=true # fixes compilation errors\n\nmake build-circuits\n```\n\nThe script will generate Plonk verifier smart contract with verification keys and the verifier hash in `build/plonk` dir."
}
]
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1781102204,
"baseTimestamp": 1781603320,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x49015545B46B07082bd7faf2633643eae87710EC",
"type": "EOA",
"isVerified": true,
"name": "0x4901…10EC",
"url": "https://etherscan.io/address/0x49015545B46B07082bd7faf2633643eae87710EC",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]\n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches \n * sole address that can force batches \n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xA2Ce8D246889Db0F1Cb615E2E1231790cd5244A7",
"type": "EOA",
"isVerified": true,
"name": "0xA2Ce…44A7",
"url": "https://etherscan.io/address/0xA2Ce8D246889Db0F1Cb615E2E1231790cd5244A7",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3-and-EOA-4",
"name": "EOA 3 and EOA 4",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 3"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x7fF0B5fF6Eb8B789456639AC2A02487c338c1789",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1735650935,
"transactionHash": "0x6fa3d7225201238d78388fafabea13b5a54c4f1f037d51071c39c624aa072511",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
}
],
"description": "The main system contract defining the Ternoa Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 1\n * **trustedSequencer**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7fF0B5fF6Eb8B789456639AC2A02487c338c1789#code"
},
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9B9671dB83CfcB4508bF361942488C5cA2b1286D#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0xB408a216927d31A27fd96176dbF1B825630f0301",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xE390FB0dd0Ea7684F59210d791D63E7fc28BbF9b"
],
"implementations": [
"eth:0x0f32d8C0eB1cE4C5FFb1A6C4bb3b879D2184Ed11"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1735824851,
"transactionHash": "0xa1d4a7b4eaff3accd51899984230d34d5219786f1de408d9ac6174552d852dad",
"implementations": [
"eth:0x0f32d8C0eB1cE4C5FFb1A6C4bb3b879D2184Ed11"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 1/1).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 1\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-1",
"name": "EOA 1",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB408a216927d31A27fd96176dbF1B825630f0301#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 3, EOA 4\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xE390FB0dd0Ea7684F59210d791D63E7fc28BbF9b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE390FB0dd0Ea7684F59210d791D63E7fc28BbF9b#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"CAPS"
]
},
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x9B9671dB83CfcB4508bF361942488C5cA2b1286D"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xe218f50Aa347687E449B8FCcAc81B6Fbe27C7aDD",
"type": "EOA",
"isVerified": true,
"name": "0xe218…7aDD",
"url": "https://etherscan.io/address/0xe218f50Aa347687E449B8FCcAc81B6Fbe27C7aDD",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments \n* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"type": "EOA",
"isVerified": true,
"name": "0xb860…2cfe",
"url": "https://etherscan.io/address/0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xdF1384abe257F41569cC20bc9d7C4f022d2a4826",
"type": "EOA",
"isVerified": true,
"name": "0xdF13…4826",
"url": "https://etherscan.io/address/0xdF1384abe257F41569cC20bc9d7C4f022d2a4826",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0xecEA75e2854FD52b0aE5C51C88f5eA8e2eC4bf9A",
"type": "EOA",
"isVerified": true,
"name": "0xecEA…bf9A",
"url": "https://etherscan.io/address/0xecEA75e2854FD52b0aE5C51C88f5eA8e2eC4bf9A",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-5-and-EOA-6",
"name": "EOA 5 and EOA 6",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 5"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0775e11309d75aA6b0967917fB0213C5673eDf81#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0x755e9A5B4BAEFc78Bb82BA7E6d2386CCB2F238a5",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x2B966b9824c11f274aa39f2f72cF25C4b47c3A78"
],
"implementations": [
"eth:0xAce9269EaC3419937093154dea0AD44C36Df6963"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720547183,
"transactionHash": "0xf72b5eafd4612b45278a8d49041d0736c6c4a6de6069160dec9a086e08027762",
"implementations": [
"eth:0xAce9269EaC3419937093154dea0AD44C36Df6963"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 2/1).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 2\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-2",
"name": "EOA 2",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x755e9A5B4BAEFc78Bb82BA7E6d2386CCB2F238a5#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x78253E2E6120164bd826668A4C96Db20f78A94c9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1720089623,
"transactionHash": "0xb727fee71f71c51e9d5fe335b8c6382b80f576364002f5986149004578a16af9",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1758525947,
"transactionHash": "0x23960a8fc591368d7d73c22322e32c5c287f44cc412fd5ccd03916238f12400b",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
}
],
"description": "The main system contract defining the pay-chain Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 4\n * **trustedSequencer**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x78253E2E6120164bd826668A4C96Db20f78A94c9#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 5, EOA 6\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x2B966b9824c11f274aa39f2f72cF25C4b47c3A78",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2B966b9824c11f274aa39f2f72cF25C4b47c3A78#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1679653127,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherPreminted",
"premintedAmount": "340282366920938463463374607431768211455"
},
"chainId": 1
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+19 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xd0676f1Ee81d7C6fe9B0F2EEf9FF74C3E984f94b",
"type": "EOA",
"isVerified": true,
"name": "0xd067…f94b",
"url": "https://etherscan.io/address/0xd0676f1Ee81d7C6fe9B0F2EEf9FF74C3E984f94b",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * set core system parameters like the trusted sequencer and manage forced transactions/batches \n * sole address that can force batches \n* Can interact with PolygonDataCommittee\n * manage the members of the data availability committee and the threshold for valid commitments ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x353800524721e11B453f73f523dD8840c215a213",
"type": "EOA",
"isVerified": true,
"name": "0x3538…a213",
"url": "https://etherscan.io/address/0x353800524721e11B453f73f523dD8840c215a213",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with Validium\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"type": "EOA",
"isVerified": true,
"name": "0xb860…2cfe",
"url": "https://etherscan.io/address/0xb8605297399baEb6628C9E8F5D3E52A056492cfe",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * PolygonDataCommittee [via: ProxyAdmin]",
"discoveryDrivenData": true
},
{
"id": "EOA-4-and-EOA-5",
"name": "EOA 4 and EOA 5",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 4"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
}
]
}
}
+15 -0
{
"addresses": {
"ethereum": [
{
"name": "Verifier",
"isVerified": true,
"address": "eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifies ZK proofs for state roots of this Layer 2 via the PolygonRollupManager.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0775e11309d75aA6b0967917fB0213C5673eDf81#code"
},
{
"name": "Validium",
"isVerified": true,
"address": "eth:0x42Ac57F24EC4C3AAC843f6DBAcd9282DAaeE9238",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1718558735,
"transactionHash": "0x059ddb2af7337bacc9f85aed058936b67c1c439d56744b05336952c1792d811d",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
}
],
"description": "The main system contract defining the witnesschain Layer 2 logic. Entry point for sequencing batches.\n* Roles:\n * **admin**: EOA 1\n * **forceBatchAddress**: EOA 1\n * **trustedSequencer**: EOA 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x42Ac57F24EC4C3AAC843f6DBAcd9282DAaeE9238#code"
},
{
"name": "PolygonDataCommittee",
"isVerified": true,
"address": "eth:0xB0FD8Ba20B1C178b14Dd2a02f4e72c03fdA626f8",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x8cC10554B5C7D322E6a7F33CBb584c7C5fdBA039"
],
"implementations": [
"eth:0xD26B535AD58715C4c2ffFAC32908b13674533DAe"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1718630207,
"transactionHash": "0x189f2f8a9bf53ece3537b3b9a10ec0a98d7e6b506c2fa368cf818e2344f7b9ad",
"implementations": [
"eth:0xD26B535AD58715C4c2ffFAC32908b13674533DAe"
]
}
],
"description": "Manages the members of the data availability committee (DAC) and the threshold for accepting commitments from them (Currently 2/1).\n* Roles:\n * **admin**: ProxyAdmin; ultimately EOA 3\n * **owner**: EOA 1",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xB0FD8Ba20B1C178b14Dd2a02f4e72c03fdA626f8#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 4, EOA 5\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x8cC10554B5C7D322E6a7F33CBb584c7C5fdBA039",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: EOA 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8cC10554B5C7D322E6a7F33CBb584c7C5fdBA039#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 3d delay on code upgrades unless upgrade is initiated by the PolygonSecurityCouncil in which case there is no delay."
}
],
"zkVerifiers": [
"eth:0x0775e11309d75aA6b0967917fB0213C5673eDf81"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+31 -6
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "PolygonAdminMultisig",
"name": "PolygonAdminMultisig",
"description": "A Multisig with 5/9 threshold. \n* Can upgrade **with 3d delay**\n * AgglayerGateway [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerBridge [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerManager [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n * AgglayerGER [via: Timelock with 3d delay (no delay if in emergency state) → SharedProxyAdmin]\n* Can interact with AgglayerGateway\n * add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * add or update default aggchain verification keys (aggchainVkey) for any given selectors \n * change the aggchainSigners and threshold (a multisig used for permissioned state transitions) \n * freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs \n* Can interact with AgglayerBridge\n * upgrade the implementation of wrapped tokens deployed by the bridge **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager \n * manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager **with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state)]\n * manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types \n* Can interact with Timelock\n * propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay **with 6d delay or with 3d delay** [via: Timelock with 3d delay (no delay if in emergency state) with 3d delay (no delay if in emergency state) - or - acting directly with 3d delay (no delay if in emergency state)]",
"accounts": [
{
"address": "eth:0x242daE44F5d8fb54B198D03a94dA45B5a4413e21",
"type": "Contract",
"isVerified": true,
"name": "0x242d…3e21",
"url": "https://etherscan.io/address/0x242daE44F5d8fb54B198D03a94dA45B5a4413e21"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0xAb3506507449bF1880f3337825efd19ac89E235E",
"type": "EOA",
"isVerified": true,
"name": "0xAb35…235E",
"url": "https://etherscan.io/address/0xAb3506507449bF1880f3337825efd19ac89E235E"
},
{
"address": "eth:0xED7cC82235A7757702475c8f77c7830c095FB5a2",
"type": "EOA",
"isVerified": true,
"name": "0xED7c…B5a2",
"url": "https://etherscan.io/address/0xED7cC82235A7757702475c8f77c7830c095FB5a2"
},
{
"address": "eth:0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da",
"type": "EOA",
"isVerified": true,
"name": "0xdFEd…56Da",
"url": "https://etherscan.io/address/0xdFEd8373695a7b3DaF268CF91e71f6a7024A56Da"
},
{
"address": "eth:0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238",
"type": "EOA",
"isVerified": true,
"name": "0xffbf…3238",
"url": "https://etherscan.io/address/0xffbfc0c8331C5fc912DDA3C6D4A86eEB80203238"
},
{
"address": "eth:0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37",
"type": "EOA",
"isVerified": true,
"name": "0xeD44…dB37",
"url": "https://etherscan.io/address/0xeD44D1CFfB91e163CB7126bdEeA83959f175dB37"
},
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0xA0B02B28920812324f1cC3255bd8840867d3f227",
"address": "eth:0x21618593F7147235aC8D511d68A547C935F9d417",
"type": "EOA",
"isVerified": true,
"name": "0xA0B0…f227",
"url": "https://etherscan.io/address/0xA0B02B28920812324f1cC3255bd8840867d3f227"
"name": "0x2161…d417",
"url": "https://etherscan.io/address/0x21618593F7147235aC8D511d68A547C935F9d417"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "Xlayer Multisig",
"name": "Xlayer Multisig",
"description": "A Multisig with 2/3 threshold. \n* Can upgrade **with no delay**\n * AnchorStateRegistry [via: ProxyAdmin]\n * DelayedWETH [via: ProxyAdmin]\n * SystemConfig [via: ProxyAdmin]\n * OptimismMintableERC20Factory [via: ProxyAdmin]\n * OptimismPortal2 [via: ProxyAdmin]\n * L1ERC721Bridge_neutered [via: ProxyAdmin]\n * DisputeGameFactory [via: ProxyAdmin]\n * L1StandardBridge_neutered [via: ProxyAdmin]\n * L1CrossDomainMessenger [via: ProxyAdmin]\n* Can interact with AddressManager\n * set and change address mappings [via: ProxyAdmin]",
"accounts": [
{
"address": "eth:0xC290bE56089BCC83c6993583ce2cF51a7951D45A",
"type": "Contract",
"isVerified": true,
"name": "0xC290…D45A",
"url": "https://etherscan.io/address/0xC290bE56089BCC83c6993583ce2cF51a7951D45A"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3"
},
{
"address": "eth:0xD3C6821DE67A5c0345EC5A41e4C83739f7043972",
"type": "EOA",
"isVerified": true,
"name": "0xD3C6…3972",
"url": "https://etherscan.io/address/0xD3C6821DE67A5c0345EC5A41e4C83739f7043972"
},
{
"address": "eth:0x11CAA37c9e9Da2621bB45Af77cB7debEE3881d2E",
"type": "EOA",
"isVerified": true,
"name": "0x11CA…1d2E",
"url": "https://etherscan.io/address/0x11CAA37c9e9Da2621bB45Af77cB7debEE3881d2E"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonSecurityCouncil",
"name": "PolygonSecurityCouncil",
"description": "A Multisig with 6/8 threshold. \n* Can interact with AgglayerManager\n * activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable ",
"accounts": [
{
"address": "eth:0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6",
"type": "Contract",
"isVerified": true,
"name": "0x37c5…Dcb6",
"url": "https://etherscan.io/address/0x37c58Dfa7BF0A165C5AAEdDf3e2EdB475ac6Dcb6"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xFe45baf0F18c207152A807c1b05926583CFE2e4b",
"type": "EOA",
"isVerified": true,
"name": "0xFe45…2e4b",
"url": "https://etherscan.io/address/0xFe45baf0F18c207152A807c1b05926583CFE2e4b"
},
{
"address": "eth:0xaF46a0ddf80DFFB49C87656625E65A37499B261D",
"type": "EOA",
"isVerified": true,
"name": "0xaF46…261D",
"url": "https://etherscan.io/address/0xaF46a0ddf80DFFB49C87656625E65A37499B261D"
},
{
"address": "eth:0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf",
"type": "EOA",
"isVerified": true,
"name": "0xBDc2…FEFf",
"url": "https://etherscan.io/address/0xBDc235cC9d6Baa641c5ae306bc83962475A5FEFf"
},
{
"address": "eth:0x4c1665d6651ecEfa59B9B3041951608468b18891",
"type": "EOA",
"isVerified": true,
"name": "0x4c16…8891",
"url": "https://etherscan.io/address/0x4c1665d6651ecEfa59B9B3041951608468b18891"
},
{
"address": "eth:0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622",
"type": "EOA",
"isVerified": true,
"name": "0x3ab9…D622",
"url": "https://etherscan.io/address/0x3ab9f4b964eE665F7CDf1d65f1cEEc6196B0D622"
},
{
"address": "eth:0x49c15936864690bCd6af0ecaca8E874adFF30E86",
"type": "EOA",
"isVerified": true,
"name": "0x49c1…0E86",
"url": "https://etherscan.io/address/0x49c15936864690bCd6af0ecaca8E874adFF30E86"
},
{
"address": "eth:0x9F7dfAb2222A473284205cdDF08a677726d786A0",
"type": "EOA",
"isVerified": true,
"name": "0x9F7d…86A0",
"url": "https://etherscan.io/address/0x9F7dfAb2222A473284205cdDF08a677726d786A0"
},
{
"address": "eth:0x21887c89368bf918346c62460e0c339113801C28",
"type": "EOA",
"isVerified": true,
"name": "0x2188…1C28",
"url": "https://etherscan.io/address/0x21887c89368bf918346c62460e0c339113801C28"
}
],
"discoveryDrivenData": true
},
{
"id": "PolygonCreateRollupMultisig",
"name": "PolygonCreateRollupMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with AgglayerManager\n * deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager ",
"accounts": [
{
"address": "eth:0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB",
"type": "Contract",
"isVerified": true,
"name": "0xC74e…79dB",
"url": "https://etherscan.io/address/0xC74eFc7fdb3BeC9c6930E91FFDF761b160dF79dB"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x516eEcfb38aA308c5f1878497108c7d054fd46B7",
"type": "EOA",
"isVerified": true,
"name": "0x516e…46B7",
"url": "https://etherscan.io/address/0x516eEcfb38aA308c5f1878497108c7d054fd46B7"
},
{
"address": "eth:0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5",
"type": "EOA",
"isVerified": true,
"name": "0x3038…D3b5",
"url": "https://etherscan.io/address/0x3038B4DBf022E80169b2A068290d4a3A8b87D3b5"
},
{
"address": "eth:0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC",
"type": "EOA",
"isVerified": true,
"name": "0xD947…fCFC",
"url": "https://etherscan.io/address/0xD9478f759a13Bfa1d9dAB3cDF5ff0C099d5EfCFC"
},
{
"address": "eth:0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72",
"type": "EOA",
"isVerified": true,
"name": "0xEB5E…EA72",
"url": "https://etherscan.io/address/0xEB5EeE1F1650b821E0d3a87C1341d85b3a16EA72"
},
{
"address": "eth:0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B",
"type": "EOA",
"isVerified": true,
"name": "0x8B9F…782B",
"url": "https://etherscan.io/address/0x8B9F18bcDD5838bB1bd4B3d6410e45DF813b782B"
}
],
"discoveryDrivenData": true
},
{
"id": "OwnerContract",
"name": "OwnerContract",
"accounts": [
{
"address": "eth:0xe58C365Da30c746204022e61482bBE828cAA9091",
"type": "Contract",
"isVerified": false,
"name": "0xe58C…9091",
"url": "https://etherscan.io/address/0xe58C365Da30c746204022e61482bBE828cAA9091"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * SuperchainConfig [via: ProxyAdmin]",
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x491619874b866c3cDB7C8553877da223525ead01",
"type": "EOA",
"isVerified": true,
"name": "0x4916…ad01",
"url": "https://etherscan.io/address/0x491619874b866c3cDB7C8553877da223525ead01",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sole address that can force batches ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"type": "EOA",
"isVerified": true,
"name": "0x610D…c102",
"url": "https://etherscan.io/address/0x610DE9141a2c51A9A9624278AA97fbE54b27c102",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * sign state transitions (replaces state validation for this aggchain) ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"type": "EOA",
"isVerified": true,
"name": "0x6eE7…C6aA",
"url": "https://etherscan.io/address/0x6eE7BDa7AF04F61ccf93aB4b8DB2289aBe76C6aA",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "Member of Xlayer Multisig.\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"type": "EOA",
"isVerified": true,
"name": "0x9824…e459",
"url": "https://etherscan.io/address/0x98245d0ADF4595C66F0a9Db8E13c44CBFF6be459",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can interact with SystemConfig\n * Allowed to commit transactions from the current layer to the host chain ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"type": "EOA",
"isVerified": true,
"name": "0xa90B…B5eA",
"url": "https://etherscan.io/address/0xa90B4C8B8807569980F6cC958c8905383136B5eA",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with AggchainECDSAMultisig\n * set the trusted sequencer address ",
"discoveryDrivenData": true
},
{
"id": "EOA-6-and-EOA-7",
"name": "EOA 6 and EOA 7",
"accounts": [
{
"address": "eth:0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"type": "EOA",
"isVerified": true,
"name": "0x20A5…51dE",
"url": "https://etherscan.io/address/0x20A53dCb196cD2bcc14Ece01F358f1C849aA51dE",
"displayName": "EOA 6"
},
{
"address": "eth:0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"type": "EOA",
"isVerified": true,
"name": "0xD7e6…82Fb",
"url": "https://etherscan.io/address/0xD7e6c31750838Ef895fBe0c57f7Fd881a14482Fb",
"displayName": "EOA 7"
}
],
"chain": "ethereum",
"description": "* Can interact with AgglayerManager\n * Permissioned to post new state roots and global exit roots accompanied by ZK proofs ",
"discoveryDrivenData": true
},
{
"id": "EOA-8",
"name": "EOA 8",
"accounts": [
{
"address": "eth:0x736E68Af2CbF2aB0E46E4310fE5Ae568b3642FF6",
"type": "EOA",
"isVerified": true,
"name": "0x736E…2FF6",
"url": "https://etherscan.io/address/0x736E68Af2CbF2aB0E46E4310fE5Ae568b3642FF6",
"displayName": "EOA 8"
}
],
"chain": "ethereum",
"description": "* Can interact with PermissionedDisputeGame\n * Allowed to challenge or delete state roots proposed by a Proposer ",
"discoveryDrivenData": true
},
{
"id": "EOA-9",
"name": "EOA 9",
"accounts": [
{
"address": "eth:0xE43944421681170648E10007f73816e04F74394F",
"type": "EOA",
"isVerified": true,
"name": "0xE439…394F",
"url": "https://etherscan.io/address/0xE43944421681170648E10007f73816e04F74394F",
"displayName": "EOA 9"
}
],
"chain": "ethereum",
"description": "* Can interact with PermissionedDisputeGame\n * Allowed to post new state roots of the current layer to the host chain ",
"discoveryDrivenData": true
}
]
}
}
+27 -2
{
"addresses": {
"ethereum": [
{
"name": "AggchainECDSAMultisig",
"isVerified": true,
"address": "eth:0x2B0ee28D4D51bC9aDde5E58E295873F61F4a0507",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
],
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1711785755,
"transactionHash": "0x35215d1a6f4ad41bedfbfc481d53b9d508864a6ace025f243264978e1a755f81",
"implementations": [
"eth:0x10D296e8aDd0535be71639E5D1d1c30ae1C6bD4C"
]
},
{
"timestamp": 1736257283,
"transactionHash": "0x9d23f56225d22a2a1b82c2aa6122b1a29896686b30bb1f3def0189043699d46f",
"implementations": [
"eth:0x427113ae6F319BfFb4459bfF96eb8B6BDe1A127F"
]
},
{
"timestamp": 1754397707,
"transactionHash": "0xab579dbf426db0badfaef925504105088f3300b51f1362a4084c57d7e13c0fb1",
"implementations": [
"eth:0x18C45DD422f6587357a6d3b23307E75D42b2bc5B"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x0D49fD0d79723e4D24AaC83f604ED2D3d5fC0f21"
]
}
],
"description": "System contract defining the X Layer Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).\n* Roles:\n * **admin**: EOA 5\n * **aggchainSigners**: EOA 2\n * **forceBatchAddress**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2B0ee28D4D51bC9aDde5E58E295873F61F4a0507#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x5065809Af286321a05fBF85713B5D5De7C8f0433",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xfCA51bf5bDc5aC16B86F859d6BEe90cfdF6fEb72"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xee63dC4B835b2790A171fd0149566B1D51E5ae73"
]
},
{
"timestamp": 1764577007,
"transactionHash": "0xdfa2991d716c87991504d3a2e76fd06bc0c7cd2db5d2ce83d910aaf184123487",
"implementations": [
"eth:0xfCA51bf5bDc5aC16B86F859d6BEe90cfdF6fEb72"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig\n * **batcherHash**: EOA 4\n * **owner**: EOA 3",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5065809Af286321a05fBF85713B5D5De7C8f0433#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0x64057ad1DdAc804d0D26A7275b193D9DACa19993",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xa0fEfC3A457F6A1aE2d81FC172D6dE090a9F4033"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xa0fEfC3A457F6A1aE2d81FC172D6dE090a9F4033"
]
}
],
"description": "Central message and gas token (dOKB) bridge of the OP stack part of this deployment. It allows for permissioned state proposals without public challenges, and forced transactions.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x64057ad1DdAc804d0D26A7275b193D9DACa19993#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0x9D4c8FAEadDdDeeE1Ed0c92dAbAD815c2484f675",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x74Fac1D45B98bae058F8F566201c9A81B85C7D50"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x9D4c8FAEadDdDeeE1Ed0c92dAbAD815c2484f675#code"
},
{
"name": "AgglayerGateway",
"isVerified": true,
"address": "eth:0x046Bb8bb98Db4ceCbB2929542686B74b516274b3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750087643,
"transactionHash": "0xe7c64d567589723d0920e6104296a434fb24193d2ccd33814d0b3fd753be5db2",
"implementations": [
"eth:0x7bB0e8f1950722694929dB392abA805AAc6e9346"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0xD062B7f9fbB89bdA59262E77015C34a27Dc9aB49"
]
}
],
"description": "A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.\n* Roles:\n * **addPpRoute**: Timelock; ultimately PolygonAdminMultisig\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **aggchainDefaultVKey**: PolygonAdminMultisig\n * **alMultisig**: PolygonAdminMultisig\n * **freezePpRoute**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x046Bb8bb98Db4ceCbB2929542686B74b516274b3#code"
},
{
"name": "AgglayerBridge",
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"description": "The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **proxiedTokensManager**: Timelock; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
{
"name": "AgglayerManager",
"isVerified": true,
"address": "eth:0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653163,
"transactionHash": "0xe34243804e1f7257acb09c97d0d6f023663200c39ee85a1e6927b0b391710bbb",
"implementations": [
"eth:0xe262Ea2782e2e8dbFe354048c3B5d6DE9603EfEF"
]
},
{
"timestamp": 1695198635,
"transactionHash": "0x25c342d7c5b4137b5439c16fd5fa1577c116277859202b2c68fcd9f73b3fc2ac",
"implementations": [
"eth:0x301442aA888701c8B86727d42F3C55Fb0dd9eF7F"
]
},
{
"timestamp": 1699521779,
"transactionHash": "0x1db1400138d6778d303b9a13e816432d11f8dfca00ef6ec6ffcb6698cb447a31",
"implementations": [
"eth:0xb1585916487AcEdD99952086f2950763D253b923"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x3b82Da772c825283d85d5d6717A77C6Ff582053b"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x103388f5661d224F4aFb555C7E4a8FB52d0b752d"
]
},
{
"timestamp": 1738594559,
"transactionHash": "0xb499c5a8f315d72886e44eabcbf6428fb9672f3ea8eb55adcbfda0ae0612233e",
"implementations": [
"eth:0xA33619940bceb9be7c9679Dd80FA2918C2476382"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x9ab2cB2107d3E737f7977B2E5042C58dE98326ab"
]
},
{
"timestamp": 1753882523,
"transactionHash": "0x289865ea6d92cdf5be21123b6ce61447f500ba14c229f02153113f8419af1695",
"implementations": [
"eth:0x42B9fF0644741e3353162678596e7D6aA6a13240"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x15cAF18dEd768e3620E0f656221Bf6B400ad2618"
]
}
],
"description": "The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the 'Emergency State'. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig\n * **createRollup**: PolygonAdminMultisig, PolygonCreateRollupMultisig\n * **defaultAdmin**: Timelock; ultimately PolygonAdminMultisig\n * **emergencyCouncilAdmin**: PolygonSecurityCouncil\n * **trustedAggregator**: EOA 6, EOA 7\n * **tweakParameters**: PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2#code"
},
{
"name": "AgglayerGER",
"isVerified": true,
"address": "eth:0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653151,
"transactionHash": "0x9946be78d6c6d19dd1c6c7134a8fac27e76d32cad36dae2398d28fe6ff838f10",
"implementations": [
"eth:0xbc1ea504fC54D078514eFCCA1F6860B5219B6BC3"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x2E38cD55163137483E30580Cb468C2dFf1d85077"
]
},
{
"timestamp": 1730286719,
"transactionHash": "0x8c1be5b5d844d6e04b2c224cd810cda091d70e6d5c2e5e0464993f7df1ab8403",
"implementations": [
"eth:0x9Bdda421219900454E94e01d641fE64c60D8f4C8"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0xc38C76aE3C8A7dee99d07f1A39246ABe18919a48"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x7F1655d9d570167B2a3FfD1Ef809D3Fdd74427C5"
]
}
],
"description": "A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the 'global exit root'. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.\n* Roles:\n * **admin**: SharedProxyAdmin; ultimately PolygonAdminMultisig",
"upgradableBy": [
{
"name": "PolygonAdminMultisig",
"delay": "3d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb#code"
},
{
"name": "Timelock",
"isVerified": true,
"address": "eth:0xEf1462451C30Ea7aD8555386226059Fe837CA4EF",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.\n* Roles:\n * **timelockAdmin**: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0xF94B553F3602a03931e5D10CaB343C0968D793e3",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xb686F13AfF1e427a1f993F29ab0F2E7383729FE0"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF94B553F3602a03931e5D10CaB343C0968D793e3#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0x000590BB65ab1864a7AD46d6B957cC9a4F2C149d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xeb69cC681E8D4a557b30DFFBAd85aFfD47a2CF2E"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x000590BB65ab1864a7AD46d6B957cC9a4F2C149d#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x1B8A252A71bC8997d3871aF420895B5845212fC6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x33Dadc2d1aA9BB613A7AE6B28425eA00D44c6998"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1B8A252A71bC8997d3871aF420895B5845212fC6#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0x305D1C0EED9a0291686f3BfDf1F5E54aaeeF80e4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x305D1C0EED9a0291686f3BfDf1F5E54aaeeF80e4#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Xlayer Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x62e1Aaeba9A8AA4654980653dB4B21FC82C61c15",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0x8ee6fB13c6c9a7e401531168E196Fbf8b05cEabB"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x62e1Aaeba9A8AA4654980653dB4B21FC82C61c15#code"
},
{
"name": "L1ERC721Bridge_neutered",
"isVerified": true,
"address": "eth:0x85d37236f063C687d056b3604CBEe4B60d124858",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0xFbd06fCb2a023d89a7ae9BeE89d157C5264cf42b"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1761567143,
"transactionHash": "0x548809f75e4988d16e41bd323e76519cf64ad325a7840911cdf865f67ffd284f",
"implementations": [
"eth:0xFbd06fCb2a023d89a7ae9BeE89d157C5264cf42b"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x85d37236f063C687d056b3604CBEe4B60d124858#code"
},
{
"name": "L1StandardBridge_neutered",
"isVerified": true,
"address": "eth:0xAecF995ABf9E7eDE7ae0CE65E60622C9eD84823a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x313ce9Cec2070B519f13BDaFe07eabb4f215FEE6"
],
"implementations": [
"eth:0x2978527d5D1372C32fEdC182FDE7559c0471d051"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "This OP stack bridge contract has been modified to disallow ETH and ERC-20 bridging.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Xlayer Multisig",
"upgradableBy": [
{
"name": "Xlayer Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xAecF995ABf9E7eDE7ae0CE65E60622C9eD84823a#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xC6901aBf8D39079d6b028dA550BB643f10840552",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: OwnerContract",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xC6901aBf8D39079d6b028dA550BB643f10840552#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xEeDa796a23bc98726e47934ca9B54fDDa5a608e8",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n* Roles:\n * **challenger**: EOA 8\n * **proposer**: EOA 9",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEeDa796a23bc98726e47934ca9B54fDDa5a608e8#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SharedProxyAdmin",
"isVerified": true,
"address": "eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Timelock",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A#code"
},
{
"name": "BridgeLib",
"isVerified": true,
"address": "eth:0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Extension contract of the AgglayerBridge for asset metadata..\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3622Fcf450ca40a340b7492Ae5F60E7c7Ea68aB3#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"sinceTimestamp": 1712620800,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0F99738B2Fc14D77308337f3e2596b63aE7BCC4A"
],
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1679653127,
"transactionHash": "0x28f93532243dd8a8cc92ce630ef1920f40de15af7db2903efbf42f21fdf8152c",
"implementations": [
"eth:0x5ac4182A1dd41AeEf465E40B82fd326BF66AB82C"
]
},
{
"timestamp": 1707822059,
"transactionHash": "0xb83824c7eb1e87bd12222d98cf1cbff317b0853ba1e5beda1e3e3d8a4cfd1b24",
"implementations": [
"eth:0x0FeB850B183C57534b56b7d56520133C8f9BDB65"
]
},
{
"timestamp": 1750689983,
"transactionHash": "0xcdd772d0b4764da67b80a72af2da7230f4f70f8c810cb8c4fe3882b8c4506ff3",
"implementations": [
"eth:0x75D28BfDfF93B3e4f20184b442d2634DC01cA48b"
]
},
{
"timestamp": 1761747071,
"transactionHash": "0x7be3301b763f904f5076e22914b0ea13e101ed3cff6480b23a7757e7b9875939",
"implementations": [
"eth:0x66E0120e3c965552a89AcC37b03f762624baC5Ad"
]
}
],
"url": "https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe#code"
},
"chain": "ethereum",
"includeInTotal": true,
"sharedEscrow": {
"type": "AggLayer",
"nativeAsset": "etherWrapped",
"wethAddress": "0x5A77f1443D16ee5761d310e38b62f77f726bC71c",
"tokensToAssignFromL1": [
"OKB"
]
},
"chainId": 1
}
],
"programHashes": [
{
"title": "Pessimistic program of agglayer 0.3.3-post4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.3.3-post.4/crates/pessimistic-proof-program",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.3.3-post.4`. Commit hash should be `df072abc86fa89e12b17204246325983272a1141`\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make install-cargo-prove` to install the correct version of sp1 toolchain\n4. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n5. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf",
"hash": "0x00eff0b6998df46ec388bb305618089ae3dc74e513e7676b2e1909694f49cc30"
},
{
"title": "Pessimistic program of agglayer v0.4.4",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.4.4/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct branch in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.4.4`. Commit hash should be `caac9f06bc7cb1cf89912dbb4dffa4d594a00bd5`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv32im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x000055f14384bdb5bb092fd7e5152ec31856321c5a30306ab95836bdf5cdb639"
},
{
"title": "Pessimistic program of agglayer v0.5.1",
"description": "Verifies that a chain connected to Polygon Agglayer does not bridge out more tokens that were bridged in, thus preventing stealing tokens from other Agglayer chains. Also verifies aggchain proof for this chain.",
"proverSystemProject": "sp1turbo",
"programUrl": "https://github.com/agglayer/agglayer/tree/v0.5.1/crates/pessimistic-proof",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install cargo make: `cargo install --debug --locked cargo-make`\n2. Install sp1 toolchain: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up`\n3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n\nVerify:\n\n1. Checkout the correct tag in [agglayer repo](https://github.com/agglayer/agglayer/tree/main): `git checkout v0.5.1`. Commit hash should be `f7bb86695b03d363c3d0d15ff7f2d8b386e58c91`.\n2. Make sure docker is running by running `docker ps`.\n3. From the root dir: `cargo make pp-elf` to generate pessimistic program elf from sources.\n4. From the pessimistic-proof/elf dir: `cargo prove vkey --elf riscv64im-succinct-zkvm-elf` to check the verification key of this elf.",
"hash": "0x00d14f977a6ec393014f300ad78d0761dc29435d3fa1e2626fa466bd3343578e"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
},
{
"category": "Funds can be stolen if",
"text": "the source code of unverified contracts contains malicious code.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459"
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1781095928,
"baseTimestamp": 1781600877,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781602379,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+7 -7
+6 -6
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EmergencyUpgradeBoard",
"name": "EmergencyUpgradeBoard",
"accounts": [
{
"address": "eth:0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111",
"type": "Contract",
"isVerified": true,
"name": "0xF73a…a111",
"url": "https://etherscan.io/address/0xF73a7dCfa68E52030ec39E41a23DCA51F3aAa111"
}
],
"chain": "ethereum",
"description": "A custom contract allowing a 3/3 of SecurityCouncil, ZK Foundation Multisig and Guardians to `executeEmergencyUpgrade()` via the ProtocolUpgradeHandler.\n* Can upgrade **with no delay**\n * BridgeHub [via: ProtocolUpgradeHandler → ProxyAdmin]\n * MessageRoot [via: ProtocolUpgradeHandler → ProxyAdmin]\n * CTMDeploymentTracker [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1AssetRouter [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1NativeTokenVault [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainTypeManager [via: ProtocolUpgradeHandler → ProxyAdmin]\n * L1Nullifier [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ChainAssetHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n * ProtocolUpgradeHandler [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with BridgeHub\n * set critical contract addresses for the shared cluster, register settlement layers, pause and unpause migrations and the bridge and manage zk chain registration [via: ProtocolUpgradeHandler]\n* Can interact with L1NativeTokenVault\n * pause / unpause the bridge [via: ProtocolUpgradeHandler]\n* Can interact with ChainTypeManager\n * manage the shared ValidatorTimelock contract address and the admin role, register and execute upgrades (and set their deadlines), freeze, revert batches and set permissioned validators and fee params for all connected chains [via: ProtocolUpgradeHandler]\n* Can interact with L1Nullifier\n * pause, unpause and set critical escrow address references [via: ProtocolUpgradeHandler]\n* Can interact with ChainAssetHandler\n * pause, resume chain migrations [via: ProtocolUpgradeHandler]\n* Can interact with RollupDAManager\n * manage allowed rollup DA pairs (allowed to be used by rollups in permanent rollup mode) [via: ProtocolUpgradeHandler]",
"discoveryDrivenData": true
},
{
"id": "Matter Labs Multisig",
"name": "Matter Labs Multisig",
"description": "A Multisig with 5/8 threshold. \n* Can upgrade **with no delay**\n * ServerNotifier [via: EraChainAdminProxy → ProxyAdmin]\n* Can interact with BridgeHub\n * create new zk chains (based on the current version), register tokens (ZK cluster Admin role) [via: EraChainAdminProxy]\n* Can interact with ChainTypeManager\n * revert batches for any connected chain (ZK cluster Admin role) [via: EraChainAdminProxy]",
"accounts": [
{
"address": "eth:0x4e4943346848c4867F81dFb37c4cA9C5715A7828",
"type": "Contract",
"isVerified": true,
"name": "0x4e49…7828",
"url": "https://etherscan.io/address/0x4e4943346848c4867F81dFb37c4cA9C5715A7828"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x4A333c167Ce76C46149c6B0197977ae02aaeC929",
"type": "EOA",
"isVerified": true,
"name": "0x4A33…C929",
"url": "https://etherscan.io/address/0x4A333c167Ce76C46149c6B0197977ae02aaeC929"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1",
"type": "EOA",
"isVerified": true,
"name": "0x5C7E…f1B1",
"url": "https://etherscan.io/address/0x5C7E59Dba6557C7dAB3B69ccd3E309d1965Cf1B1"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"address": "eth:0x702caCafA54B88e9c54449563Fb2e496e85c78b7",
"type": "EOA",
"isVerified": true,
"name": "0x702c…78b7",
"url": "https://etherscan.io/address/0x702caCafA54B88e9c54449563Fb2e496e85c78b7"
},
{
"address": "eth:0xFAdb20191Ab38362C50f52909817B74214CA79AE",
"type": "EOA",
"isVerified": true,
"name": "0xFAdb…79AE",
"url": "https://etherscan.io/address/0xFAdb20191Ab38362C50f52909817B74214CA79AE"
},
{
"address": "eth:0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28",
"type": "EOA",
"isVerified": true,
"name": "0xAf0B…9B28",
"url": "https://etherscan.io/address/0xAf0B2B58289857e9A6Cf91Fd30410dDcad9D9B28"
},
{
"address": "eth:0x7408A268e5E6e8F08917c5b71015F4B9044970C7",
"type": "EOA",
"isVerified": true,
"name": "0x7408…70C7",
"url": "https://etherscan.io/address/0x7408A268e5E6e8F08917c5b71015F4B9044970C7"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncil",
"name": "SecurityCouncil",
"description": "A Multisig with 6/8 threshold. \nCustom Multisig implementation that has a general threshold of 6 but also specific thresholds for upgrade approvals (4) or soft freezes (3).\n* Can interact with ProtocolUpgradeHandler\n * soft freeze, hard freeze, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x59195219d1176E42f8e607e9AC114926D47f9035",
"type": "Contract",
"isVerified": true,
"name": "0x5919…9035",
"url": "https://etherscan.io/address/0x59195219d1176E42f8e607e9AC114926D47f9035"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-3-zksync-security-council"
}
],
"participants": [
{
"address": "eth:0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x34Ea62D4b9bBB8AD927eFB6ab31E3Ab3474aC93a"
},
{
"address": "eth:0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x35eA56fd9eAd2567F339Eb9564B6940b9DD5653F"
},
{
"address": "eth:0x69462a81ba94D64c404575f1899a464F123497A2",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x69462a81ba94D64c404575f1899a464F123497A2"
},
{
"address": "eth:0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x84BF0Ac41Eeb74373Ddddae8b7055Bf2bD3CE6E0"
},
{
"address": "eth:0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x9B8Be3278B7F0168D82059eb6BAc5991DcdfA803"
},
{
"address": "eth:0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xB7aC3A79A23B148c85fba259712c5A1e7ad0ca44"
},
{
"address": "eth:0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xc3Abc9f9AA75Be8341E831482cdA0125a7B1A23e"
},
{
"address": "eth:0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xFB90Da9DC45378A1B50775Beb03aD10C7E8DC231"
}
],
"discoveryDrivenData": true
},
{
"id": "Guardians",
"name": "Guardians",
"description": "A Multisig with 5/8 threshold. \nCustom Multisig implementation that has a general threshold of 5 and a specific threshold for extending the legal voting period of 2.\n* Can interact with ProtocolUpgradeHandler\n * extend the legal veto period, approve a protocol upgrade \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0x600dA620Ab29F41ABC6596a15981e14cE58c86b8",
"type": "Contract",
"isVerified": true,
"name": "0x600d…86b8",
"url": "https://etherscan.io/address/0x600dA620Ab29F41ABC6596a15981e14cE58c86b8"
}
],
"chain": "ethereum",
"references": [
{
"title": "Guardians - ZK Nation docs",
"url": "https://docs.zknation.io/zksync-governance/schedule-4-zksync-guardians"
}
],
"participants": [
{
"address": "eth:0x015318c16AE443a20DE0A776dB06a59F0D279057",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x015318c16AE443a20DE0A776dB06a59F0D279057"
},
{
"address": "eth:0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x178D8Eb1A1fb81B5102808A83318Bb04C6a9fC6D"
},
{
"address": "eth:0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x2A90830083C5Ca1f18d7AA7fCDC2998f93475384"
},
{
"address": "eth:0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x538612F6eba6ff80FBD95D60dCDee16b8FfF2c0f"
},
{
"address": "eth:0x55c671BcE13120387Ded710A1d1b80C0e3d8E857",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x55c671BcE13120387Ded710A1d1b80C0e3d8E857"
},
{
"address": "eth:0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x590926dBCDfD19627c3BbD2A6Eb96DeC7a3AbF69"
},
{
"address": "eth:0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0x6D26874130A174839b9cd8CB87Ed4E09D0c1a5f0"
},
{
"address": "eth:0xCe7a3dFcc35602155809920Ff65e093aa726f6cf",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafe",
"url": "https://etherscan.io/address/0xCe7a3dFcc35602155809920Ff65e093aa726f6cf"
}
],
"discoveryDrivenData": true
},
{
"id": "ValidatorTimelock",
"name": "ValidatorTimelock",
"accounts": [
{
"address": "eth:0x2e5110cF18678Ec99818bFAa849B8C881744b776",
"type": "Contract",
"isVerified": true,
"name": "0x2e51…b776",
"url": "https://etherscan.io/address/0x2e5110cF18678Ec99818bFAa849B8C881744b776"
}
],
"chain": "ethereum",
"description": "Intermediary contract between the *Validators* and the central diamond contract that delays block execution (ie withdrawals and other L2 --> L1 messages) by 3h.\n* Can interact with Diamond\n * commit, prove, execute, revert batches directly in the main Diamond contract. This role is typically held by a proxying ValidatorTimelock ",
"discoveryDrivenData": true
},
{
"id": "ProxyAdmin",
"name": "ProxyAdmin",
"accounts": [
{
"address": "eth:0x0D8d1be440f997bDB9CA44C0140fD12551f99BBB",
"type": "Contract",
"isVerified": true,
"name": "0x0D8d…9BBB",
"url": "https://etherscan.io/address/0x0D8d1be440f997bDB9CA44C0140fD12551f99BBB"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * EraMultisigValidator ",
"discoveryDrivenData": true
},
{
"id": "EraMultisigValidator",
"name": "EraMultisigValidator",
"description": "A Multisig with 3/8 threshold. \nA multisig wrapper around `ValidatorTimelock` that requires a threshold of approvals before batch execution can proceed, provides additional security through 2FA.\n* Can interact with ValidatorTimelock\n * Permissioned to call the functions to commit, prove, execute and revert L2 batches through the ValidatorTimelock in the main Diamond contract ",
"accounts": [
{
"address": "eth:0xdC26B08F0335b68721F64001C38b05D0BC9B539d",
"type": "Contract",
"isVerified": true,
"name": "0xdC26…539d",
"url": "https://etherscan.io/address/0xdC26B08F0335b68721F64001C38b05D0BC9B539d"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xCCEfc6dB1010af90AB0Fa0bbBd86F6D8C1627df7",
"type": "EOA",
"isVerified": true,
"name": "0xCCEf…7df7",
"url": "https://etherscan.io/address/0xCCEfc6dB1010af90AB0Fa0bbBd86F6D8C1627df7"
},
{
"address": "eth:0x6d5Cef8F3F998C47a52e27d3e28CaEcc8AdA9693",
"type": "EOA",
"isVerified": true,
"name": "0x6d5C…9693",
"url": "https://etherscan.io/address/0x6d5Cef8F3F998C47a52e27d3e28CaEcc8AdA9693"
},
{
"address": "eth:0x8ffC957cba878cDdF446574e88Cf7e1004fc953F",
"type": "EOA",
"isVerified": true,
"name": "0x8ffC…953F",
"url": "https://etherscan.io/address/0x8ffC957cba878cDdF446574e88Cf7e1004fc953F"
},
{
"address": "eth:0x548409daf1D6766929F3927D1Ca1df0A13129a6b",
"type": "EOA",
"isVerified": true,
"name": "0x5484…9a6b",
"url": "https://etherscan.io/address/0x548409daf1D6766929F3927D1Ca1df0A13129a6b"
},
{
"address": "eth:0x6D290f04A5908F0390647d9903230de3844e5cA0",
"type": "EOA",
"isVerified": true,
"name": "0x6D29…5cA0",
"url": "https://etherscan.io/address/0x6D290f04A5908F0390647d9903230de3844e5cA0"
},
{
"address": "eth:0xd3cA2aDe062d453F410b5C5cfA1B2b89879AbE1b",
"type": "EOA",
"isVerified": true,
"name": "0xd3cA…bE1b",
"url": "https://etherscan.io/address/0xd3cA2aDe062d453F410b5C5cfA1B2b89879AbE1b"
},
{
"address": "eth:0xBBBCA2805c784e59E4eC2880cE63d08C08282726",
"type": "EOA",
"isVerified": true,
"name": "0xBBBC…2726",
"url": "https://etherscan.io/address/0xBBBCA2805c784e59E4eC2880cE63d08C08282726"
},
{
"address": "eth:0xD70528Fc72fB9DAc1bE1b684ed6E3E06196f2D04",
"type": "EOA",
"isVerified": true,
"name": "0xD705…2D04",
"url": "https://etherscan.io/address/0xD70528Fc72fB9DAc1bE1b684ed6E3E06196f2D04"
}
],
"discoveryDrivenData": true
},
{
"id": "ZK Foundation Multisig",
"name": "ZK Foundation Multisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with EmergencyUpgradeBoard\n * one of its 3/3 signers ",
"accounts": [
{
"address": "eth:0xbC1653bd3829dfEc575AfC3816D4899cd103B51c",
"type": "Contract",
"isVerified": true,
"name": "0xbC16…B51c",
"url": "https://etherscan.io/address/0xbC1653bd3829dfEc575AfC3816D4899cd103B51c"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52",
"type": "EOA",
"isVerified": true,
"name": "0xA10f…bE52",
"url": "https://etherscan.io/address/0xA10fcD4B012467FAC48ce63838B7bE56AB16bE52"
},
{
"address": "eth:0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222",
"type": "EOA",
"isVerified": true,
"name": "0x56B3…2222",
"url": "https://etherscan.io/address/0x56B3120c32AE9C3188fafc5Cc542F9c53B0b2222"
},
{
"address": "eth:0x441e5c8910Ef39996B2D01499509861228cbc2d1",
"type": "EOA",
"isVerified": true,
"name": "0x441e…c2d1",
"url": "https://etherscan.io/address/0x441e5c8910Ef39996B2D01499509861228cbc2d1"
},
{
"address": "eth:0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709",
"type": "EOA",
"isVerified": true,
"name": "0x0B2E…4709",
"url": "https://etherscan.io/address/0x0B2E7ffbcD1E3e6f5034555Fb638889FE7564709"
},
{
"address": "eth:0x610e45F112e0c8a9aA7137677C83E7A198A1b991",
"type": "EOA",
"isVerified": true,
"name": "0x610e…b991",
"url": "https://etherscan.io/address/0x610e45F112e0c8a9aA7137677C83E7A198A1b991"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-2",
"name": "EOA 1 and EOA 2",
"accounts": [
{
"address": "eth:0x882A6C2ecbAbfFc40686D599a9375ad3b35427Fd",
"address": "eth:0x28942E6870612893B96F77De0F485fcE3497AAA8",
"type": "EOA",
"isVerified": true,
"name": "0x882A…27Fd",
"url": "https://etherscan.io/address/0x882A6C2ecbAbfFc40686D599a9375ad3b35427Fd",
"name": "0x2894…AAA8",
"url": "https://etherscan.io/address/0x28942E6870612893B96F77De0F485fcE3497AAA8",
"displayName": "EOA 1"
},
{
"address": "eth:0xc75cDcBEef3aE3365ABF0217815748586F9047F1",
"address": "eth:0xa90c7CDB553332948E2943431436117eCFb1e781",
"type": "EOA",
"isVerified": true,
"name": "0xc75c…47F1",
"url": "https://etherscan.io/address/0xc75cDcBEef3aE3365ABF0217815748586F9047F1",
"name": "0xa90c…e781",
"url": "https://etherscan.io/address/0xa90c7CDB553332948E2943431436117eCFb1e781",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with EraMultisigValidator\n * initiate batch execution on L1 if approved by enough Validator Multisig members ",
"discoveryDrivenData": true
},
{
"id": "ProtocolTimelockController(L2->L1)",
"name": "ProtocolTimelockController(L2->L1)",
"accounts": [
{
"address": "eth:0x085b8B6407f150D62adB1EF926F7f304600ec714",
"type": "EOA",
"isVerified": true,
"name": "0x085b…c714",
"url": "https://etherscan.io/address/0x085b8B6407f150D62adB1EF926F7f304600ec714",
"displayName": "ProtocolTimelockController(L2->L1)"
}
],
"chain": "ethereum",
"description": "* Can interact with ProtocolUpgradeHandler\n * start (queue) upgrades ",
"discoveryDrivenData": true
}
]
},
"zksync2": {
"roles": [],
"actors": [
{
"id": "ZkProtocolGovernor",
"name": "ZkProtocolGovernor",
"accounts": [
{
"address": "zksync:0x76705327e682F2d96943280D99464Ab61219e34f",
"type": "Contract",
"isVerified": true,
"name": "0x7670…e34f",
"url": "https://explorer.zksync.io/address/0x76705327e682F2d96943280D99464Ab61219e34f"
}
],
"chain": "zksync2",
"description": "Main Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for protocol upgrade proposals (ZIPs) that start on ZKsync Era, go through Ethereum Layer 1 and can - from there - target all L1 and L2 contracts. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ProtocolTimelockController\n * cancel queued transactions \n * execute transactions that are ready \n * manage all access control roles and change the minimum delay [via: ProtocolTimelockController]\n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkTokenGovernor",
"name": "ZkTokenGovernor",
"accounts": [
{
"address": "zksync:0xb83FF6501214ddF40C91C9565d095400f3F45746",
"type": "Contract",
"isVerified": true,
"name": "0xb83F…5746",
"url": "https://explorer.zksync.io/address/0xb83FF6501214ddF40C91C9565d095400f3F45746"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Token Program Proposals (TPPs) usually targeting the ZK token on ZKsync Era. At least 21M ZK tokens are necessary to start a proposal (for delegates) and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with ZkToken\n * grant the MINTER_ROLE to arbitrary addresses, thus controlling the minting of the ZK token **with 3d delay** [via: ZkTokenTimelockController with 3d delay]\n* Can interact with ZkTokenTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: ZkTokenTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "ZkGovOpsGovernor",
"name": "ZkGovOpsGovernor",
"accounts": [
{
"address": "zksync:0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160",
"type": "Contract",
"isVerified": true,
"name": "0xEEEa…b160",
"url": "https://explorer.zksync.io/address/0xEEEa739a8b6fB1b8f703E23C9Be03CeeA643b160"
}
],
"chain": "zksync2",
"description": "Governance contract allowing for token voting (simple majority) with the ZK token through delegates. This contract is used for Governance Advisory Proposals (GAPs) that are not executable onchain. At least 21M ZK tokens are necessary to start a proposal and a 630M quorum of voted tokens must be met to succeed.\n* Can interact with GovOpsTimelockController\n * manage all access control roles and change the minimum delay **with 6d delay** [via: GovOpsTimelockController with 3d delay with 3d delay]\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions ",
"discoveryDrivenData": true
},
{
"id": "Guardians_l2Alias",
"name": "Guardians_l2Alias",
"accounts": [
{
"address": "zksync:0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"type": "EOA",
"isVerified": true,
"name": "0x711e…97c9",
"url": "https://explorer.zksync.io/address/0x711ea620AB29f41AbC6596a15981e14ce58C97c9",
"displayName": "Guardians_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) \n* Can interact with ZkGovOpsGovernor\n * cancel proposals while they are pending (after having been proposed) or active (during the voting period) ",
"discoveryDrivenData": true
},
{
"id": "ZKFoundationMultisig_l2Alias",
"name": "ZKFoundationMultisig_l2Alias",
"accounts": [
{
"address": "zksync:0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"type": "EOA",
"isVerified": true,
"name": "0xcd27…C62D",
"url": "https://explorer.zksync.io/address/0xcd2753Bd3829dfeC575AFC3816d4899CD103C62D",
"displayName": "ZKFoundationMultisig_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can interact with ZkTokenGovernor\n * make direct proposals without owning ZK tokens. In propose-guarded mode, this address is the ONLY allowed proposer. Propose-guarded mode is currently set to false ",
"discoveryDrivenData": true
},
{
"id": "ProtocolUpgradeHandler_l2Alias",
"name": "ProtocolUpgradeHandler_l2Alias",
"accounts": [
{
"address": "zksync:0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"type": "EOA",
"isVerified": true,
"name": "0xF41E…6bc4",
"url": "https://explorer.zksync.io/address/0xF41EcA3047B37dc7d88849de4a4dc07937Ad6bc4",
"displayName": "ProtocolUpgradeHandler_l2Alias"
}
],
"chain": "zksync2",
"description": "* Can upgrade **with no delay**\n * ZkToken [via: ZkTokenProxyAdmin]\n* Can interact with ZkToken\n * control all roles in the ZkToken access control, including the minter roles ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1780913202,
"baseTimestamp": 1781603066,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}