15431f76 (main)
and
a2839d93 (PR)
+1 -1
+1 -1
{
"baseTimestamp": 1788954474,
"baseTimestamp": 1789673752,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+4 -4
+3 -3
{
"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 * ValidatorTimelock [via: ProtocolUpgradeHandler → ProxyAdmin]\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 * L1USDCBridge [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 4/7 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 * set the pending admin of this contract and the ServerNotifier contract address (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:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"type": "EOA",
"isVerified": true,
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"type": "EOA",
"isVerified": true,
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"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/3 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: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/6 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:0x64FEca7976955a512aB9159f91E7dD1D55425293",
"type": "EOA",
"isVerified": true,
"name": "0x64FE…5293",
"url": "https://etherscan.io/address/0x64FEca7976955a512aB9159f91E7dD1D55425293"
},
{
"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:0x9971903268BAED330DA9DD533D97924c725AB593",
"type": "EOA",
"isVerified": true,
"name": "0x9971…B593",
"url": "https://etherscan.io/address/0x9971903268BAED330DA9DD533D97924c725AB593",
"displayName": "EOA 1"
},
{
"address": "eth:0xBf02Dc815BA63140Bfc170cFcF97987B504d36Bc",
"type": "EOA",
"isVerified": true,
"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": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"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 ProtocolUpgradeHandler\n * start (queue) upgrades [via: ProtocolTimelockController]\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": "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) ",
"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": 1789464378,
"baseTimestamp": 1789656330,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+15 -1
+1 -1
{
"baseTimestamp": 1789473742,
"baseTimestamp": 1789656139,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "f481444e",
"date": "Thu, 17 Sep 2026 14:45:27 GMT",
"timestamp": 1789656139,
"description": "ConsolidationMigrator: 2 more source/target operator pairs allowed through EasyTrack (24 total).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator] {\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.22:\n+ {\"sourceOperatorId\":9,\"targetOperatorId\":3,\"submitter\":\"eth:0x62EFDC587691319357D0518be026f940E4e2843a\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.23:\n+ {\"sourceOperatorId\":7,\"targetOperatorId\":33,\"submitter\":\"eth:0xa434489C243cb5e38Ca69809a0992B70a8930Bb6\"}\n }\n```"
}
]
},
{
"id": "3e5c973b",
"date": "Tue, 15 Sep 2026 12:10:43 GMT",
"timestamp": 1789473742,
"description": "The Curated Module v1 -> v2 validator consolidation started: 22 source/target operator pairs were allowed through EasyTrack, each naming the node operator address permitted to submit that pair's consolidation batches to the ConsolidationBus. Config change: submitters are no longer followed into discovery.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator] {\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.0:\n+ {\"sourceOperatorId\":4,\"targetOperatorId\":19,\"submitter\":\"eth:0x987Cc5111389a1f58BC7f678C95f485631205Ec3\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.1:\n+ {\"sourceOperatorId\":29,\"targetOperatorId\":0,\"submitter\":\"eth:0xcd51df5142156BD92E7A9494Dd2b9362f5078D64\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.2:\n+ {\"sourceOperatorId\":20,\"targetOperatorId\":29,\"submitter\":\"eth:0xEd95f777FDF439f2bea0B26ed4e37b95a851d131\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.3:\n+ {\"sourceOperatorId\":18,\"targetOperatorId\":12,\"submitter\":\"eth:0x6d1d325bE40726Ef8c88F009b62d2135d9b38b11\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.4:\n+ {\"sourceOperatorId\":22,\"targetOperatorId\":22,\"submitter\":\"eth:0x765c6a8f20c842E8C826B0D9425015784F982aFc\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.5:\n+ {\"sourceOperatorId\":14,\"targetOperatorId\":18,\"submitter\":\"eth:0xd9faE181C6BD5b4CD361b0F08926226a3af274Db\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.6:\n+ {\"sourceOperatorId\":38,\"targetOperatorId\":34,\"submitter\":\"eth:0xcA6817DAb36850D58375A10c78703CE49d41D25a\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.7:\n+ {\"sourceOperatorId\":24,\"targetOperatorId\":9,\"submitter\":\"eth:0x8845D7F2Bbfe82249c3B95e378A6eD039Dd953F5\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.8:\n+ {\"sourceOperatorId\":16,\"targetOperatorId\":2,\"submitter\":\"eth:0x1EC3Cbe8fb1D8019092500CcA2111C158a35bC82\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.9:\n+ {\"sourceOperatorId\":34,\"targetOperatorId\":10,\"submitter\":\"eth:0x944849824A88ffeA23eF7e53b8A6793D88CE7581\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.10:\n+ {\"sourceOperatorId\":34,\"targetOperatorId\":11,\"submitter\":\"eth:0x944849824A88ffeA23eF7e53b8A6793D88CE7581\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.11:\n+ {\"sourceOperatorId\":13,\"targetOperatorId\":16,\"submitter\":\"eth:0xa9995734C3e182aC5FfeFC2a399fb92F971BB1A6\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.12:\n+ {\"sourceOperatorId\":25,\"targetOperatorId\":8,\"submitter\":\"eth:0xC6AACba3a2dF56169aaA93c2947BF7Cea346fDA5\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.13:\n+ {\"sourceOperatorId\":6,\"targetOperatorId\":31,\"submitter\":\"eth:0x904A289145b1FE0B672682db895bAde2EB186126\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.14:\n+ {\"sourceOperatorId\":6,\"targetOperatorId\":32,\"submitter\":\"eth:0x904A289145b1FE0B672682db895bAde2EB186126\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.15:\n+ {\"sourceOperatorId\":23,\"targetOperatorId\":42,\"submitter\":\"eth:0x98B2D0988c4f69303be834C9d0b5DdacD8257880\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.16:\n+ {\"sourceOperatorId\":26,\"targetOperatorId\":36,\"submitter\":\"eth:0x29d5a9917A82Dbb77e3362128C425d3a63eE8E6F\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.17:\n+ {\"sourceOperatorId\":15,\"targetOperatorId\":17,\"submitter\":\"eth:0x5A934D6822a372CFe221C8D2bB02B6DfCd683578\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.18:\n+ {\"sourceOperatorId\":21,\"targetOperatorId\":6,\"submitter\":\"eth:0xF45C77EadD434612fCD93db978B3E36B0D58eC99\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.19:\n+ {\"sourceOperatorId\":30,\"targetOperatorId\":27,\"submitter\":\"eth:0x5a8B929EDBf3CE44526465DD2087EC7EFB59A561\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.20:\n+ {\"sourceOperatorId\":30,\"targetOperatorId\":28,\"submitter\":\"eth:0x5a8B929EDBf3CE44526465DD2087EC7EFB59A561\"}\n+++ description: Currently allowed source and target operator pairs and their dynamically assigned consolidation submitters.\n values.allowedPairs.21:\n+ {\"sourceOperatorId\":10,\"targetOperatorId\":44,\"submitter\":\"eth:0x1d8A932E727331a5e4EAB41b565aFDA9A100476B\"}\n }\n```"
}
]
},
{
"id": "1a7f8fd4",
"date": "Fri, 04 Sep 2026 15:07:58 GMT",
"timestamp": 1788534406,
"description": "Name Lido committee multisigs and the tiebreaker subcommittees after the Lido multisig registry; show the CircuitBreaker, Finance, DepositSecurityModule and TokenManager permission aggregators as actors in their own right; scope the Agent TRANSFER_ROLE description to ETH and ERC-20",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3793\n+ 3783\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6206\n+ 6216\n }\n```"
}
]
},
{
"id": "3970d2c8",
"date": "Tue, 25 Aug 2026 08:54:24 GMT",
"timestamp": 1787647851,
"description": "Fee adjustment.",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3783\n+ 3793\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6216\n+ 6206\n }\n```\n\n```diff\n EOA (eth:0xddD80BC94975C10A2f613511F80bd860FcB76818) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x1f44812af62d28f019e30e8eb2af596fb36c7db9d34576972c0405e110a6ef45\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0xddD80BC94975C10A2f613511F80bd860FcB76818\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0xadb55a1ae85f692b559ec1e9eb19d290078ad89f05860ae2056753b396978fa2\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```"
}
]
},
{
"id": "4bdc8d90",
"date": "Thu, 20 Aug 2026 12:02:26 GMT",
"timestamp": 1787227248,
"description": "Regenerated after fixing the `accessControl` discovery handler.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH] {\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n values.getFeeDistribution.treasuryFeeBasisPoints:\n- 3793\n+ 3783\n values.getFeeDistribution.operatorsFeeBasisPoints:\n- 6206\n+ 6216\n }\n```"
}
]
},
{
"id": "1bb4dd02",
"date": "Mon, 17 Aug 2026 10:06:36 GMT",
"timestamp": 1786960746,
"description": "Wiring for the Lido DAO buyback program's revenue accounting:\n\n- The `LidoLocator` implementation was upgraded only to swap the immutable `postTokenRebaseReceiver` to a redeployed `TokenRateNotifier`.\n- The new `TokenRateNotifier` has two targets: the pre-existing `OpStackTokenRatePusher` and the new `StakingRevenueSource`, which accrues the DAO treasury's fee share of each stETH rebase and converts it into a cumulative USD figure for the buyback program.\n- `StakingRevenueSource` values stETH via the new `OracleRouter`, which reads prices from Chainlink's canonical Feed Registry. The router's admin is the Aragon `Voting` app and its manager is the DAO's `TreasuryManagementCommittee` 4/7 multisig; both can configure feed routes, staleness limits, and activation flags.",
"isHighSeverity": true,
"changeCount": 19,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract TokenRateNotifier (eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9) [N/A]\n +++ description: None\n```\n\n```diff\n contract Voting (eth:0x2e59A20f205bB85a89C53f1936454680651E618e) [lido/Voting] {\n +++ description: Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n receivedPermissions.8:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31\",\"description\":\"appoint the manager and emergency operator of the OracleRouter and configure all token price feed routes, staleness limits and activation flags.\",\"role\":\".ADMIN\"}\n }\n```\n\n```diff\n contract Lido Dao Agent (eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) [lido/LidoDaoAgent] {\n +++ description: The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n directlyReceivedPermissions.26:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\",\"description\":\"add or remove token-rate observers and transfer or renounce ownership.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n contract LidoLocator (eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb) [lido/LidoLocator] {\n +++ description: Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n values.$implementation:\n- \"eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b\"\n+ \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n values.$pastUpgrades.11:\n+ [\"2026-08-14T13:06:35.000Z\",\"0x5a7868439de1003dc5f3d7ecf99826410c17883794bcd38ff75dd0e0bcce57c4\",[\"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"]]\n values.$upgradeCount:\n- 11\n+ 12\n values.oracleReportComponents.4:\n- \"eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9\"\n+ \"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\"\n values.postTokenRebaseReceiver:\n- \"eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9\"\n+ \"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\"\n values.proxy__getImplementation:\n- \"eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b\"\n+ \"eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313\"\n implementationNames.eth:0x0360002bf51DCae1c0267aE0AFDaBacAF7De686b:\n- \"LidoLocator\"\n implementationNames.eth:0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313:\n+ \"LidoLocator\"\n }\n```\n\n```diff\n contract EmergencyProtectedTimelock (eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316) [lido/EmergencyProtectedTimelock] {\n +++ description: Timelock used by Dual Governance. Governance submits and schedules batches, anyone may execute a ready batch, and time-bounded emergency committees can activate emergency mode and execute already submitted proposals without the ordinary schedule delay.\n receivedPermissions.28:\n+ {\"permission\":\"interact\",\"from\":\"eth:0xbe05d12Fd10919F1881125006523452F6aFF791b\",\"description\":\"add or remove token-rate observers and transfer or renounce ownership.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\"},{\"address\":\"eth:0x23E0B465633FF5178808F4A75186E2F2F9537021\"}]}\n }\n```\n\n```diff\n+ Status: CREATED\n reference FeedRegistry (eth:0x47Fb2585D2C56Fe188D0E6ec628a38b74fCeeeDf)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract StakingRevenueSource (eth:0x6220212a33a87Ed7Cc386B67eB2c393974F28C38) [lido/StakingRevenueSource]\n +++ description: Tracks Lido DAO staking revenue for the buyback program: as a TokenRateNotifier observer it accrues the treasury fee share of each stETH rebase and converts it into a monotonic cumulative USD figure at the OracleRouter spot price.\n```\n\n```diff\n+ Status: CREATED\n contract OracleRouter (eth:0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31) [lido/OracleRouter]\n +++ description: Price router that reads token prices from the Chainlink Feed Registry, either directly in USD or via an ETH/USD bridge feed for ETH-quoted tokens, and reports them normalized to 18 decimals.\n```\n\n```diff\n+ Status: CREATED\n reference Chainlink_ETH_USD_Aggregator (eth:0x7d4E742018fb52E48b08BE73d041C18B21de6Fb5)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TreasuryManagementCommittee (eth:0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647) [GnosisSafe]\n +++ description: Multisig of the Lido DAO Treasury Management Committee.\n```\n\n```diff\n+ Status: CREATED\n contract TokenRateNotifier (eth:0xbe05d12Fd10919F1881125006523452F6aFF791b) [lido/TokenRateNotifier]\n +++ description: Notifies registered observer contracts after each stETH rebase (oracle report). Observers either just push the current token rate or additionally receive the full rebase report payload.\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract OpStackTokenRatePusher (eth:0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE) [lido/OpStackTokenRatePusher]\n +++ description: Pushes the current wstETH token rate to the token rate oracle on Optimism via the canonical OP Stack messenger whenever a rebase is reported.\n```"
}
]
},
{
"id": "f3e775e7",
"date": "Wed, 29 Jul 2026 11:42:27 GMT",
"timestamp": 1785325193,
"description": "The Community Staking Module's stake share limit increased from 8.5% to 9%, and its priority-exit threshold increased from 10.2% to 10.8%. The module can receive a larger share of Lido stake before reaching its allocation cap, while its exits become prioritized at the higher threshold.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract StakingRouter (eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999) [lido/StakingRouter] {\n +++ description: Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n values.getStakingModuleStateConfig.2.4:\n- 1020\n+ 1080\n values.getStakingModuleStateConfig.2.3:\n- 850\n+ 900\n }\n```"
}
]
},
{
"id": "e937e3fd",
"date": "Mon, 27 Jul 2026 15:11:46 GMT",
"timestamp": 1785159796,
"description": "Lido v3.0.2 activates Staking Router v3 together with Community Staking\nModule v3 and Curated Module v2. The upgrade adds EIP-7251 support for\nvalidator consolidations and balance top-ups, changes protocol accounting and\nexit limits to use validator balance weights, and extends oracle sanity checks\nfor the new balance flows.\n\nThe release also deploys the stVault system built around VaultHub,\nOperatorGrid, VaultFactory, Dashboard, CoreAccounting, and LazyOracle. It adds\nsupporting contracts for predeposit proofs, EIP-7002 triggerable withdrawals,\nexit penalties, consolidation migration, and the associated governance and\npermission wiring.",
"isHighSeverity": false,
"changeCount": 108,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract DepositContract (eth:0x00000000219ab540356cBB839Cbe05303d7705Fa) [global/DepositContract]\n +++ description: Ethereum Beacon Chain deposit contract.\n```\n\n```diff\n+ Status: CREATED\n contract ExitPenalties (eth:0x004aFb7DAA7dEA20EbAaB75c9F4892C879FaCCe0) [lido/ExitPenalties]\n +++ description: Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n```\n\n```diff\n+ Status: CREATED\n contract VaultFactory (eth:0x02Ca7772FF14a9F6c1a08aF385aA96bb1b34175A) [lido/VaultFactory]\n +++ description: Permissionless factory for StakingVaults and their Dashboard management contracts. It deploys beacon proxies, initializes their code-defined authorities, and optionally connects the vault to VaultHub.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x06A56487494aa080deC7Bf69128EdA9225784553) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract ExitPenalties (eth:0x06cd61045f958A209a0f8D746e103eCc625f4193) [lido/ExitPenalties]\n +++ description: Records delayed-exit, triggerable-withdrawal, and poor-performance penalties for a permissionless staking module.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorsExitBusOracle (eth:0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e) [lido/ValidatorsExitBusOracle]\n +++ description: Receives committee-consensus lists of validators that staking modules must exit and emits the exit requests. SRv3 accounts for the validators' effective-balance weights and key indices when applying per-report and replenishing exit limits.\n```\n\n```diff\n+ Status: CREATED\n contract OracleReportSanityChecker (eth:0x147f8d3cf3004FAf9Bf94E88B54b6C06De507be9) [lido/OracleReportSanityChecker]\n +++ description: Validates AccountingOracle report values against configurable safety limits. The version 3 checker covers validator balance flows, consolidations, external pending balances, triggerable exits, and EIP-7251 balance weights.\n```\n\n```diff\n+ Status: CREATED\n contract Escrow (eth:0x165813A31446a98c84E20Dda8C101BB3C8228e1c) [lido/Escrow]\n +++ description: Dual Governance escrow in which holders lock stETH, wstETH or unstETH to build veto support. It can be irreversibly converted into a Rage Quit escrow that withdraws the locked position as ETH.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationGateway (eth:0x17be979344f2c2cC806229a532D92f8742C10462) [lido/ConsolidationGateway]\n +++ description: Validates validator ownership proofs and submits EIP-7251 consolidation requests through the protocol consolidation-request predeploy. It rate-limits the amount consolidated and preserves its ETH balance across requests.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x18A1065c81b0Cc356F1b1C843ddd5E14e4AefffF) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract VaultHub (eth:0x1d201BE093d847f6446530Efb0E8Fb426d176709) [lido/VaultHub]\n +++ description: The central registry and lifecycle manager for stVaults connected to Lido. It enforces collateral and risk parameters, tracks vault reports and liabilities, mints and burns stETH shares, settles fees, rebalances unhealthy vaults, and manages bad debt.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x207798e6fD1aa7Ee8a63782A64c959cD6727b78C) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Executor (eth:0x23E0B465633FF5178808F4A75186E2F2F9537021) [lido/Executor]\n +++ description: External-call executor used by the Dual Governance timelock. Its owner can make it call any target with arbitrary calldata and ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Core Accounting (eth:0x23ED611be0e1a820978875C0122F92260804cdDf) [lido/CoreAccounting]\n +++ description: Calculates and applies a complete Lido oracle report: it reconciles validator balances, smooths the rebase, collects vault balances, finalizes withdrawals, burns shares, distributes module rewards, and updates stETH accounting.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x2570e0b22AD904501dfB0d49575991ACB801dD91) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TokenRateNotifier (eth:0x25e35855783bec3E49355a29e110f02Ed8b05ba9) [lido/TokenRateNotifier]\n +++ description: Pushes the current stETH token rate to registered observer contracts after rebases.\n```\n\n```diff\n+ Status: CREATED\n contract VaultsAdapter (eth:0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27) [lido/VaultsAdapter]\n +++ description: EasyTrack adapter for stVault administration. The EVMScriptExecutor may change vault fees and jail status, liability targets, socialize bad debt, and force validator exits; a separate trusted caller controls the maximum exit fee and ETH recovery.\n```\n\n```diff\n+ Status: CREATED\n contract Dashboard (eth:0x294825c2764c7D412dc32d87E2242c4f1D989AF3) [lido/Dashboard]\n +++ description: The standard role-based management interface for a StakingVault. It owns the underlying vault, routes funding, withdrawals, stETH minting and burning through VaultHub, controls validator operations, and accounts for the node operator fee.\n```\n\n```diff\n+ Status: CREATED\n contract Voting (eth:0x2e59A20f205bB85a89C53f1936454680651E618e) [lido/Voting]\n +++ description: Lido DAO's Aragon token voting application. LDO holders vote on executable DAO scripts, with configurable support, quorum, vote duration, and an objection phase.\n```\n\n```diff\n+ Status: CREATED\n contract Accounting (eth:0x2F91e3A8C5d6593bf4F8403fCfeCcd62dF59f6F6) [lido/Accounting]\n +++ description: Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n```\n\n```diff\n+ Status: CREATED\n contract FeeDistributor (eth:0x367d23c756599c20DCc8D6943F4976E8F88D60d7) [lido/FeeDistributor]\n +++ description: Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n```\n\n```diff\n+ Status: CREATED\n contract Execution Layer Rewards Vault (eth:0x388C818CA8B9251b393131C08a736A67ccB19297) [lido/LidoExecutionLayerRewardsVault]\n +++ description: Holds execution-layer validator rewards until stETH accounting collects them during an oracle report.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x3BbBb175f7F07954DE00052b20E1c5572223F24D) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0x3D3ba54D54bbFF40F2Dfa2A8e27bD4dE3dab2951) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract Lido Dao Agent (eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) [lido/LidoDaoAgent]\n +++ description: The Lido DAO's Aragon execution and treasury agent. It can transfer assets, execute arbitrary calls or scripts, and validate signatures according to granular ACL permissions.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x3eda1e756Ba9aC0217Ac8fc5db4C5E9a8486d9c4) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract TopUpGateway (eth:0x3FC2C71579D80790Aaa3fc7Be8B66ac39dC57374) [lido/TopUpGateway]\n +++ description: Validates consensus-layer proofs and submits EIP-7251 validator top-ups for staking modules. It limits top-up batch size, proof age, and call frequency.\n```\n\n```diff\n+ Status: CREATED\n contract FeeOracle (eth:0x4D4074628678Bd302921c20573EEa1ed38DdF7FB) [lido/FeeOracle]\n +++ description: Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n```\n\n```diff\n+ Status: CREATED\n contract Accounting (eth:0x4d72BFF1BeaC69925F8Bd12526a39BAAb069e5Da) [lido/Accounting]\n +++ description: Manages node-operator bonds for a permissionless staking module. It accepts ETH, stETH and wstETH bonds, applies bond curves, locks or penalizes bond, and lets eligible node-operator addresses claim rewards after the module's fee distribution.\n```\n\n```diff\n+ Status: CREATED\n contract NodeOperatorsRegistry (eth:0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5) [lido/NodeOperatorsRegistry]\n +++ description: Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n```\n\n```diff\n+ Status: CREATED\n contract TimelockedGovernance (eth:0x553337946F2FAb8911774b20025fa776B76a7CcE) [lido/TimelockedGovernance]\n +++ description: Emergency governance adapter. Its configured governance may submit and cancel proposals in the EmergencyProtectedTimelock; scheduling is permissionless once the submission delay has elapsed.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO Token (eth:0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32) [lido/MiniMeToken]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CallsScript (eth:0x5cEb19e1890f677c3676d5ecDF7c501eBA01A054) [lido/CallsScript]\n +++ description: Petrified Aragon CallsScript executor library used by the Lido DAO and EasyTrack to decode and perform a batch of external calls.\n```\n\n```diff\n+ Status: CREATED\n contract LazyOracle (eth:0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c) [lido/LazyOracle]\n +++ description: Verifies cryptographic oracle reports for individual stVaults and forwards accepted total-value, fee, and liability updates to VaultHub. Reports outside configured rate, reward, or quarantine bounds are rejected or quarantined.\n```\n\n```diff\n+ Status: CREATED\n contract UpgradeableBeacon (eth:0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789) [global/UpgradeableBeacon]\n +++ description: A beacon with an upgradeable implementation currently set as eth:0x06A56487494aa080deC7Bf69128EdA9225784553. Beacon proxy contracts pointing to this beacon will all use its implementation.\n```\n\n```diff\n+ Status: CREATED\n contract CircuitBreaker (eth:0x6019CB557978296BA3C08a7B73225C0975DFB2F7) [lido/CircuitBreaker]\n +++ description: Emergency pause coordinator. The admin assigns one heartbeat-gated pauser to each registered protocol contract; a live pauser can trigger one time-bounded pause before its assignment is consumed.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x6093EFA6B5E2FF3be54d1c895c9deA932805c49F) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Ejector (eth:0x610B517D380f287c239C93F8eF6FfBd567AA4bA5) [lido/Ejector]\n +++ description: Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0x62e0D92cf7B8752b5292B9BCbbacE4cFa1633428) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x71093efF8D8599b5fA340D665Ad60fA7C80688e4) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract Lido Multisig 1 (eth:0x73b047fe6337183A454c5217241D780a932777bD) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x773933F9db8964A17d62fb808f2EC7A2de4247CC) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract ResealManager (eth:0x7914b5a1539b97Bd0bbd155757F25FD79A522d24) [lido/ResealManager]\n +++ description: Adapter that lets the governance configured in the EmergencyProtectedTimelock indefinitely extend an existing pause or resume a supported sealable contract.\n```\n\n```diff\n+ Status: CREATED\n contract Wrapped liquid staked Ether 2.0 Token (eth:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0) [lido/wstETH]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract AccountingOracle (eth:0x852deD011285fe67063a08005c71a85690503Cee) [lido/AccountingOracle]\n +++ description: Receives committee-consensus reports of Lido's Beacon Chain balances, validator state, withdrawals, and staking-module accounting data, then drives the stETH accounting rebase and related protocol updates.\n```\n\n```diff\n+ Status: CREATED\n contract EVMScriptRegistry (eth:0x853cc0D5917f49B57B8e9F89e491F5E18919093A) [lido/EVMScriptRegistry]\n +++ description: Aragon registry of EVM script executors used by Lido DAO applications.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x86A8d4E0db5938D21d98047544668FCCB1A9ADc8) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0x8772E3a2D86B9347A2688f9bc1808A6d8917760C) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawalQueueERC721 (eth:0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1) [lido/WithdrawalQueueERC721]\n +++ description: Queues stETH and wstETH withdrawal requests as transferable NFTs. Oracle reports can enter bunker mode and finalize batches by supplying ETH and a maximum share rate, after which NFT owners claim ETH.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8B7854488Fde088d686Ea672B6ba1A5242515f45) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0x8c002c6eE10cf8adb78D1F9EB2e134FdaF8A7C1a) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0x8ed4dfd3A610CCF1FB45e797bf5D8e0f93084F22) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract FeeOracle (eth:0x8EeFCdbD984c30E472BcbF545783D051CB5114e5) [lido/FeeOracle]\n +++ description: Receives committee-consensus reports containing a staking module's reward-distribution Merkle root and forwards them to FeeDistributor and ValidatorStrikes.\n```\n\n```diff\n+ Status: CREATED\n contract EIP712StETH (eth:0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7) [lido/EIP712StETH]\n +++ description: Stateless helper that builds the stETH EIP-712 domain separator and typed-data hashes.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0x902D64c93F6595339aA46105627a085591051aFb) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract MiniMeTokenFactory (eth:0x909d05F384D0663eD4BE59863815aB43b4f347Ec) [lido/MiniMeTokenFactory]\n +++ description: Immutable factory used by LDO's MiniMe token implementation to create snapshot-enabled token clones.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO ACL (eth:0x9895F0F17cc1d1891b6f18ee0b483B6f221b37Bb) [lido/ACL]\n +++ description: The shared Aragon ACL that stores Lido DAO permission grants, optional permission parameters, and the manager allowed to grant or revoke each app role.\n```\n\n```diff\n+ Status: CREATED\n contract ParametersRegistry (eth:0x9D28ad303C90DF524BA960d7a2DAC56DcC31e428) [lido/ParametersRegistry]\n +++ description: Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationMigrator (eth:0x9Dc70b5A4f4F5E4AF9058C983D560564F031f1D7) [lido/ConsolidationMigrator]\n +++ description: Coordinates the one-time migration of eligible Curated Module v1 validators into Curated Module v2 through the delayed ConsolidationBus pipeline.\n```\n\n```diff\n+ Status: CREATED\n contract VettedGate (eth:0xa12760721A72A7199aB38059DA6690b9Cd4ed7B8) [lido/VettedGate]\n +++ description: Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n```\n\n```diff\n+ Status: CREATED\n contract ImmutableDualGovernanceConfigProvider (eth:0xa1692Af6FDfdD1030E4E9c4Bc429986FA64CB5EF) [lido/ImmutableDualGovernanceConfigProvider]\n +++ description: Immutable Dual Governance timing and veto-threshold configuration. Replacing the provider in DualGovernance is the only way to change these parameters.\n```\n\n```diff\n+ Status: CREATED\n contract MetaRegistry (eth:0xA64b339eebD3dC3De848298B6a140955932901d8) [lido/MetaRegistry]\n +++ description: Stores metadata that groups permissionless staking-module node operators, describes their operators, and assigns bond-curve weights.\n```\n\n```diff\n+ Status: CREATED\n contract wstETH Referral Staker (eth:0xa88f0329C2c4ce51ba3fc619BBf44efE7120Dd0d) [lido/WstETHReferralStaker]\n +++ description: Permissionless convenience contract that stakes supplied ETH in Lido with a caller-selected referral, wraps the resulting stETH, and returns wstETH to the caller.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorStrikes (eth:0xaa328816027F2D32B9F56d190BC9Fa4A5C07637f) [lido/ValidatorStrikes]\n +++ description: Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorConsolidationRequests (eth:0xaC4Aae7123248684C405A4b0038C1560EC7fE018) [lido/ValidatorConsolidationRequests]\n +++ description: Read-only stVault helper that validates a Dashboard's ownership of a connected StakingVault and builds the EIP-7251 consolidation-request calldata and fee-exemption call for its source and target validators.\n```\n\n```diff\n+ Status: CREATED\n contract Liquid staked Ether 2.0 Token (eth:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84) [lido/stETH]\n +++ description: The rebasing stETH token and Lido protocol accounting entrypoint. It accepts stake, accounts for consensus- and execution-layer balances, mints and burns shares, and applies oracle reports. Version 3 adds external stake-backed shares and balance-based validator accounting.\n```\n\n```diff\n+ Status: CREATED\n contract NodeOperatorsRegistry (eth:0xaE7B191A31f627b4eB1d4DaC64eaB9976995b433) [lido/NodeOperatorsRegistry]\n +++ description: Legacy permissioned staking module for curated node operators. It stores validator keys, receives deposits from the StakingRouter, tracks exited and stuck validators, and distributes module rewards.\n```\n\n```diff\n+ Status: CREATED\n contract VettedGate (eth:0xB314D4A76C457c93150d308787939063F4Cc67E0) [lido/VettedGate]\n +++ description: Merkle-gated node-operator onboarding contract. Eligible addresses can create an operator using the configured bond curve, or an existing operator owner can consume a proof to claim that curve.\n```\n\n```diff\n+ Status: CREATED\n contract PermissionlessGate (eth:0xb8cd8F059Ad7a5dB8CAfDe34aAb007317F7156C8) [lido/PermissionlessGate]\n +++ description: Permissionless Community Staking Module onboarding contract. Any address can create a node operator using its fixed bond curve by depositing ETH, stETH or wstETH.\n```\n\n```diff\n+ Status: CREATED\n contract Lido DAO Kernel (eth:0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc) [lido/Kernel]\n +++ description: The Lido DAO's Aragon Kernel. It registers DAO applications and their implementation bases and points them to the shared ACL.\n```\n\n```diff\n+ Status: CREATED\n contract WithdrawalVault (eth:0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f) [lido/WithdrawalVault]\n +++ description: Holds consensus-layer withdrawals and pays protocol predeploy fees. It lets stETH collect withdrawn ETH and lets the designated gateways submit EIP-7002 withdrawal and EIP-7251 consolidation requests.\n```\n\n```diff\n+ Status: CREATED\n contract Finance (eth:0xB9E5CBB9CA5b0d659238807E84D0176930753d86) [lido/Finance]\n +++ description: Lido DAO's Aragon Finance application. ACL roles create and execute one-time or recurring treasury payments and change their budgets, recipients, amounts and accounting period.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorExitDelayVerifier (eth:0xbDb567672c867DB533119C2dcD4FB9d8b44EC82f) [lido/ValidatorExitDelayVerifier]\n +++ description: Permissionless EIP-4788 proof verifier that detects validators which remained active after a ValidatorExitBus exit request and reports their exit delay to the StakingRouter.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0xBF048f2111497B6Df5E062811f5fC422804D4baE) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract OracleDaemonConfig (eth:0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09) [lido/OracleDaemonConfig]\n +++ description: Stores key-value configuration consumed by Lido's off-chain oracle daemon.\n```\n\n```diff\n+ Status: CREATED\n contract LidoLocator (eth:0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb) [lido/LidoLocator]\n +++ description: Canonical registry of the active Lido core, oracle, staking, withdrawal, top-up, consolidation, and StakingVault subsystem contract addresses.\n```\n\n```diff\n+ Status: CREATED\n contract DualGovernance (eth:0xC1db28B3301331277e307FDCfF8DE28242A4486E) [lido/DualGovernance]\n +++ description: Lido Dual Governance state machine. Registered proposers submit calls through an associated executor, while stETH, wstETH and unstETH holders can lock assets in an escrow to delay or stop governance execution and enter Rage Quit.\n```\n\n```diff\n+ Status: CREATED\n contract Community Staking Module Verifier (eth:0xC392F457960f1B13Ebaf1aa6C065479dD507E1E3) [lido/CSVerifier]\n +++ description: Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (eth:0xC52fC3081123073078698F1EAc2f1Dc7Bd71880f) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OperatorGrid (eth:0xC69685E89Cefc327b43B7234AC646451B27c544d) [lido/OperatorGrid]\n +++ description: Registry of stVault node-operator groups and risk tiers. It defines per-tier share limits, reserve ratios, forced-rebalance thresholds and fees, coordinates two-party tier changes, and can jail vaults.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xC7792b3F2B399bB0EdF53fECDceCeB97FBEB18AF) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract EmergencyProtectedTimelock (eth:0xCE0425301C85c5Ea2A0873A2dEe44d78E02D2316) [lido/EmergencyProtectedTimelock]\n +++ description: Timelock used by Dual Governance. Governance submits and schedules batches, anyone may execute a ready batch, and time-bounded emergency committees can activate emergency mode and execute already submitted proposals without the ordinary schedule delay.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0xd402937b3Ff3c187f727C1146a9E846275E9F711) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract HashConsensus (eth:0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288) [lido/HashConsensus]\n +++ description: Collects report hashes from an enumerable oracle committee and forwards a report to its processor once quorum agrees. It defines report frames, quorum, fast-lane members, and the report processor.\n```\n\n```diff\n+ Status: CREATED\n contract ConsolidationBus (eth:0xd907CE33B4Be423823d1CFFe80BD147E8b8554C8) [lido/ConsolidationBus]\n +++ description: Queues validator consolidation batches and, after an execution delay, forwards proven EIP-7251 requests to ConsolidationGateway.\n```\n\n```diff\n+ Status: CREATED\n contract FeeDistributor (eth:0xD99CC66fEC647E68294C6477B40fC7E0F6F618D0) [lido/FeeDistributor]\n +++ description: Receives a staking module's stETH fee shares and distributes them to node operators according to a Merkle tree submitted by its FeeOracle. Claims are accounted in stETH shares.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedModule (eth:0xDa5F930cE326EB5205085D66c72A4E79d60cB8C1) [lido/CuratedModule]\n +++ description: The permissioned Curated Staking Module. It manages approved node operators and validator keys, accepts deposits and top-ups from the StakingRouter, and processes validator lifecycle reports and penalties.\n```\n\n```diff\n+ Status: CREATED\n contract CSModule (eth:0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F) [lido/CSModule]\n +++ description: Lido's permissionless Community Staking Module. It manages node operators and validator keys, accepts router deposits and top-ups, processes validator exits, and applies bond-backed penalties.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerSubCommittee (eth:0xDBfa0B8A15a503f25224fcA5F84a3853230A715C) [lido/TiebreakerSubCommittee]\n +++ description: A tiebreaker subcommittee whose members reach quorum on a proposal before forwarding it to the top-level tiebreaker committee.\n```\n\n```diff\n+ Status: CREATED\n contract TriggerableWithdrawalsGateway (eth:0xDC00116a0D3E064427dA2600449cfD2566B3037B) [lido/TriggerableWithdrawalsGateway]\n +++ description: The permissioned entrypoint for full EIP-7002 validator withdrawals. It charges the current request fee, applies a replenishing global exit limit, forwards requests to WithdrawalVault, and notifies StakingRouter.\n```\n\n```diff\n+ Status: CREATED\n contract Ejector (eth:0xe181A377A2d2BDE9A83f1474BC3DB7A412de091E) [lido/Ejector]\n +++ description: Submits triggerable full-withdrawal requests for validators. Node operators may voluntarily eject their own validators, while ValidatorStrikes can eject validators for poor performance.\n```\n\n```diff\n+ Status: CREATED\n contract StakingVault (eth:0xE2cC063DEc5685718Bd57aAC6AEE9941b25b7c37) [lido/StakingVault]\n +++ description: An isolated staking position that holds ETH for validators with 0x02 withdrawal credentials. The owner controls funds and validator operations, the depositor performs Beacon Chain deposits, and the node operator can force validator exits. Vaults normally use a beacon implementation but can irreversibly pin their current implementation.\n```\n\n```diff\n+ Status: CREATED\n contract Burner (eth:0xE76c52750019b80B43E36DF30bf4060EB73F573a) [lido/Burner]\n +++ description: Escrows stETH shares requested for cover or non-cover burning and burns them during an oracle report. Excess stETH can be recovered into the Lido protocol during migration.\n```\n\n```diff\n+ Status: CREATED\n contract CuratedGate (eth:0xeF273Ca4A21Ba7B414Ae3C9f9b443038cb133F72) [lido/CuratedGate]\n +++ description: Merkle-gated onboarding contract for a curated Community Staking Module cohort. An eligible address consumes its proof to create a node operator with this gate's configured bond curve and metadata group.\n```\n\n```diff\n+ Status: CREATED\n contract EasyTrack (eth:0xF0211b7660680B49De1A7E9f25C65660F0a13Fea) [lido/EasyTrack]\n +++ description: Optimistic Lido DAO motion system. Approved factories restrict the target and selector of each motion; LDO holders can object, and an unobstructed motion is executed through the EVMScriptExecutor after its delay.\n```\n\n```diff\n+ Status: CREATED\n contract ValidatorStrikes (eth:0xf4618370a1fBf46905B16C10817c8CFaD924D6db) [lido/ValidatorStrikes]\n +++ description: Stores the oracle-provided Merkle root of validator performance strikes. Proven strike data can cause a poor-performing validator to be ejected and penalized.\n```\n\n```diff\n+ Status: CREATED\n contract PredepositGuarantee (eth:0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3) [lido/PredepositGuarantee]\n +++ description: Protects StakingVault deposits by proving validator withdrawal credentials and requiring an initial predeposit before the remaining validator deposit is sent.\n```\n\n```diff\n+ Status: CREATED\n contract DepositSecurityModule (eth:0xF573E9E3de1f86B085417ab294f56E7920B4e9Be) [lido/DepositSecurityModule]\n +++ description: Guardian-based circuit breaker for legacy staking-module deposits. Guardians can collectively pause deposits if a malicious or stale deposit is observed, while the owner configures guardians and resumes deposits.\n```\n\n```diff\n+ Status: CREATED\n contract TiebreakerCoreCommittee (eth:0xf65614d73952Be91ce0aE7Dd9cFf25Ba15bEE2f5) [lido/TiebreakerCoreCommittee]\n +++ description: Top-level Dual Governance tiebreaker committee. Its members reach quorum to schedule a delayed governance proposal or resume a paused sealable contract when Dual Governance is tied.\n```\n\n```diff\n+ Status: CREATED\n contract TokenManager (eth:0xf73a1260d222f447210581DDf212D915c09a3249) [lido/TokenManager]\n +++ description: Aragon TokenManager for LDO. Its ACL roles can issue supply, mint or burn LDO, assign vested balances, and revoke vesting.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xf8Bfa395744Cb25fa4368Ffe2344Dc35546092d9) [GnosisSafe]\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MEV Boost Relay Allowed List (eth:0xF95f069F9AD107938F6ba802a3da87892298610E) [lido/MEVBoostRelayAllowedList]\n +++ description: Registry of MEV-Boost relay endpoints supported by Lido node operators. The list distinguishes mandatory relays from optional relays and is consumed offchain.\n```\n\n```diff\n+ Status: CREATED\n contract Community Staking Module Verifier (eth:0xfce7aB839e55de77730716D05b3553e45ab3A5Ba) [lido/CSVerifier]\n +++ description: Permissionless beacon-state proof verifier for a Community Staking Module. Valid proofs report validator balances, withdrawals and slashing to the connected module.\n```\n\n```diff\n+ Status: CREATED\n contract StakingRouter (eth:0xFdDf38947aFB03C621C71b06C9C70bce73f12999) [lido/StakingRouter]\n +++ description: Coordinates Lido staking modules, allocates deposits and top-ups, tracks validator balances and exit states, and distributes staking rewards. Version 3 uses validator balances instead of validator counts and supports EIP-7251 compounding validators.\n```\n\n```diff\n+ Status: CREATED\n contract EVMScriptExecutor (eth:0xFE5986E06210aC1eCC1aDCafc0cc7f8D63B3F977) [lido/EVMScriptExecutor]\n +++ description: EasyTrack execution adapter. It executes the Aragon CallsScript produced by an approved EasyTrack motion, making downstream calls from this contract's address.\n```\n\n```diff\n+ Status: CREATED\n contract ParametersRegistry (eth:0xffC1C5d59CeAC6F6c27E701F04a70cb50474607C) [lido/ParametersRegistry]\n +++ description: Stores configurable Community Staking Module parameters, including bond curves, operator rewards, penalties, key limits, queue policy, performance thresholds, and validator-exit rules.\n```\n\n```diff\n+ Status: CREATED\n contract Safe (eth:0xFFe21561251c49AdccFad065C94Fb4931dF49081) [GnosisSafe]\n +++ description: None\n```"
}
]
}
]
+16 -9
+1 -8
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Gelato Multisig",
"name": "Gelato Multisig",
"description": "A Multisig with 3/5 threshold. \nMember of Lisk Multisig.\n* Can upgrade **with no delay**\n * SystemConfig [via: Lisk Multisig → ProxyAdmin]\n * DisputeGameFactory [via: Lisk Multisig → ProxyAdmin]\n * L1StandardBridge [via: Lisk Multisig → ProxyAdmin]\n * OptimismPortal2 [via: Lisk Multisig → ProxyAdmin]\n * L1CrossDomainMessenger [via: Lisk Multisig → ProxyAdmin]\n * DelayedWETH [via: Lisk Multisig → ProxyAdmin]\n * L1ERC721Bridge [via: Lisk Multisig → ProxyAdmin]\n * AnchorStateRegistry [via: Lisk Multisig → ProxyAdmin]\n * OptimismMintableERC20Factory [via: Lisk Multisig → ProxyAdmin]\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system \n* Can interact with PermissionedDisputeGame\n * Allowed to challenge or delete state roots proposed by a Proposer \n* Can interact with AddressManager\n * set and change address mappings [via: Lisk Multisig → ProxyAdmin]\n* Can interact with DelayedWETH\n * can pull funds from the contract in case of emergency [via: Lisk Multisig]",
"description": "A Multisig with 3/4 threshold. \nMember of Lisk Multisig.\n* Can upgrade **with no delay**\n * SystemConfig [via: Lisk Multisig → ProxyAdmin]\n * DisputeGameFactory [via: Lisk Multisig → ProxyAdmin]\n * L1StandardBridge [via: Lisk Multisig → ProxyAdmin]\n * OptimismPortal2 [via: Lisk Multisig → ProxyAdmin]\n * L1CrossDomainMessenger [via: Lisk Multisig → ProxyAdmin]\n * DelayedWETH [via: Lisk Multisig → ProxyAdmin]\n * L1ERC721Bridge [via: Lisk Multisig → ProxyAdmin]\n * AnchorStateRegistry [via: Lisk Multisig → ProxyAdmin]\n * OptimismMintableERC20Factory [via: Lisk Multisig → ProxyAdmin]\n* Can interact with SystemConfig\n * it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system \n* Can interact with PermissionedDisputeGame\n * Allowed to challenge or delete state roots proposed by a Proposer \n* Can interact with AddressManager\n * set and change address mappings [via: Lisk Multisig → ProxyAdmin]\n* Can interact with DelayedWETH\n * can pull funds from the contract in case of emergency [via: Lisk Multisig]",
"accounts": [
{
"address": "eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb",
"type": "Contract",
"isVerified": true,
"name": "0xBeA2…9Bbb",
"url": "https://etherscan.io/address/0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x691C2EF68e25E620fa6cAdE2728f6aE34F37aAD2",
"type": "EOA",
"isVerified": true,
"name": "0x691C…aAD2",
"url": "https://etherscan.io/address/0x691C2EF68e25E620fa6cAdE2728f6aE34F37aAD2"
},
{
"address": "eth:0x6a0A93Cd6d6FB7a36bF6234ef4650Bf9474e7682",
"type": "EOA",
"isVerified": true,
"name": "0x6a0A…7682",
"url": "https://etherscan.io/address/0x6a0A93Cd6d6FB7a36bF6234ef4650Bf9474e7682"
},
{
"address": "eth:0x88De44422E1b1c30bc530c35aEdb9f5aD0e6fD52",
"type": "EOA",
"isVerified": true,
"name": "0x88De…fD52",
"url": "https://etherscan.io/address/0x88De44422E1b1c30bc530c35aEdb9f5aD0e6fD52"
},
{
"address": "eth:0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e",
"type": "EOA",
"isVerified": true,
"name": "0x01a0…c32e",
"url": "https://etherscan.io/address/0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e"
},
{
"address": "eth:0x547D0F472309e4239b296D01e03bEDc101241a26",
"type": "EOA",
"isVerified": true,
"name": "0x547D…1a26",
"url": "https://etherscan.io/address/0x547D0F472309e4239b296D01e03bEDc101241a26"
}
],
"discoveryDrivenData": true
},
{
"id": "OpFoundationUpgradeSafe",
"name": "OpFoundationUpgradeSafe",
"description": "A Multisig with 5/7 threshold. It uses the following modules: SaferSafes (A Gnosis Safe module combining LivenessModule and TimelockGuard. Provides liveness checks where a fallback owner can challenge and take over if Safe owners are unresponsive, plus optional timelock delays for transaction scheduling).\nMember of SuperchainProxyAdminOwner.\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) [via: LivenessModule if the number of Optimism Security Council members falls below 8 → Optimism Security Council → Optimism Guardian Multisig]",
"accounts": [
{
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"type": "Contract",
"isVerified": true,
"name": "0x847B…9D92",
"url": "https://etherscan.io/address/0x847B5c174615B1B7fDF770882256e2D3E95b9D92"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xf1EfbdC2C0BDC4554E0f1639D7fe88cD870a4639",
"type": "EOA",
"isVerified": true,
"name": "0xf1Ef…4639",
"url": "https://etherscan.io/address/0xf1EfbdC2C0BDC4554E0f1639D7fe88cD870a4639"
},
{
"address": "eth:0x3041BA32f451F5850c147805F5521AC206421623",
"type": "EOA",
"isVerified": true,
"name": "0x3041…1623",
"url": "https://etherscan.io/address/0x3041BA32f451F5850c147805F5521AC206421623"
},
{
"address": "eth:0xC2Db495f5a1F91172A361AAFA6FdE47c41de6dF5",
"type": "EOA",
"isVerified": true,
"name": "0xC2Db…6dF5",
"url": "https://etherscan.io/address/0xC2Db495f5a1F91172A361AAFA6FdE47c41de6dF5"
},
{
"address": "eth:0x7F1D4FE689B73B628285454667B93cfd09409f27",
"type": "EOA",
"isVerified": true,
"name": "0x7F1D…9f27",
"url": "https://etherscan.io/address/0x7F1D4FE689B73B628285454667B93cfd09409f27"
},
{
"address": "eth:0x4D014f3c5F33Aa9Cd1Dc29ce29618d07Ae666d15",
"type": "EOA",
"isVerified": true,
"name": "0x4D01…6d15",
"url": "https://etherscan.io/address/0x4D014f3c5F33Aa9Cd1Dc29ce29618d07Ae666d15"
},
{
"address": "eth:0x69acfE2096Dfb8d5A041eF37693553c48d9BFd02",
"type": "EOA",
"isVerified": true,
"name": "0x69ac…Fd02",
"url": "https://etherscan.io/address/0x69acfE2096Dfb8d5A041eF37693553c48d9BFd02"
},
{
"address": "eth:0xa2A58E31C03C59e34ab4d996d811DA0C035BfDea",
"type": "EOA",
"isVerified": true,
"name": "0xa2A5…fDea",
"url": "https://etherscan.io/address/0xa2A58E31C03C59e34ab4d996d811DA0C035BfDea"
}
],
"discoveryDrivenData": true
},
{
"id": "SaferSafes",
"name": "SaferSafes",
"accounts": [
{
"address": "eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a",
"type": "Contract",
"isVerified": true,
"name": "0xA844…483a",
"url": "https://etherscan.io/address/0xA8447329e52F64AED2bFc9E7a2506F7D369f483a"
}
],
"chain": "ethereum",
"description": "A Gnosis Safe module combining LivenessModule and TimelockGuard. Provides liveness checks where a fallback owner can challenge and take over if Safe owners are unresponsive, plus optional timelock delays for transaction scheduling.\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) [via: OpFoundationUpgradeSafe → LivenessModule if the number of Optimism Security Council members falls below 8 → Optimism Security Council → Optimism Guardian Multisig]",
"discoveryDrivenData": true
},
{
"id": "Optimism Security Council",
"name": "Optimism Security Council",
"description": "A Multisig with 10/13 threshold. It uses the following modules: LivenessModule (used to remove members inactive for 3mo 8d while making sure that the threshold remains above 75%. If the number of members falls below 8, the OpFoundationUpgradeSafe takes ownership of the multisig).\nMember of Optimism Guardian Multisig, SuperchainProxyAdminOwner.\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) [via: Optimism Guardian Multisig]",
"accounts": [
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "0xc281…Bd03",
"url": "https://etherscan.io/address/0xc2819DC788505Aac350142A7A707BF9D03E3Bd03"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xE61F12136bA47De67D15a1D59fE2f383ec5176aE",
"type": "EOA",
"isVerified": true,
"name": "0xE61F…76aE",
"url": "https://etherscan.io/address/0xE61F12136bA47De67D15a1D59fE2f383ec5176aE"
},
{
"address": "eth:0x652BC529E171847E2fFddCeA13567643C84ccB5f",
"type": "EOA",
"isVerified": true,
"name": "0x652B…cB5f",
"url": "https://etherscan.io/address/0x652BC529E171847E2fFddCeA13567643C84ccB5f"
},
{
"address": "eth:0x5c1f9E9384Ca9fE0499277F6a015a2ac0A317a81",
"type": "EOA",
"isVerified": true,
"name": "0x5c1f…7a81",
"url": "https://etherscan.io/address/0x5c1f9E9384Ca9fE0499277F6a015a2ac0A317a81"
},
{
"address": "eth:0x4A7322258c9E690e4CB8Cea6e5251443E956e61E",
"type": "EOA",
"isVerified": true,
"name": "0x4A73…e61E",
"url": "https://etherscan.io/address/0x4A7322258c9E690e4CB8Cea6e5251443E956e61E"
},
{
"address": "eth:0x3A53B4B081Eb7Cb00C46497b16Ea22e65E4Faa94",
"type": "EOA",
"isVerified": true,
"name": "0x3A53…aa94",
"url": "https://etherscan.io/address/0x3A53B4B081Eb7Cb00C46497b16Ea22e65E4Faa94"
},
{
"address": "eth:0xEF9A98511939eEe6Ec69af62082E3F2ff606877c",
"type": "EOA",
"isVerified": true,
"name": "0xEF9A…877c",
"url": "https://etherscan.io/address/0xEF9A98511939eEe6Ec69af62082E3F2ff606877c"
},
{
"address": "eth:0x6323ef2b80030f3fBc508bFc321Fc71fDB95c865",
"type": "EOA",
"isVerified": true,
"name": "0x6323…c865",
"url": "https://etherscan.io/address/0x6323ef2b80030f3fBc508bFc321Fc71fDB95c865"
},
{
"address": "eth:0xd5b735b676A043a53946C3b6F6BE28c1ECE6aC90",
"type": "EOA",
"isVerified": true,
"name": "0xd5b7…aC90",
"url": "https://etherscan.io/address/0xd5b735b676A043a53946C3b6F6BE28c1ECE6aC90"
},
{
"address": "eth:0x7ed8d9Af9eaA194D1A75C67c1475579E42289E39",
"type": "EOA",
"isVerified": true,
"name": "0x7ed8…9E39",
"url": "https://etherscan.io/address/0x7ed8d9Af9eaA194D1A75C67c1475579E42289E39"
},
{
"address": "eth:0xd91530dB01c60C6B3b824707D33fb0771aB85930",
"type": "EOA",
"isVerified": true,
"name": "0xd915…5930",
"url": "https://etherscan.io/address/0xd91530dB01c60C6B3b824707D33fb0771aB85930"
},
{
"address": "eth:0x0a8742365a7EB0A3698293ac54357B5Ac04cefE6",
"type": "EOA",
"isVerified": true,
"name": "0x0a87…efE6",
"url": "https://etherscan.io/address/0x0a8742365a7EB0A3698293ac54357B5Ac04cefE6"
},
{
"address": "eth:0xbfA046B0bc5cEa1596be62B8b3f79f9f41f1E0d9",
"type": "EOA",
"isVerified": true,
"name": "0xbfA0…E0d9",
"url": "https://etherscan.io/address/0xbfA046B0bc5cEa1596be62B8b3f79f9f41f1E0d9"
},
{
"address": "eth:0xcbC7dCeb857F0b25523618cCa0A03c419a6d7eA6",
"type": "EOA",
"isVerified": true,
"name": "0xcbC7…7eA6",
"url": "https://etherscan.io/address/0xcbC7dCeb857F0b25523618cCa0A03c419a6d7eA6"
}
],
"discoveryDrivenData": true
},
{
"id": "SuperchainProxyAdminOwner",
"name": "SuperchainProxyAdminOwner",
"description": "A Multisig with 2/2 threshold. \n* Can upgrade **with no delay**\n * SuperchainConfig [via: SuperchainProxyAdmin]\n* Can interact with AddressManager\n * set and change address mappings [via: SuperchainProxyAdmin]",
"accounts": [
{
"address": "eth:0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A",
"type": "Contract",
"isVerified": true,
"name": "0x5a0A…3d2A",
"url": "https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92",
"type": "Contract",
"isVerified": true,
"name": "OpFoundationUpgradeSafe",
"url": "#OpFoundationUpgradeSafe"
},
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "Optimism Security Council",
"url": "#Optimism Security Council"
}
],
"discoveryDrivenData": true
},
{
"id": "LivenessGuard",
"name": "LivenessGuard",
"accounts": [
{
"address": "eth:0x24424336F04440b1c28685a38303aC33C9D14a25",
"type": "Contract",
"isVerified": true,
"name": "0x2442…4a25",
"url": "https://etherscan.io/address/0x24424336F04440b1c28685a38303aC33C9D14a25"
}
],
"chain": "ethereum",
"description": "Modular contract to be used together with the LivenessModule. Tracks liveness / activity of Safe owners.\n* Can interact with LivenessModule\n * can remove members of Optimism Security Council inactive for 3mo 8d ",
"discoveryDrivenData": true
},
{
"id": "Optimism Guardian Multisig",
"name": "Optimism Guardian Multisig",
"description": "A Multisig with 1/1 threshold. It uses the following modules: DeputyPauseModule (Allows 0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the OpFoundationUpgradeSafe if set as its Safe module).",
"accounts": [
{
"address": "eth:0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2",
"type": "Contract",
"isVerified": true,
"name": "0x09f7…dAf2",
"url": "https://etherscan.io/address/0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03",
"type": "Contract",
"isVerified": true,
"name": "Optimism Security Council",
"url": "#Optimism Security Council"
}
],
"discoveryDrivenData": true
},
{
"id": "Lisk Multisig",
"name": "Lisk Multisig",
"description": "A Multisig with 1/1 threshold. ",
"accounts": [
{
"address": "eth:0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45",
"type": "Contract",
"isVerified": true,
"name": "0xECd4…0b45",
"url": "https://etherscan.io/address/0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb",
"type": "Contract",
"isVerified": true,
"name": "Gelato Multisig",
"url": "#Gelato Multisig"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0xa6Ea2f3299b63c53143c993d2d5E60A69Cd6Fe24",
"type": "EOA",
"isVerified": true,
"name": "0xa6Ea…Fe24",
"url": "https://etherscan.io/address/0xa6Ea2f3299b63c53143c993d2d5E60A69Cd6Fe24",
"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": "Optimism-EOA-1",
"name": "Optimism EOA 1",
"accounts": [
{
"address": "eth:0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c",
"type": "EOA",
"isVerified": true,
"name": "0x2fA1…a87c",
"url": "https://etherscan.io/address/0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c",
"displayName": "Optimism EOA 1"
}
],
"chain": "ethereum",
"description": "* 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) [via: DeputyPauseModule though restricted to the SuperchainConfig's `pause()` function → Optimism Guardian Multisig]",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x0AbD6da1cE10D1cD6c7C9C14b905786D20f3EB23",
"type": "EOA",
"isVerified": true,
"name": "0x0AbD…EB23",
"url": "https://etherscan.io/address/0x0AbD6da1cE10D1cD6c7C9C14b905786D20f3EB23",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with PermissionedDisputeGame\n * Allowed to post new state roots of the current layer to the host chain ",
"discoveryDrivenData": true
}
]
}
}
+1 -1
{
"baseTimestamp": 1789044500,
"baseTimestamp": 1789656039,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "517cb0a1",
"date": "Thu, 17 Sep 2026 14:42:47 GMT",
"timestamp": 1789656039,
"description": "Gelato Multisig: member removed; threshold 3/5 → 3/4.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Gelato Multisig (eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n values.multisigThreshold:\n- \"3 of 5 (60%)\"\n+ \"3 of 4 (75%)\"\n }\n```"
}
]
},
{
"id": "28188cb1",
"date": "Thu, 10 Sep 2026 12:49:48 GMT",
"timestamp": 1789044500,
"description": "Optimism Security Council: Member rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Optimism Security Council (eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03) [GnosisSafe] {\n +++ description: None\n values.$members.9:\n- \"eth:0x0aA384EB2fedD2741277A0f72909A0d7275575D7\"\n+ \"eth:0xd91530dB01c60C6B3b824707D33fb0771aB85930\"\n }\n```"
}
]
},
{
"id": "11590ec4",
"date": "Fri, 17 Jul 2026 10:11:14 GMT",
"timestamp": 1784282990,
"description": "OpFoundation shared Safes (UpgradeSafe + OperationsSafe): 2 members rotated.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) [GnosisSafe] {\n +++ description: None\n values.$members.0:\n- \"eth:0x6419F81580343DF023E68715C6e269aFb00a2cc7\"\n+ \"eth:0xf1EfbdC2C0BDC4554E0f1639D7fe88cD870a4639\"\n values.$members.3:\n- \"eth:0xBF93D4d727F7Ba1F753E1124C3e532dCb04Ea2c8\"\n+ \"eth:0x7F1D4FE689B73B628285454667B93cfd09409f27\"\n }\n```"
}
]
},
{
"id": "a5b238a3",
"date": "Mon, 06 Jul 2026 07:53:50 GMT",
"timestamp": 1783324341,
"description": "Shared SuperchainConfig upgraded 2.4.0 → 2.4.2 ([diff](https://disco.l2beat.com/diff/eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957/eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550)). No behavioral change — `ProxyAdminOwnedBase` import moved, misleading pause-state warning removed, and 5 new unused constants added to the shared `Constants` library (forward-plumbing for OPCM tooling).",
"isHighSeverity": true,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuperchainConfig (eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C) [opstack/SuperchainConfig_expiry] {\n +++ description: Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3 months if left untouched.\n sourceHashes.1:\n- \"0x5fb525d1572fb90d060d122143b915059cbff39e0298b345857fd4267d7f6b28\"\n+ \"0x2cd597b7305a446a1df355e6909cbd75fe38aa045faf4876a8e5496eebc1734f\"\n values.$implementation:\n- \"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"\n+ \"eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550\"\n values.$pastUpgrades.6:\n+ [\"2026-06-25T23:05:47.000Z\",\"0xbfdac60c9687a2e469159bf2458e73de2915a0a5eb53c4991a7ecde2b1fb3f15\",[\"eth:0x2476c911E6D4D9411E677D8Faf15a64ac1fDEEe8\"]]\n values.$pastUpgrades.7:\n+ [\"2026-06-25T23:05:47.000Z\",\"0xbfdac60c9687a2e469159bf2458e73de2915a0a5eb53c4991a7ecde2b1fb3f15\",[\"eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550\"]]\n values.$upgradeCount:\n- 6\n+ 8\n values.version:\n- \"2.4.0\"\n+ \"2.4.2\"\n implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957:\n- \"SuperchainConfig\"\n implementationNames.eth:0xE4F9779ab53070a55db24dFAeFf9AF147c6ED550:\n+ \"SuperchainConfig\"\n }\n```"
}
]
},
{
"id": "64aa3df5",
"date": "Fri, 15 May 2026 13:31:28 GMT",
"timestamp": 1778851817,
"description": "Scheduled signer-key rotation on shared OP Stack governance contracts (no threshold or permission changes):\n- DeputyPauseModule (`0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754`): `deputy` rotated from `0x352f1defB49718e7Ea411687E850aA8d6299F7aC` to `0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c`. Executed via [superchain-ops eth/052](https://github.com/ethereum-optimism/superchain-ops/pull/1399); the [DeputyPauseModule spec](https://specs.optimism.io/protocol/deputy-pause-module.html) specifies that this is a regular rotation.\n- OpFoundationUpgradeSafe: Member rotated.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract DeputyPauseModule (eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754) [opstack/DeputyPauseModule] {\n +++ description: Allows eth:0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92 if set as its Safe module.\n description:\n- \"Allows eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92 if set as its Safe module.\"\n+ \"Allows eth:0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c, called the deputy pauser, to act on behalf of the eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92 if set as its Safe module.\"\n values.deputy:\n- \"eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC\"\n+ \"eth:0x2fA150379bF32b6d79Eeb4ff9bD280E76049a87c\"\n }\n```\n\n```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) [GnosisSafe] {\n +++ description: None\n values.$members.6:\n- \"eth:0xc222ab08333109243B1f4E2a80e3D0A190714AB5\"\n+ \"eth:0xa2A58E31C03C59e34ab4d996d811DA0C035BfDea\"\n }\n```"
}
]
},
{
"id": "d0a304ce",
"date": "Tue, 05 May 2026 15:19:03 GMT",
"timestamp": 1777994276,
"description": "Optimism Security Council (`eth:0xc2819DC7...`) — member 12 swap: `0x92827223` → `0xcbC7dCeb`. Shared multisig (referenced by multiple Superchain projects).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Optimism Security Council (eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03) {\n +++ description: None\n values.$members.12:\n- \"eth:0x92827223f6b397CE9F208eE352bacA710765cACb\"\n+ \"eth:0xcbC7dCeb857F0b25523618cCa0A03c419a6d7eA6\"\n }\n```"
}
]
},
{
"id": "d74ffcbd",
"date": "Tue, 28 Apr 2026 15:46:38 GMT",
"timestamp": 1777391131,
"description": "Gelato Multisig (`eth:0xBeA2Bc85...`) member rotation: 5 signers removed (`0x349f3839`, `0xB65540bB`, `0x58edE8C6`, `0x28bB9385`, `0x5bE3E96C`), 1 added (`0x6a0A93Cd`). Threshold dropped 4→3 and total signers 9→5 (44% → 60%). Shared multisig — same change observed on `ethernity`, `ink`, `everclear`, `reya`, and `educhain` (arb1).",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n EOA (eth:0x28bB9385A588EF4747264D19B9A9F1603591680c)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n EOA (eth:0xB65540bBA534E88EB4a5062D0E6519C07063b259)\n +++ description: None\n```\n\n```diff\n contract Gelato Multisig (eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n values.$members.0:\n- \"eth:0x349f3839012DB2271e1BeC68F1668471D175Adb9\"\n values.$members.1:\n- \"eth:0xB65540bBA534E88EB4a5062D0E6519C07063b259\"\n values.$members.2:\n- \"eth:0x58edE8C66A15f23c61b8EadD1191FdaD904f7a87\"\n values.$members.3:\n- \"eth:0x28bB9385A588EF4747264D19B9A9F1603591680c\"\n values.$members.5:\n- \"eth:0x5bE3E96Cdc3A97628bD7308d3588B9a474F4A54d\"\n+ \"eth:0x6a0A93Cd6d6FB7a36bF6234ef4650Bf9474e7682\"\n values.$threshold:\n- 4\n+ 3\n values.multisigThreshold:\n- \"4 of 9 (44%)\"\n+ \"3 of 5 (60%)\"\n }\n```\n\n```diff\n+ Status: CREATED\n EOA (eth:0x6a0A93Cd6d6FB7a36bF6234ef4650Bf9474e7682)\n +++ description: None\n```"
}
]
},
{
"id": "fd09d383",
"date": "Wed, 25 Mar 2026 10:07:29 GMT",
"timestamp": 1774433184,
"description": "Three signers of the shared OpFoundation multisigs (OpFoundationUpgradeSafe) were rotated. The old signer at position 0 was a GnosisSafe (0x42d27eEA1AD6e22Af6284F609847CB3Cd56B9c64) which was replaced by a new EOA. Additionally, a Gelato Multisig signer (0x28bB9385A588EF4747264D19B9A9F1603591680c) has set an EIP-7702 delegation to an EIP7702StatelessDeleGator contract.",
"isHighSeverity": true,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n EOA (eth:0x28bB9385A588EF4747264D19B9A9F1603591680c) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n sourceHashes:\n+ [\"0x41c6ce964a4ef3e910f9ddf78152734dae8d1b1094ffc8334c50249a3b112bbf\"]\n values:\n+ {\"$implementation\":\"eth:0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B\",\"delegationManager\":\"eth:0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3\",\"DOMAIN_VERSION\":\"1\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"EIP7702StatelessDeleGator\",\"version\":\"1\",\"chainId\":1,\"verifyingContract\":\"eth:0x28bB9385A588EF4747264D19B9A9F1603591680c\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"entryPoint\":\"eth:0x0000000071727De22E5E9d8BAf0edAc6f37da032\",\"getDeposit\":0,\"getDomainHash\":\"0x4831558cc7e858c354d05912425f7b608f63f175997992468f288e0d88c4cc50\",\"getNonce\":0,\"NAME\":\"EIP7702StatelessDeleGator\",\"PACKED_USER_OP_TYPEHASH\":\"0xbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18\",\"VERSION\":\"1.3.0\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract GnosisSafe (eth:0x42d27eEA1AD6e22Af6284F609847CB3Cd56B9c64)\n +++ description: None\n```\n\n```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) {\n +++ description: None\n values.$members.0:\n- \"eth:0x42d27eEA1AD6e22Af6284F609847CB3Cd56B9c64\"\n+ \"eth:0x6419F81580343DF023E68715C6e269aFb00a2cc7\"\n values.$members.2:\n- \"eth:0xE7dEA1306D9F829bA469d1904c50903b46ebd02e\"\n+ \"eth:0xC2Db495f5a1F91172A361AAFA6FdE47c41de6dF5\"\n values.$members.6:\n- \"eth:0x9bbFB9919062C29a5eE15aCD93c9D7c3b14d31aa\"\n+ \"eth:0xc222ab08333109243B1f4E2a80e3D0A190714AB5\"\n }\n```"
}
]
},
{
"id": "cb53f198",
"date": "Fri, 27 Feb 2026 13:25:17 GMT",
"timestamp": 1772198386,
"description": "Optimism Security Council: 2 members replaced.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Optimism Security Council (eth:0xc2819DC788505Aac350142A7A707BF9D03E3Bd03) {\n +++ description: None\n values.$members.0:\n- \"eth:0x07dC0893cAfbF810e3E72505041f2865726Fd073\"\n+ \"eth:0xE61F12136bA47De67D15a1D59fE2f383ec5176aE\"\n values.$members.2:\n- \"eth:0x1822b35B09f5ce1C78ecbC06AC0A4e17885b925e\"\n+ \"eth:0x5c1f9E9384Ca9fE0499277F6a015a2ac0A317a81\"\n }\n```"
}
]
},
{
"id": "ca81df69",
"date": "Mon, 26 Jan 2026 09:08:13 GMT",
"timestamp": 1769272346,
"description": "SaferSafes module (LivenessModule + TimelockGuard) added to OpFoundationUpgradeSafe. Timelock delays currently 0.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) {\n +++ description: None\n values.GnosisSafe_modules.0:\n+ \"eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SaferSafes (eth:0xA8447329e52F64AED2bFc9E7a2506F7D369f483a)\n +++ description: A Gnosis Safe module combining LivenessModule and TimelockGuard. Provides liveness checks where a fallback owner can challenge and take over if Safe owners are unresponsive, plus optional timelock delays for transaction scheduling.\n```"
}
]
},
{
"id": "876fc657",
"date": "Thu, 18 Dec 2025 08:57:58 GMT",
"timestamp": 1766048190,
"description": "upgrade to safe 1.4.1",
"isHighSeverity": true,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) {\n +++ description: None\n sourceHashes.1:\n- \"0xd42bbf9f7dcd3720a7fc6bdc6edfdfae8800a37d6dd4decfa0ef6ca4a2e88940\"\n+ \"0x7d388119a66f3eae147d748f86136f073d907d6b36f7e87e9363c4c7a2899a8a\"\n values.$implementation:\n- \"eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552\"\n+ \"eth:0x41675C099F32341bf84BFc5382aF534df5C7461a\"\n values.VERSION:\n- \"1.3.0\"\n+ \"1.4.1\"\n implementationNames.eth:0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552:\n- \"GnosisSafe\"\n implementationNames.eth:0x41675C099F32341bf84BFc5382aF534df5C7461a:\n+ \"Safe\"\n }\n```"
}
]
},
{
"id": "263b5906",
"date": "Fri, 28 Nov 2025 11:37:21 GMT",
"timestamp": 1764329775,
"description": "Jovian upgrade.",
"isHighSeverity": true,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuperchainConfig (eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C) {\n +++ description: Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3 months if left untouched.\n sourceHashes.1:\n- \"0x5a0e73c7d129cc83e1c387b55df0141890c02d2cb4111b8a1b6376d737d88f6b\"\n+ \"0x53a6b3db7f270298025bbfef7f6c77b420a9808341212fa9cf54a5e157a18567\"\n values.$implementation:\n- \"eth:0xCe28685EB204186b557133766eCA00334EB441E4\"\n+ \"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"\n values.$pastUpgrades.5:\n+ [\"2025-11-25T17:46:35.000Z\",\"0xf556934cb4de1ab40a4cfba17856cd601cbc8b875b96a9ccd8ee32bcd363abf5\",[\"eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957\"]]\n values.$upgradeCount:\n- 5\n+ 6\n values.version:\n- \"2.3.0\"\n+ \"2.4.0\"\n implementationNames.eth:0xCe28685EB204186b557133766eCA00334EB441E4:\n- \"SuperchainConfig\"\n implementationNames.eth:0xb08Cc720F511062537ca78BdB0AE691F04F5a957:\n+ \"SuperchainConfig\"\n }\n```\n\n```diff\n EOA (eth:0xB65540bBA534E88EB4a5062D0E6519C07063b259) {\n +++ description: None\n proxyType:\n- \"EOA\"\n+ \"EIP7702 EOA\"\n template:\n+ \"uniswap/calibur7702\"\n sourceHashes:\n+ [\"0xb3eb47d8d57eba02013e5d347d05147f7ac072ef2e5e4e1f9a5c6fbced93f8b0\"]\n values:\n+ {\"$implementation\":\"eth:0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00\",\"CUSTOM_STORAGE_ROOT\":\"0x3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600\",\"domainBytes\":\"0xc7e4f5b2d381bdfacf8506a24542052ab4e951573cab4ce34bb1c9509c84cbbf06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b65540bba534e88eb4a5062d0e6519c07063b259000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00\",\"domainSeparator\":\"0xae1ae59b43b99665a7d7de7c1ca92017a6e8c484587869daf07b2bd3a6aa0301\",\"eip712Domain\":{\"fields\":\"0x1f\",\"name\":\"Calibur\",\"version\":\"1.0.0\",\"chainId\":1,\"verifyingContract\":\"eth:0xB65540bBA534E88EB4a5062D0E6519C07063b259\",\"salt\":\"0x000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00\",\"extensions\":[]},\"ENTRY_POINT\":\"eth:0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108\",\"keyAt\":[],\"keyCount\":0,\"keyHashes\":0,\"namespaceAndVersion\":\"Uniswap.Calibur.1.0.0\"}\n }\n```"
}
]
},
{
"id": "8a17cc43",
"date": "Mon, 20 Oct 2025 15:26:02 GMT",
"timestamp": 1760973885,
"description": "OpFoundation multisig member rotation.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OpFoundationUpgradeSafe (eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92) {\n +++ description: None\n values.$members.5:\n- \"eth:0x7cB07FE039a92B3D784f284D919503A381BEC54f\"\n+ \"eth:0x69acfE2096Dfb8d5A041eF37693553c48d9BFd02\"\n }\n```"
}
]
},
{
"id": "fb9449b1",
"date": "Mon, 18 Aug 2025 09:02:32 GMT",
"timestamp": 1755507657,
"description": "Security council members rotation.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Optimism Security Council (0xc2819DC788505Aac350142A7A707BF9D03E3Bd03) {\n +++ description: None\n values.$members.4:\n- \"eth:0x51aCb8e1205De850D1b512584FeE9C29C3813dDa\"\n+ \"eth:0x3A53B4B081Eb7Cb00C46497b16Ea22e65E4Faa94\"\n values.$members.10:\n- \"eth:0x9Eb11A55132c851b9991F148b3Af791ca498fD7A\"\n+ \"eth:0x0a8742365a7EB0A3698293ac54357B5Ac04cefE6\"\n }\n```"
}
]
},
{
"id": "e453448b",
"date": "Thu, 14 Aug 2025 07:44:37 GMT",
"timestamp": 1755157463,
"description": "Fee pricing update.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.basefeeScalar:\n- 37110\n+ 127543\n }\n```"
}
]
},
{
"id": "83cc2b36",
"date": "Mon, 28 Jul 2025 05:51:30 GMT",
"timestamp": 1753681890,
"description": "Op stack gov upgrade: SuperchainConfig with pause expiry and DeputyPausModule. See optimism diffHistory for details.",
"isHighSeverity": true,
"changeCount": 26,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Optimism Guardian Multisig (0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2) {\n +++ description: None\n values.GnosisSafe_modules.0:\n- \"eth:0xc6901F65369FC59fC1B4D6D6bE7A2318Ff38dB5B\"\n+ \"eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754\"\n }\n```\n\n```diff\n- Status: DELETED\n contract DeputyPauseModule (0x126a736B18E0a64fBA19D421647A530E327E112C)\n +++ description: Allows eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the eth:0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A if set as its Safe module.\n```\n\n```diff\n EOA Optimism EOA 1 (0x352f1defB49718e7Ea411687E850aA8d6299F7aC) {\n +++ description: None\n receivedPermissions.0.via.3.address:\n- \"eth:0x126a736B18E0a64fBA19D421647A530E327E112C\"\n+ \"eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754\"\n receivedPermissions.0.via.2:\n- {\"address\":\"eth:0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A\"}\n receivedPermissions.0.via.1:\n- {\"address\":\"eth:0xc6901F65369FC59fC1B4D6D6bE7A2318Ff38dB5B\",\"condition\":\"if not revoked by the Security Council\"}\n directlyReceivedPermissions.0.from:\n- \"eth:0x126a736B18E0a64fBA19D421647A530E327E112C\"\n+ \"eth:0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754\"\n }\n```\n\n```diff\n contract SuperchainConfig (0x95703e0982140D16f8ebA6d158FccEde42f04a4C) {\n +++ description: Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3 months if left untouched.\n template:\n- \"opstack/SuperchainConfig\"\n+ \"opstack/SuperchainConfig_expiry\"\n sourceHashes.1:\n- \"0x03dba37173051b02bc81487e181c791bcf1aef664c249e5d035f11f488bdd686\"\n+ \"0x5a0e73c7d129cc83e1c387b55df0141890c02d2cb4111b8a1b6376d737d88f6b\"\n description:\n- \"Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages the `PAUSED_SLOT`, a boolean value indicating whether the Superchain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\"\n+ \"Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages individual pause states for each chain connected to it, as well as a global pause state for all chains. The guardian role can pause either separately, but each pause expires after 3 months if left untouched.\"\n values.$implementation:\n- \"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7\"\n+ \"eth:0xCe28685EB204186b557133766eCA00334EB441E4\"\n values.$pastUpgrades.4:\n+ [\"2025-07-24T17:47:23.000Z\",\"0x46acdce174c8d83ebe2f208d8c76c867e75617483d64c3e407f69ae2f9868716\",[\"eth:0xCe28685EB204186b557133766eCA00334EB441E4\"]]\n values.$upgradeCount:\n- 4\n+ 5\n values.GUARDIAN_SLOT:\n- \"0xd30e835d3f35624761057ff5b27d558f97bd5be034621e62240e5c0b784abe68\"\n values.PAUSED_SLOT:\n- \"0x54176ff9944c4784e5857ec4e5ef560a462c483bf534eda43f91bb01a470b1b6\"\n values.version:\n- \"1.2.0\"\n+ \"2.3.0\"\n values.initVersion:\n+ 2\n values.pauseExpiry:\n+ 7884000\n values.pauseExpiryFmt:\n+ \"91d 6h\"\n values.proxyAdmin:\n+ \"eth:0x543bA4AADBAb8f9025686Bd03993043599c6fB04\"\n values.proxyAdminOwner:\n+ \"eth:0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A\"\n implementationNames.eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7:\n- \"SuperchainConfig\"\n implementationNames.eth:0xCe28685EB204186b557133766eCA00334EB441E4:\n+ \"SuperchainConfig\"\n fieldMeta:\n+ {\"paused\":{\"severity\":\"HIGH\"}}\n }\n```\n\n```diff\n- Status: DELETED\n contract OpFoundationOperationsSafe (0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract DeputyGuardianModule (0xc6901F65369FC59fC1B4D6D6bE7A2318Ff38dB5B)\n +++ description: allows the eth:0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A, called the deputy guardian, to act on behalf of the Gnosis Safe.\n```\n\n```diff\n+ Status: CREATED\n contract DeputyPauseModule (0x76fC2F971FB355D0453cF9F64d3F9E4f640E1754)\n +++ description: Allows eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92 if set as its Safe module.\n```"
}
]
},
{
"id": "93db614d",
"date": "Mon, 21 Jul 2025 10:30:37 GMT",
"timestamp": 1753093837,
"description": "standard op stack v3 upgrade (optiPortal 2) to permissioned fp game.",
"isHighSeverity": true,
"changeCount": 110,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n sourceHashes.1:\n- \"0xdf9a11b46747139bfe0135df8a65a2728a2dbd60a689e2398c45627915cdd752\"\n+ \"0xc7135dbd2a53312d36df3f3ee91ce0a5a459ab8fc7725880a3a9c55a5fa0ed6c\"\n values.$implementation:\n- \"eth:0xc6cF1149d23F2788AC94312E68EB52a74F288ebe\"\n+ \"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375\"\n values.$pastUpgrades.1:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.L2_OUTPUT_ORACLE_SLOT:\n- \"0xe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871815\"\n values.l2OutputOracle:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n values.version:\n- \"1.12.0\"\n+ \"2.3.0\"\n values.basefeeScalar:\n+ 37110\n values.blobbasefeeScalar:\n+ 1201993\n values.DISPUTE_GAME_FACTORY_SLOT:\n+ \"0x52322a25d9f59ea17656545543306b7aef62bc0cc53a0e65ccfa0c75b97aa906\"\n values.disputeGameFactory:\n+ \"eth:0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C\"\n+++ description: volatility param: lower denominator -> quicker fee changes on L2\n values.eip1559Denominator:\n+ 0\n values.eip1559Elasticity:\n+ 0\n values.gasPayingToken:\n+ {\"addr_\":\"eth:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\"decimals_\":18}\n values.gasPayingTokenName:\n+ \"Ether\"\n values.gasPayingTokenSymbol:\n+ \"ETH\"\n values.isCustomGasToken:\n+ false\n values.maximumGasLimit:\n+ 200000000\n implementationNames.eth:0xc6cF1149d23F2788AC94312E68EB52a74F288ebe:\n- \"SystemConfig\"\n implementationNames.eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375:\n+ \"SystemConfig\"\n }\n```\n\n```diff\n EOA (0x0AbD6da1cE10D1cD6c7C9C14b905786D20f3EB23) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"propose\",\"from\":\"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\",\"role\":\".proposer\"}\n receivedPermissions.1.role:\n- \".PROPOSER\"\n+ \".proposer\"\n receivedPermissions.1.from:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n+ \"eth:0x095102Ec7bea1c5f25090705b196a6EA2e6b64f6\"\n }\n```\n\n```diff\n- Status: DELETED\n contract L2OutputOracle (0x113cB99283AF242Da0A0C54347667edF531Aa7d6)\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. Currently only the PROPOSER address can submit new state roots.\n```\n\n```diff\n contract L1StandardBridge (0x2658723Bf70c7667De6B25F99fcce13A16D25d08) {\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n values.$implementation:\n- \"eth:0x5BFC7acc740D2E19c290167052F69947e19475F3\"\n+ \"eth:0x64B5a5Ed26DCb17370Ff4d33a8D503f0fbD06CfF\"\n values.superchainConfig:\n- \"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\"\n+ \"eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C\"\n implementationNames.eth:0x5BFC7acc740D2E19c290167052F69947e19475F3:\n- \"L1StandardBridge\"\n implementationNames.eth:0x64B5a5Ed26DCb17370Ff4d33a8D503f0fbD06CfF:\n+ \"L1StandardBridge\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SuperchainConfig (0x26C7bFB430d68Bf74d2d52497836d4336b555dE7)\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n```\n\n```diff\n contract OptimismPortal2 (0x26dB93F8b8b4f7016240af62F7730979d353f9A7) {\n +++ description: The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\n name:\n- \"OptimismPortal\"\n+ \"OptimismPortal2\"\n template:\n- \"opstack/OptimismPortal\"\n+ \"opstack/OptimismPortal2\"\n sourceHashes.1:\n- \"0xe35fb7bc0433439337b3eadda3d6fb7991918162f62a337a695e8c7f948cdd35\"\n+ \"0x41be46bdb67af1b7af90e1bd70a1fcd31a3352282beb83b846a5189675c37ac1\"\n description:\n- \"The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals.\"\n+ \"The OptimismPortal contract is the main entry point to deposit funds from L1 to L2. It also allows to prove and finalize withdrawals. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.\"\n values.$implementation:\n- \"eth:0x3Ff11Cde41a5f7c791eFfcd6AeEA05dd2df5e21e\"\n+ \"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B\"\n values.$pastUpgrades.1:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.guardian:\n- \"eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n+ \"eth:0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2\"\n values.GUARDIAN:\n- \"eth:0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n values.L2_ORACLE:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n values.l2Oracle:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n values.superchainConfig:\n- \"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\"\n+ \"eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C\"\n values.SYSTEM_CONFIG:\n- \"eth:0x05f23282FFDCA8286E4738C1aF79079f3d843750\"\n values.version:\n- \"2.5.0\"\n+ \"3.10.0\"\n values.disputeGameFactory:\n+ \"eth:0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C\"\n values.disputeGameFinalityDelaySeconds:\n+ 302400\n values.proofMaturityDelaySeconds:\n+ 604800\n values.RespectedGameString:\n+ \"PermissionedDisputeGame\"\n values.respectedGameType:\n+ 1\n values.respectedGameTypeUpdatedAt:\n+ 1752607223\n implementationNames.eth:0x3Ff11Cde41a5f7c791eFfcd6AeEA05dd2df5e21e:\n- \"OptimismPortal\"\n implementationNames.eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B:\n+ \"OptimismPortal2\"\n fieldMeta:\n+ {\"paused\":{\"severity\":\"HIGH\",\"description\":\"Whether the contract is paused or not. Determined by the SuperchainConfig contract PAUSED_SLOT. Here it pauses withdrawals. If this is paused, also the L1CrossDomainMessenger and ERC-20, ERC-721 deposits are paused.\"}}\n usedTypes:\n+ [{\"typeCaster\":\"Mapping\",\"arg\":{\"0\":\"FaultDisputeGame\",\"1\":\"PermissionedDisputeGame\"}}]\n }\n```\n\n```diff\n contract L1CrossDomainMessenger (0x31B72D76FB666844C41EdF08dF0254875Dbb7edB) {\n +++ description: Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n values.$implementation:\n- \"eth:0x0318A37e2662507789a6E17E85A506709F89488b\"\n+ \"eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65\"\n values.$pastUpgrades.1:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.superchainConfig:\n- \"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\"\n+ \"eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C\"\n implementationNames.eth:0x0318A37e2662507789a6E17E85A506709F89488b:\n- \"L1CrossDomainMessenger\"\n implementationNames.eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65:\n+ \"L1CrossDomainMessenger\"\n }\n```\n\n```diff\n contract L1ERC721Bridge (0x3A44A3b263FB631cdbf25f339e2D29497511A81f) {\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n values.$implementation:\n- \"eth:0xefBDff012170ae592A3d197bf9Ac10eBF313233a\"\n+ \"eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d\"\n values.$pastUpgrades.1:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC\"]]\n values.$pastUpgrades.2:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d\"]]\n values.$upgradeCount:\n- 1\n+ 3\n values.superchainConfig:\n- \"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\"\n+ \"eth:0x95703e0982140D16f8ebA6d158FccEde42f04a4C\"\n implementationNames.eth:0xefBDff012170ae592A3d197bf9Ac10eBF313233a:\n- \"L1ERC721Bridge\"\n implementationNames.eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d:\n+ \"L1ERC721Bridge\"\n }\n```\n\n```diff\n contract Gelato Multisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"challenge\",\"from\":\"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\",\"role\":\".challenger\"}\n receivedPermissions.1:\n- {\"permission\":\"challenge\",\"from\":\"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\",\"role\":\".CHALLENGER\"}\n receivedPermissions.2:\n- {\"permission\":\"guard\",\"from\":\"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\",\"role\":\".guardian\"}\n receivedPermissions.3:\n- {\"permission\":\"guard\",\"from\":\"eth:0x26dB93F8b8b4f7016240af62F7730979d353f9A7\",\"role\":\".guardian\"}\n receivedPermissions.4.role:\n- \".GUARDIAN\"\n+ \".challenger\"\n receivedPermissions.4.from:\n- \"eth:0x26dB93F8b8b4f7016240af62F7730979d353f9A7\"\n+ \"eth:0x095102Ec7bea1c5f25090705b196a6EA2e6b64f6\"\n receivedPermissions.4.permission:\n- \"guard\"\n+ \"challenge\"\n receivedPermissions.3:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x31eFC2c8012c56E007E5Bdb8E5B7955D197C168e\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\",\"via\":[{\"address\":\"eth:0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45\"}]}\n receivedPermissions.8.from:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n+ \"eth:0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C\"\n receivedPermissions.10:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xeC432c4F1d0E12737f3a42a459B84848Af979b2d\"},{\"address\":\"eth:0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45\"}]}\n receivedPermissions.9:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x31eFC2c8012c56E007E5Bdb8E5B7955D197C168e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xeC432c4F1d0E12737f3a42a459B84848Af979b2d\"},{\"address\":\"eth:0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45\"}]}\n receivedPermissions.11:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x7ad0d165B9607960AD850090DDd7B9eB381D9c1e\",\"role\":\"admin\",\"via\":[{\"address\":\"eth:0xeC432c4F1d0E12737f3a42a459B84848Af979b2d\"},{\"address\":\"eth:0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45\"}]}\n }\n```\n\n```diff\n contract OptimismMintableERC20Factory (0xc1dA06CC5DD5cE23bABa924463de7F762039252d) {\n +++ description: A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n values.$implementation:\n- \"eth:0xD00e38514d66bf1B761a8937559c6b2854A5B3ad\"\n+ \"eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846\"\n values.$pastUpgrades.1:\n+ [\"2025-07-15T19:20:23.000Z\",\"0x3786f23fa6b766eb330ab5b46bdcae3224c208c00b03405952e7743b5e13a89d\",[\"eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846\"]]\n values.$upgradeCount:\n- 1\n+ 2\n implementationNames.eth:0xD00e38514d66bf1B761a8937559c6b2854A5B3ad:\n- \"OptimismMintableERC20Factory\"\n implementationNames.eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846:\n+ \"OptimismMintableERC20Factory\"\n }\n```\n\n```diff\n contract ProxyAdmin (0xeC432c4F1d0E12737f3a42a459B84848Af979b2d) {\n +++ description: None\n directlyReceivedPermissions.2.from:\n- \"eth:0x113cB99283AF242Da0A0C54347667edF531Aa7d6\"\n+ \"eth:0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C\"\n directlyReceivedPermissions.4:\n- {\"permission\":\"upgrade\",\"from\":\"eth:0x26C7bFB430d68Bf74d2d52497836d4336b555dE7\",\"role\":\"admin\"}\n directlyReceivedPermissions.6:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x31eFC2c8012c56E007E5Bdb8E5B7955D197C168e\",\"role\":\"admin\"}\n directlyReceivedPermissions.8:\n+ {\"permission\":\"upgrade\",\"from\":\"eth:0x7ad0d165B9607960AD850090DDd7B9eB381D9c1e\",\"role\":\"admin\"}\n }\n```\n\n```diff\n contract Lisk Multisig (0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45) {\n +++ description: None\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x31eFC2c8012c56E007E5Bdb8E5B7955D197C168e\",\"description\":\"can pull funds from the contract in case of emergency.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n+ Status: CREATED\n contract LivenessModule (0x0454092516c9A4d636d3CAfA1e82161376C8a748)\n +++ description: used to remove members inactive for 98d while making sure that the threshold remains above 75%. If the number of members falls below 8, the eth:0x847B5c174615B1B7fDF770882256e2D3E95b9D92 takes ownership of the multisig\n```\n\n```diff\n+ Status: CREATED\n contract PermissionedDisputeGame (0x095102Ec7bea1c5f25090705b196a6EA2e6b64f6)\n +++ description: Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n```\n\n```diff\n+ Status: CREATED\n contract Optimism Guardian Multisig (0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DisputeGameFactory (0x0CF7D3706a27CCE2017aEB11E8a9c8b5388c282C)\n +++ description: The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n```\n\n```diff\n+ Status: CREATED\n contract DeputyPauseModule (0x126a736B18E0a64fBA19D421647A530E327E112C)\n +++ description: Allows eth:0x352f1defB49718e7Ea411687E850aA8d6299F7aC, called the deputy pauser, to act on behalf of the eth:0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A if set as its Safe module.\n```\n\n```diff\n+ Status: CREATED\n contract LivenessGuard (0x24424336F04440b1c28685a38303aC33C9D14a25)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DelayedWETH (0x31eFC2c8012c56E007E5Bdb8E5B7955D197C168e)\n +++ description: Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0x42d27eEA1AD6e22Af6284F609847CB3Cd56B9c64)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainProxyAdmin (0x543bA4AADBAb8f9025686Bd03993043599c6fB04)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainProxyAdminOwner (0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MIPS (0x5fE03a12C1236F9C22Cb6479778DDAa4bce6299C)\n +++ description: The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n```\n\n```diff\n+ Status: CREATED\n contract AnchorStateRegistry (0x7ad0d165B9607960AD850090DDd7B9eB381D9c1e)\n +++ description: Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract OpFoundationUpgradeSafe (0x847B5c174615B1B7fDF770882256e2D3E95b9D92)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainConfig (0x95703e0982140D16f8ebA6d158FccEde42f04a4C)\n +++ description: Used to manage global configuration values for multiple OP Chains within a single Superchain network. The SuperchainConfig contract manages the `PAUSED_SLOT`, a boolean value indicating whether the Superchain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n```\n\n```diff\n+ Status: CREATED\n contract OpFoundationOperationsSafe (0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract PreimageOracle (0x9c065e11870B891D214Bc2Da7EF1f9DDFA1BE277)\n +++ description: The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n```\n\n```diff\n+ Status: CREATED\n contract Optimism Security Council (0xc2819DC788505Aac350142A7A707BF9D03E3Bd03)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract DeputyGuardianModule (0xc6901F65369FC59fC1B4D6D6bE7A2318Ff38dB5B)\n +++ description: allows the eth:0x9BA6e03D8B90dE867373Db8cF1A58d2F7F006b3A, called the deputy guardian, to act on behalf of the Gnosis Safe.\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)\n +++ description: Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\n```"
}
]
},
{
"id": "172fe546",
"date": "Tue, 15 Jul 2025 09:09:26 GMT",
"timestamp": 1752570566,
"description": "Gelato MS: one signer removed, one changed.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Gelato Multisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n values.$members.2:\n- \"eth:0xB0C2CBFfCd4C31AFFEe14993b6d48f99D285f621\"\n+ \"eth:0x58edE8C66A15f23c61b8EadD1191FdaD904f7a87\"\n values.$members.8:\n- \"eth:0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n values.multisigThreshold:\n- \"4 of 10 (40%)\"\n+ \"4 of 9 (44%)\"\n }\n```"
}
]
},
{
"id": "bddf3742",
"date": "Mon, 14 Jul 2025 12:45:19 GMT",
"timestamp": 1752497119,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 15,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750)\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n```\n\n```diff\n+ Status: CREATED\n contract L2OutputOracle (0x113cB99283AF242Da0A0C54347667edF531Aa7d6)\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. Currently only the PROPOSER address can submit new state roots.\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardBridge (0x2658723Bf70c7667De6B25F99fcce13A16D25d08)\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainConfig (0x26C7bFB430d68Bf74d2d52497836d4336b555dE7)\n +++ description: This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the `PAUSED_SLOT`, a boolean value indicating whether the local chain is paused, and `GUARDIAN_SLOT`, the address of the guardian which can pause and unpause the system.\n```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal (0x26dB93F8b8b4f7016240af62F7730979d353f9A7)\n +++ description: The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals.\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0x2dF7057d3F25212E51aFEA8dA628668229Ea423f)\n +++ description: Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0x31B72D76FB666844C41EdF08dF0254875Dbb7edB)\n +++ description: Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC721Bridge (0x3A44A3b263FB631cdbf25f339e2D29497511A81f)\n +++ description: Used to bridge ERC-721 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC20TokenBridge (0x9348AF23B01F2B517AFE8f29B3183d2Bb7d69Fcf)\n +++ description: Escrow for custom external tokens that use the canonical bridge for messaging but are governed externally.\n```\n\n```diff\n+ Status: CREATED\n contract Gelato Multisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC20Factory (0xc1dA06CC5DD5cE23bABa924463de7F762039252d)\n +++ description: A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n```\n\n```diff\n+ Status: CREATED\n contract L1OpUSDCBridgeAdapter (0xE3622468Ea7dD804702B56ca2a4f88C0936995e6)\n +++ description: Escrow for USDC that uses the canonical bridge for messaging but is governed externally.\n```\n\n```diff\n+ Status: CREATED\n contract L1OpEURCBridgeAdapter (0xEb99c8c87c5e0C2dCb01E2A1E35AA01f5889F677)\n +++ description: Escrow for EURC that uses the canonical bridge for messaging but is governed externally.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xeC432c4F1d0E12737f3a42a459B84848Af979b2d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract Lisk Multisig (0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45)\n +++ description: None\n```"
}
]
},
{
"id": "8e90c514",
"date": "Tue, 03 Jun 2025 15:23:28 GMT",
"timestamp": 1748964208,
"description": "add EURC external bridge.",
"isHighSeverity": true,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1OpEURCBridgeAdapter (0xEb99c8c87c5e0C2dCb01E2A1E35AA01f5889F677) {\n +++ description: Escrow for EURC that uses the canonical bridge for messaging but is governed externally.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n name:\n+ \"L1OpEURCBridgeAdapter\"\n template:\n+ \"circle/L1OpEURCBridgeAdapter\"\n sourceHashes:\n+ [\"0xbbe53a68c0042f4050bdf21e8d16eee4688dd35d24e49740915f0a0cf994f0d6\",\"0x54fe8d50c1e462bc4bc77f3edef769d75b14fe44a09a708ceb8125d9760e71db\"]\n description:\n+ \"Escrow for EURC that uses the canonical bridge for messaging but is governed externally.\"\n sinceTimestamp:\n+ 1748849495\n sinceBlock:\n+ 22615527\n values:\n+ {\"$admin\":\"0xD2D7535e099F26EbfbA26d96bD1a661d3531d0e9\",\"$implementation\":\"0x7C82666cE6C2DCFD8458148c98C8b156D6Bc0d80\",\"$pastUpgrades\":[[\"2025-06-02T07:31:35.000Z\",\"0x842ad723004e0ab6eec96d63e9480318f20b4262a5727cdf8ab01df70aed9c83\",[\"0x7C82666cE6C2DCFD8458148c98C8b156D6Bc0d80\"]]],\"$upgradeCount\":1,\"BRIDGE_MESSAGE_TYPEHASH\":\"0x87e4683aad14f1869b43140e06b846bd1b00c2e08e9825f6719d163b4cfef2a6\",\"burnAmount\":0,\"burnCaller\":\"0x0000000000000000000000000000000000000000\",\"eip712Domain\":{\"fields\":\"0x0f\",\"name\":\"OpEURCBridgeAdapter\",\"version\":\"1.0.0\",\"chainId\":1,\"verifyingContract\":\"0xEb99c8c87c5e0C2dCb01E2A1E35AA01f5889F677\",\"salt\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"extensions\":[]},\"EURC\":\"0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c\",\"LINKED_ADAPTER\":\"0x4db1c96C1f9c3d5429fDf35ED2e684b309b0c281\",\"MESSENGER\":\"0x31B72D76FB666844C41EdF08dF0254875Dbb7edB\",\"messengerStatus\":0,\"owner\":\"0xD2D7535e099F26EbfbA26d96bD1a661d3531d0e9\",\"UPGRADE_INTERFACE_VERSION\":\"5.0.0\"}\n implementationNames:\n+ {\"0xEb99c8c87c5e0C2dCb01E2A1E35AA01f5889F677\":\"ERC1967Proxy\",\"0x7C82666cE6C2DCFD8458148c98C8b156D6Bc0d80\":\"L1OpEURCBridgeAdapter\"}\n }\n```"
}
]
},
{
"id": "adf1bd1f",
"date": "Mon, 14 Apr 2025 08:37:06 GMT",
"timestamp": 1744619826,
"description": "Add custom wstETH escrow.",
"isHighSeverity": true,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract L1ERC20TokenBridge (0x9348AF23B01F2B517AFE8f29B3183d2Bb7d69Fcf) {\n +++ description: Escrow for custom external tokens that use the canonical bridge for messaging but are governed externally.\n type:\n- \"EOA\"\n+ \"Contract\"\n proxyType:\n- \"EOA\"\n+ \"EIP1967 proxy\"\n name:\n+ \"L1ERC20TokenBridge\"\n template:\n+ \"lido/L1ERC20TokenBridge\"\n sourceHashes:\n+ [\"0x698ae88793265d087e07a445b69bf16b450cdcf636b9073b86221936e912a135\",\"0xc4b0423b7d0fcada3862027e805c2fc79676feb6f4bc3978e5a86b390bfd7be3\"]\n description:\n+ \"Escrow for custom external tokens that use the canonical bridge for messaging but are governed externally.\"\n sinceTimestamp:\n+ 1737623423\n sinceBlock:\n+ 21686205\n values:\n+ {\"$admin\":\"0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\",\"$implementation\":\"0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC\",\"$pastUpgrades\":[[\"2025-01-23T09:10:23.000Z\",\"0xc46d4a4110ff87720804f018aa5be922d1a401d1b869ea4f7fee645ee6ba1b60\",[\"0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC\"]]],\"$upgradeCount\":1,\"DEFAULT_ADMIN_ROLE\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"DEPOSITS_DISABLER_ROLE\":\"0x63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6\",\"DEPOSITS_ENABLER_ROLE\":\"0x4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a\",\"isDepositsEnabled\":true,\"isInitialized\":true,\"isWithdrawalsEnabled\":true,\"l1Token\":\"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0\",\"l2Token\":\"0x76D8de471F54aAA87784119c60Df1bbFc852C415\",\"l2TokenBridge\":\"0xca498Ee83eD3546321d4DC25e2789B0624F15f68\",\"messenger\":\"0x31B72D76FB666844C41EdF08dF0254875Dbb7edB\",\"proxy__getAdmin\":\"0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c\",\"proxy__getImplementation\":\"0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC\",\"proxy__getIsOssified\":false,\"WITHDRAWALS_DISABLER_ROLE\":\"0x94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c\",\"WITHDRAWALS_ENABLER_ROLE\":\"0x9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d\"}\n derivedName:\n+ \"L1ERC20TokenBridge\"\n }\n```"
}
]
},
{
"id": "3e05a762",
"date": "Thu, 16 Jan 2025 08:14:39 GMT",
"timestamp": 1737015279,
"description": "Gas limit doubled to 60M.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n+++ description: Gas limit for blocks on L2.\n+++ severity: LOW\n values.gasLimit:\n- 30000000\n+ 60000000\n }\n```"
}
]
},
{
"id": "9c9fe756",
"date": "Wed, 15 Jan 2025 07:30:12 GMT",
"timestamp": 1736926212,
"description": "Two signers added to Gelato MS, now 4/10.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GelatoMultisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n values.$members.9:\n+ \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n values.$members.8:\n+ \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n values.$members.7:\n- \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n+ \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n values.$members.6:\n- \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n+ \"0x88De44422E1b1c30bc530c35aEdb9f5aD0e6fD52\"\n values.$members.5:\n- \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n+ \"0x5bE3E96Cdc3A97628bD7308d3588B9a474F4A54d\"\n values.$members.4:\n- \"0xBc0ca6865d6883a83D4aDDD6b862aE042d855E0d\"\n+ \"0x691C2EF68e25E620fa6cAdE2728f6aE34F37aAD2\"\n values.$members.3:\n- \"0x5bE3E96Cdc3A97628bD7308d3588B9a474F4A54d\"\n+ \"0x28bB9385A588EF4747264D19B9A9F1603591680c\"\n values.$members.2:\n- \"0x691C2EF68e25E620fa6cAdE2728f6aE34F37aAD2\"\n+ \"0xB0C2CBFfCd4C31AFFEe14993b6d48f99D285f621\"\n values.$members.1:\n- \"0x28bB9385A588EF4747264D19B9A9F1603591680c\"\n+ \"0xB65540bBA534E88EB4a5062D0E6519C07063b259\"\n values.$members.0:\n- \"0xB0C2CBFfCd4C31AFFEe14993b6d48f99D285f621\"\n+ \"0x349f3839012DB2271e1BeC68F1668471D175Adb9\"\n values.multisigThreshold:\n- \"4 of 8 (50%)\"\n+ \"4 of 10 (40%)\"\n }\n```"
}
]
},
{
"id": "c4df1edf",
"date": "Fri, 06 Dec 2024 11:00:47 GMT",
"timestamp": 1733482847,
"description": "Add external USDC escrow.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract L1OpUSDCBridgeAdapter (0xE3622468Ea7dD804702B56ca2a4f88C0936995e6)\n +++ description: Escrow for USDC that uses the canonical bridge for messaging but is governed externally.\n```"
}
]
},
{
"id": "3162e6b3",
"date": "Wed, 30 Oct 2024 13:22:20 GMT",
"timestamp": 1730294540,
"description": "GelatoMS: Signer removed, threshold decreased.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GelatoMultisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n values.$members.8:\n- \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n values.$members.7:\n- \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n+ \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n values.$members.6:\n- \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n+ \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n values.$members.5:\n- \"0xc85aC6d2fdC376F335455D4cCA30c45ED1080849\"\n+ \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n values.$threshold:\n- 6\n+ 4\n values.multisigThreshold:\n- \"6 of 9 (67%)\"\n+ \"4 of 8 (50%)\"\n }\n```"
}
]
},
{
"id": "2626432f",
"date": "Fri, 11 Oct 2024 10:34:24 GMT",
"timestamp": 1728642864,
"description": "Getalo MS signer removed.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract GelatoMultisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb) {\n +++ description: None\n values.$members.9:\n- \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n values.$members.8:\n- \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n+ \"0x547D0F472309e4239b296D01e03bEDc101241a26\"\n values.$members.7:\n- \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n+ \"0xf83bC4688979b13Da02CB94c76cEB169540760b5\"\n values.$members.6:\n- \"0x27b1682E9C5Cb0E58Ff474F3a13EeCC36E708ad3\"\n+ \"0x01a0A7BaAAca31AFB5b770FeFD69CE4917D9c32e\"\n values.multisigThreshold:\n- \"6 of 10 (60%)\"\n+ \"6 of 9 (67%)\"\n }\n```"
}
]
},
{
"id": "d41dfdb2",
"date": "Tue, 23 Jul 2024 10:36:43 GMT",
"timestamp": 1721731003,
"description": "EOA signer removed, the LiskRollupOwnerMultisig is now just a transparent MS for Gelato MS. Warning removed from FE.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract LiskRollupOwnerMultisig (0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45) {\n +++ description: None\n values.$multisigThreshold:\n- \"1 of 2 (50%)\"\n+ \"1 of 1 (100%)\"\n values.getOwners.1:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n }\n```"
}
]
},
{
"id": "a85070ce",
"date": "Tue, 23 Jul 2024 07:36:01 GMT",
"timestamp": 1721720161,
"description": "Challenger and Guardian are changed to the GelatoMultisig. Rollup Upgrade owner is still an EOA (and additionally GelatoMS).",
"isHighSeverity": false,
"changeCount": 10,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750) {\n +++ description: None\n values.owner:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n }\n```\n\n```diff\n contract L2OutputOracle (0x113cB99283AF242Da0A0C54347667edF531Aa7d6) {\n +++ description: None\n values.challenger:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n values.CHALLENGER:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n }\n```\n\n```diff\n contract SuperchainConfig (0x26C7bFB430d68Bf74d2d52497836d4336b555dE7) {\n +++ description: None\n values.guardian:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n }\n```\n\n```diff\n contract OptimismPortal (0x26dB93F8b8b4f7016240af62F7730979d353f9A7) {\n +++ description: None\n values.guardian:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n values.GUARDIAN:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n }\n```\n\n```diff\n contract LiskRollupOwnerMultisig (0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45) {\n +++ description: None\n values.$multisigThreshold:\n- \"1 of 1 (100%)\"\n+ \"1 of 2 (50%)\"\n values.getOwners.1:\n+ \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n values.getOwners.0:\n- \"0xdA6e5640aFB2ED212Ba3a6fd83076e2ad3daD185\"\n+ \"0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract GelatoMultisig (0xBeA2Bc852a160B8547273660E22F4F08C2fa9Bbb)\n +++ description: None\n```"
}
]
},
{
"id": "85ed059d",
"date": "Fri, 19 Jul 2024 10:16:12 GMT",
"timestamp": 1721384172,
"description": "Initial discovery: OP stack rollup on the latest superchain (fork) contracts. EOA-governed without being in the Superchain governance.",
"isHighSeverity": false,
"changeCount": 11,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract SystemConfig (0x05f23282FFDCA8286E4738C1aF79079f3d843750)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2OutputOracle (0x113cB99283AF242Da0A0C54347667edF531Aa7d6)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardBridge (0x2658723Bf70c7667De6B25F99fcce13A16D25d08)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuperchainConfig (0x26C7bFB430d68Bf74d2d52497836d4336b555dE7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal (0x26dB93F8b8b4f7016240af62F7730979d353f9A7)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0x2dF7057d3F25212E51aFEA8dA628668229Ea423f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0x31B72D76FB666844C41EdF08dF0254875Dbb7edB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L1ERC721Bridge (0x3A44A3b263FB631cdbf25f339e2D29497511A81f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismMintableERC20Factory (0xc1dA06CC5DD5cE23bABa924463de7F762039252d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xeC432c4F1d0E12737f3a42a459B84848Af979b2d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract LiskRollupOwnerMultisig (0xECd4150ABbb1EBff13f74e42Fb43C3d78B4E0b45)\n +++ description: None\n```"
}
]
}
]
+21 -7
+6 -6
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710467267,
"transactionHash": "0x667a55493b70812eedb69586be570fa87bb305ff046ebd1419cdc71163f770ac",
"implementations": [
"eth:0x6Dbb7D9C5dC60844B8CF442ddC6Be081c060B2E3"
]
},
{
"timestamp": 1776322715,
"transactionHash": "0xa9f65671c6b80206db6f058626a8702cf9171dc5d5ab7e382bf124d2b0e1e55a",
"implementations": [
"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310"
]
}
],
"description": "Contains configuration parameters such as the batch submitter (Sequencer) address, the L2 gas limit, the unsafe block signer address and the Arsia fee/gas mechanics (base/blob scalars, EIP-1559 params, minimum base fee, DA footprint gas scalar and EIP-7706-style operator fee).\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **batcherHash**: EOA 1\n * **owner**: MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x427Ea0710FA5252057F0D88274f7aeb308386cAf#code"
},
{
"name": "OptimismPortal",
"isVerified": true,
"address": "eth:0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
}
],
"description": "The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **guardian**: MantleEngineeringMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x676A795fe6E43C17c668de16730c3F690FEB7120",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1687958039,
"transactionHash": "0x3ef2116cdd9366a646b6625affcf0cbe96bb3c59c3ffc629432d3f79ff1f886c",
"implementations": [
"eth:0x4692363048d0F32a2dE7816860D48fff0c61B24B"
]
},
{
"timestamp": 1710467267,
"transactionHash": "0x667a55493b70812eedb69586be570fa87bb305ff046ebd1419cdc71163f770ac",
"implementations": [
"eth:0x0000000000000000000000000000000000000000"
]
},
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308"
]
}
],
"description": "Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x676A795fe6E43C17c668de16730c3F690FEB7120#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012#code"
},
{
"name": "MantleTokenProxyAdmin",
"isVerified": true,
"address": "eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: TimelockController",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0cac2B1a172ac24012621101634DD5ABD6399ADd#code"
},
{
"name": "OPSuccinctL2OutputOracle",
"isVerified": true,
"address": "eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xD1230865641561653406906Fb08873F011c19080"
]
},
{
"timestamp": 1758005207,
"transactionHash": "0xf9fc68effd8cbd421d25e87a357757fe6710c6c9c0d9c5270d2af5a37f675259",
"implementations": [
"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50"
]
}
],
"description": "Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n* Roles:\n * **admin**: ProxyAdmin; ultimately MantleSecurityMultisig\n * **initialProposer**: EOA 2\n * **owner**: MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481#code"
},
{
"name": "L1MantleToken",
"isVerified": true,
"address": "eth:0x3c3a81e81dc49A522A592e7622A7E711c06bf354",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x0cac2B1a172ac24012621101634DD5ABD6399ADd"
],
"implementations": [
"eth:0xCd368c1d80120b0Dd92447c87eB570154f8e685c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1687241795,
"transactionHash": "0x8f7867724cfba4b9b1b19ca140711809b40dda9ae245caf7bcff9473a5a7e45e",
"implementations": [
"eth:0xCd368c1d80120b0Dd92447c87eB570154f8e685c"
]
}
],
"description": "MNT token contract: Mantle uses Mantle (MNT) as the designated gas token, allowing users pay for gas in MNT.\n* Roles:\n * **admin**: MantleTokenProxyAdmin; ultimately MantleSecurityMultisig",
"upgradableBy": [
{
"name": "MantleSecurityMultisig",
"delay": "1d"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3c3a81e81dc49A522A592e7622A7E711c06bf354#code"
},
{
"name": "TimelockController",
"isVerified": true,
"address": "eth:0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d.\n* Roles:\n * **canceller**: MantleSecurityMultisig\n * **defaultAdmin**: MantleSecurityMultisig, TimelockController; ultimately MantleSecurityMultisig\n * **executor**: MantleSecurityMultisig\n * **proposer**: MantleSecurityMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xca35F8338054739D138884685e08b39EE2217794",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: MantleSecurityMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xca35F8338054739D138884685e08b39EE2217794#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v5.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code"
},
{
"name": "SP1VerifierGateway",
"isVerified": true,
"address": "eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n* Roles:\n * **owner**: SP1VerifierGatewayMultisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.0.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code"
},
{
"name": "SP1Verifier",
"isVerified": true,
"address": "eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Verifier contract for SP1 proofs (v6.1.0).\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code"
}
]
},
"escrows": [
{
"address": "0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"sinceTimestamp": 1710439967,
"tokens": [
"ETH",
"MNT"
],
"contract": {
"isVerified": true,
"address": "eth:0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1710490775,
"transactionHash": "0xa5fff128e999954c7dfe8e3360d0844e439425124922e85cd32fdcf2e3582247",
"implementations": [
"eth:0xe1399f54ba2597b4EaDA9E3450c34D393fb131A7"
]
}
],
"description": "Main entry point for users depositing ETH, MNT.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"sinceTimestamp": 1687954103,
"tokens": "*",
"excludedTokens": [
"SolvBTC",
"SolvBTC.BBN",
"FBTC"
],
"contract": {
"isVerified": true,
"address": "eth:0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xca35F8338054739D138884685e08b39EE2217794"
],
"implementations": [
"eth:0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Main entry point for users depositing ERC20 token that do not require custom gateway.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Aggregation program of OP Succinct",
"description": "Aggregates proofs of correct execution for several consecutive block ranges of OP L2 client. Data availability layer is set to Ethereum blobs.",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.0/programs/aggregation",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1/programs/aggregation",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0` (must match the workspace's `sp1-zkvm = \"=6.4.0\"`).\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.0) repo: `git checkout mantle-v1.6.0`. Commit hash should be `e2eab907bec58ece8ed2206d10f5fd131d864e40`. Unlike the previous `v3.8.1-mainnet-mantle-arsia.*` line, this release pins the `revm` crate family to the public [mantle-xyz/revm](https://github.com/mantle-xyz/revm) fork at tag `v107-mantle-arsia.1`, so no private dependency is required.\n2. Make sure docker is running by running `docker ps`.\n3. Delete the committed ELFs so that only freshly built ones can be hashed: `rm elf/aggregation-elf elf/range-elf-embedded`.\n4. From the `op-succinct` dir: `just build-elfs`. This checks every tag-pinned git dependency against its remote (`verify-git-pins`) and then rebuilds `programs/range/ethereum` and `programs/aggregation` reproducibly with `cargo prove build --docker --tag v6.4.0` (image `ghcr.io/succinctlabs/sp1:v6.4.0`).\n5. From the `op-succinct` dir: `just vkeys` (runs `cargo run --release --bin config` over the rebuilt `elf/*`) and prints the verification key hashes. The `Aggregation Verification Key Hash` printed is this program hash (stored on-chain as `aggregationVkey`). The [mantle-v1.6.0 release notes](https://github.com/mantle-xyz/op-succinct/releases/tag/mantle-v1.6.0) list the expected values.\n\nReproduced 2026-09-11 on Ubuntu 24.04 (x86_64) with SP1 v6.4.0 (`cargo-prove sp1 (f66b4bf 2026-08-12)`, docker image `ghcr.io/succinctlabs/sp1:v6.4.0`) at commit `e2eab907bec58ece8ed2206d10f5fd131d864e40`. The rebuilt `elf/aggregation-elf` (sha256 `d73f10ebd3f643f95cdaef8153d5f22fb5ad6be35ac55351383be5ef83807555`) is byte-identical to the committed one and hashes to `0x005ec5d81cbc4a9a70334f16cb0078d55ae20da550819bd0dc9c5ed12913b407`, matching `aggregationVkey()` on `OPSuccinctL2OutputOracle` (`eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481`).",
"hash": "0x005ec5d81cbc4a9a70334f16cb0078d55ae20da550819bd0dc9c5ed12913b407"
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0`\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1) repo: `git checkout mantle-v1.6.1`. Commit hash should be `8d280ded13f3fcba3d85fb6babedaf75cab5e9c0`.\n2. Make sure docker is running by running `docker ps`\n3. Delete the committed ELFs so that only rebuilt ones get hashed: `rm elf/aggregation-elf elf/range-elf-embedded`\n4. From the `op-succinct` dir: `just build-elfs` to rebuild the SP1 programs in docker.\n5. From the `op-succinct` dir: `just vkeys` to print the verification key hashes. This program hash is the `Aggregation Verification Key Hash`.",
"hash": "0x00fa36417110bce994f3054a68baef78ca51dee1a38659c70e108da7eb3d6bbf"
},
{
"title": "Range program of OP Succinct",
"description": "Proves correct state transition function within an OP L2 client over a range of consecutive L2 blocks. Data availability layer is set to Ethereum blobs.",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.0/programs/range/ethereum",
"programUrl": "https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1/programs/range/ethereum",
"proverSystemProject": "sp1hypercube",
"verificationStatus": "successful",
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0` (must match the workspace's `sp1-zkvm = \"=6.4.0\"`).\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.0) repo: `git checkout mantle-v1.6.0`. Commit hash should be `e2eab907bec58ece8ed2206d10f5fd131d864e40`. Unlike the previous `v3.8.1-mainnet-mantle-arsia.*` line, this release pins the `revm` crate family to the public [mantle-xyz/revm](https://github.com/mantle-xyz/revm) fork at tag `v107-mantle-arsia.1`, so no private dependency is required.\n2. Make sure docker is running by running `docker ps`.\n3. Delete the committed ELFs so that only freshly built ones can be hashed: `rm elf/aggregation-elf elf/range-elf-embedded`.\n4. From the `op-succinct` dir: `just build-elfs`. This checks every tag-pinned git dependency against its remote (`verify-git-pins`) and then rebuilds `programs/range/ethereum` and `programs/aggregation` reproducibly with `cargo prove build --docker --tag v6.4.0` (image `ghcr.io/succinctlabs/sp1:v6.4.0`).\n5. From the `op-succinct` dir: `just vkeys` (runs `cargo run --release --bin config` over the rebuilt `elf/*`) and prints the verification key hashes. The `Range Verification Key Hash` printed is this program hash (stored on-chain as `rangeVkeyCommitment`). The [mantle-v1.6.0 release notes](https://github.com/mantle-xyz/op-succinct/releases/tag/mantle-v1.6.0) list the expected values.\n\nReproduced 2026-09-11 on Ubuntu 24.04 (x86_64) with SP1 v6.4.0 (`cargo-prove sp1 (f66b4bf 2026-08-12)`, docker image `ghcr.io/succinctlabs/sp1:v6.4.0`) at commit `e2eab907bec58ece8ed2206d10f5fd131d864e40`. The rebuilt `elf/range-elf-embedded` (sha256 `17cf90e7205b7654c671d348f1bdc901f5e05010dd7f5865d1a268128694dd98`) is byte-identical to the committed one and hashes to `0x2a928ed475bd7d8b7a54fac7666c68eb62d36fa15fafa8006b885b3237a7bd21`, matching `rangeVkeyCommitment()` on `OPSuccinctL2OutputOracle` (`eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481`).",
"hash": "0x2a928ed475bd7d8b7a54fac7666c68eb62d36fa15fafa8006b885b3237a7bd21"
"verificationSteps": "Prepare:\n\n1. Install sp1 toolchain v6.4.0: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.4.0`\n2. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/)\n3. Install just [https://github.com/casey/just](https://github.com/casey/just)\n\nVerify:\n\n1. Checkout the correct tag in [mantle-xyz/op-succinct](https://github.com/mantle-xyz/op-succinct/tree/mantle-v1.6.1) repo: `git checkout mantle-v1.6.1`. Commit hash should be `8d280ded13f3fcba3d85fb6babedaf75cab5e9c0`.\n2. Make sure docker is running by running `docker ps`\n3. Delete the committed ELFs so that only rebuilt ones get hashed: `rm elf/aggregation-elf elf/range-elf-embedded`\n4. From the `op-succinct` dir: `just build-elfs` to rebuild the SP1 programs in docker.\n5. From the `op-succinct` dir: `just vkeys` to print the verification key hashes. This program hash is the `Range Verification Key Hash`.",
"hash": "0x1e2b863405480e5509bcae955f9e23e1170419ba26af2f271cd0199f1e228fdb"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": [
"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C",
"eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A"
]
}
+1 -1
{
"baseTimestamp": 1789044747,
"baseTimestamp": 1789656344,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+14 -0
[
{
"id": "706bc529",
"date": "Thu, 17 Sep 2026 14:47:04 GMT",
"timestamp": 1789656344,
"description": "OPSuccinctL2OutputOracle: `aggregationVkey` and `rangeVkeyCommitment` updated to the [mantle-v1.6.1](https://github.com/mantle-xyz/op-succinct/releases/tag/mantle-v1.6.1) op-succinct release keys.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) [succinct/OPSuccinct/OPSuccinctL2OutputOracle_mantle] {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x005ec5d81cbc4a9a70334f16cb0078d55ae20da550819bd0dc9c5ed12913b407\"\n+ \"0x00fa36417110bce994f3054a68baef78ca51dee1a38659c70e108da7eb3d6bbf\"\n values.rangeVkeyCommitment:\n- \"0x2a928ed475bd7d8b7a54fac7666c68eb62d36fa15fafa8006b885b3237a7bd21\"\n+ \"0x1e2b863405480e5509bcae955f9e23e1170419ba26af2f271cd0199f1e228fdb\"\n }\n```"
}
]
},
{
"id": "2437125d",
"date": "Thu, 10 Sep 2026 12:53:46 GMT",
"timestamp": 1789044747,
"description": "OPSuccinctL2OutputOracle: `aggregationVkey` and `rangeVkeyCommitment` updated to the [mantle-v1.6.0](https://github.com/mantle-xyz/op-succinct/releases/tag/mantle-v1.6.0) op-succinct release keys.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) [succinct/OPSuccinct/OPSuccinctL2OutputOracle_mantle] {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x0063d017f049d215e2cda7f7826d7c1a8176a678203d6f74a731fc331cc16377\"\n+ \"0x005ec5d81cbc4a9a70334f16cb0078d55ae20da550819bd0dc9c5ed12913b407\"\n values.rangeVkeyCommitment:\n- \"0x1dc938274cd550224002662e765b50c838b6fcb3234308b847ece2ce0e4a5631\"\n+ \"0x2a928ed475bd7d8b7a54fac7666c68eb62d36fa15fafa8006b885b3237a7bd21\"\n }\n```"
}
]
},
{
"id": "7337d399",
"date": "Mon, 10 Aug 2026 11:03:46 GMT",
"timestamp": 1786359758,
"description": "OPSuccinctL2OutputOracle: `aggregationVkey`, `rangeVkeyCommitment` and `rollupConfigHash` rotated to the OP-Succinct v3.8.1 program versions. Both new verification keys are recorded in `programHashes.ts` as not verified, because reproducing them currently requires a private dependency.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) [succinct/OPSuccinct/OPSuccinctL2OutputOracle_mantle] {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x001db6dc655ffc97e6ec7a2b5c9b1ddf42c2235faa007d8a96d659c68b7c432a\"\n+ \"0x0063d017f049d215e2cda7f7826d7c1a8176a678203d6f74a731fc331cc16377\"\n values.rangeVkeyCommitment:\n- \"0x6f0230de6e9b59592b3127f55829c9a766d397903df5c57d557c91634a30b32b\"\n+ \"0x1dc938274cd550224002662e765b50c838b6fcb3234308b847ece2ce0e4a5631\"\n values.rollupConfigHash:\n- \"0x6681c11eccf96068a081bbb888fd64ce72aa83bd1ccda5bbb53b4c43368cf87f\"\n+ \"0x40d5353fb8c9257f03461070a2bfc2b18f2f822b69c64f0c467402c2fc422ecb\"\n }\n```"
}
]
},
{
"id": "32d5466d",
"date": "Wed, 24 Jun 2026 11:02:47 GMT",
"timestamp": 1782298886,
"description": "Upgraded op-succinct programs to v2.2.4-mainnet.4. Hashes reproduced.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) [succinct/OPSuccinct/OPSuccinctL2OutputOracle_mantle] {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x0006e0a9f37edc912bb269856518599d61689c78300c23615b2f90868d0181cf\"\n+ \"0x001db6dc655ffc97e6ec7a2b5c9b1ddf42c2235faa007d8a96d659c68b7c432a\"\n values.rangeVkeyCommitment:\n- \"0x1d1e0ac74bb66ded0388062e779adae47925fd572a49a3424e2684f83d776004\"\n+ \"0x6f0230de6e9b59592b3127f55829c9a766d397903df5c57d557c91634a30b32b\"\n }\n```"
}
]
},
{
"id": "f3a3d709",
"date": "Fri, 15 May 2026 07:43:09 GMT",
"timestamp": 1778830889,
"description": "MantleEngineeringMultisig: Two members rotated. No threshold or permission changes.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleEngineeringMultisig (eth:0x2F44BD2a54aC3fB20cd7783cF94334069641daC9) [GnosisSafe] {\n +++ description: None\n values.$members.3:\n- \"eth:0x00da2F87c56C3a19BD863613995705095F55b524\"\n+ \"eth:0xAAc91F5766905cE034FE9f650d067a236E845c45\"\n values.$members.4:\n- \"eth:0xbE73dea9c8DcDdB6b03F7e5797b85982065fe34e\"\n+ \"eth:0xE8Da2d2381500E863dE1d8396c86C947c8E3Fd3a\"\n }\n```"
}
]
},
{
"id": "d64f0885",
"date": "Tue, 05 May 2026 17:17:19 GMT",
"timestamp": 1778001356,
"description": "**Mantle SP1 prover upgrade — moved from a single SP1Verifier to a gateway-based verification system.**\n- **OPSuccinctL2OutputOracle** vkey rotation: `aggregationVkey 0x002237... → 0x0006e0a9...` and `rangeVkeyCommitment 0x08666b... → 0x1d1e0ac7...`. New entries added to `programHashes.ts` as `notVerified` (sp1hypercube prover system, exact mantle-xyz/op-succinct tag not yet identified).\n- New **SP1VerifierGateway** (`0x3B604117...`) replaces the previous direct SP1Verifier reference. The gateway routes proofs to underlying verifier contracts by program identifier.\n- New **SP1Verifier (v6.0.0)** at `0x8a0fd5e8...` and a second SP1Verifier at `0xc3c6dDDA...` registered via the gateway.\n- New **SP1VerifierGatewayMultisig** (`0xCafEf00d...`) — Gnosis Safe controlling the gateway's verifier route registry.\n- `zkCatalogId` flipped from `sp1turbo` to `sp1hypercube` to reflect the new SP1Verifier v6.0.0 routes wired into the gateway. The legacy sp1turbo verifier (`0x0459d576...`, selector `0xd4e8ecd2`) is still registered in the gateway's `activeVerifiers`, so mantle remains listed in `sp1turbo.tvsProjects` (no `untilTimestamp` set).",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x0022379400ea3157fae440ae7a8101e8bb01ca58e6a5f132c66751513aa58f08\"\n+ \"0x0006e0a9f37edc912bb269856518599d61689c78300c23615b2f90868d0181cf\"\n values.rangeVkeyCommitment:\n- \"0x08666bcf03c2240b14b399040abdc4aa2fe934535315fd3c158f010926d1e4a5\"\n+ \"0x1d1e0ac74bb66ded0388062e779adae47925fd572a49a3424e2684f83d776004\"\n values.verifier:\n- \"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459\"\n+ \"eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGateway (eth:0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C)\n +++ description: Verifier contract for SP1 proofs (v6.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGatewayMultisig (eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
},
{
"id": "c3e9d0e9",
"date": "Fri, 24 Apr 2026 13:45:33 GMT",
"timestamp": 1777038258,
"description": "Arsia fee mechanics activated: owner populated the Arsia-era SystemConfig fields that had been zero since the v1.4.0 upgrade. `basefeeScalar` set to 169019, `daFootprintGasScalar` to 400, `eip1559Denominator` to 50, `eip1559Elasticity` to 4, `minBaseFee` to 50 gwei, `operatorFeeScalar` to 100000000. `gasLimit` decreased from 200B (a pre-Arsia placeholder above the 500M cap) to a normal 60M.\n\nOPSuccinctL2OutputOracle rotated SP1 verification keys: `aggregationVkey` → `0x0022379400ea3157...`, `rangeVkeyCommitment` → `0x08666bcf03c2240b...`. Program hashes regenerated from [mantle-xyz/[email protected]](https://github.com/mantle-xyz/op-succinct/tree/v2.2.0-beta.8) (commit `8542b244fac50b3db2cb027c6282b9f42fd81af9`) and added to `programHashes.ts` as `successful`.",
"isHighSeverity": false,
"changeCount": 9,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x00767dc6943b07bd7c57755dad9156b5e89c23d714f8475d5b7a207f74360654\"\n+ \"0x0022379400ea3157fae440ae7a8101e8bb01ca58e6a5f132c66751513aa58f08\"\n values.rangeVkeyCommitment:\n- \"0x47fd478c5b2111934c7a233c409f16553d0f67d5701e58fa76c77339764bfd7a\"\n+ \"0x08666bcf03c2240b14b399040abdc4aa2fe934535315fd3c158f010926d1e4a5\"\n }\n```\n\n```diff\n contract SystemConfig (eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf) {\n +++ description: Contains configuration parameters such as the batch submitter (Sequencer) address, the L2 gas limit, the unsafe block signer address and the Arsia fee/gas mechanics (base/blob scalars, EIP-1559 params, minimum base fee, DA footprint gas scalar and EIP-7706-style operator fee).\n values.basefeeScalar:\n- 0\n+ 169019\n values.daFootprintGasScalar:\n- 0\n+ 400\n+++ description: volatility param: lower denominator -> quicker fee changes on L2\n values.eip1559Denominator:\n- 0\n+ 50\n values.eip1559Elasticity:\n- 0\n+ 4\n+++ description: Gas limit for blocks on L2. Future `setGasLimit` calls are bounded by `maximumGasLimit()` (500,000,000 in this implementation); the currently stored value is a pre-Arsia configuration above that bound and is retained as-is in storage.\n+++ severity: LOW\n values.gasLimit:\n- 200000000000\n+ 60000000\n values.minBaseFee:\n- 0\n+ 50000000000\n values.operatorFeeScalar:\n- 0\n+ 100000000\n }\n```"
}
]
},
{
"id": "3460a30b",
"date": "Thu, 16 Apr 2026 21:38:17 GMT",
"timestamp": 1776375430,
"description": "SystemConfig upgraded to v1.4.0 (Arsia upgrade), new implementation at `0x9CA047689261E35c9e507b1BB0B7443C2A436310` ([diff](https://disco.l2beat.com/diff/eth:0x6Dbb7D9C5dC60844B8CF442ddC6Be081c060B2E3/eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310)). The owner (MantleSecurityMultisig) keeps `onlyOwner` control but the setter surface changes significantly:\n\n- Removed `setPreconfer`, `setBatchInbox`, and the `preconfer` / `batchInbox` storage fields. The shape is moved to a new dedicated `opstack/SystemConfig_v1_4_0_mantle` template (restricted by `validAddresses` to the Mantle SystemConfig proxy) so the owner-permission description matches the actual v1.4.0 setter surface instead of the shared template's stale \"preconfer/batch submitter\" wording.\n- Added separate base/blob fee scalars via `setGasConfigArsia(basefeeScalar, blobbasefeeScalar)`; the legacy `setGasConfig(overhead, scalar)` is still callable and marked deprecated.\n- Added `setEIP1559Params(denominator, elasticity)`, `setMinBaseFee`, `setDAFootprintGasScalar`, `setBaseFee`, and an EIP-7706-style `setOperatorFeeScalars(operatorFeeScalar, operatorFeeConstant)`.\n- Added `maximumGasLimit()` pure getter returning `500_000_000`. The currently stored `gasLimit` is `200_000_000_000` — i.e. 400× the new cap — and is retained as-is in storage (the cap is enforced on `initialize` and `setGasLimit`, not on existing storage). As a consequence, any future owner-initiated `setGasLimit` call must reduce the limit to `≤ 500_000_000`; raising it back above that ceiling would require another implementation upgrade. `batcherHash` now returns a raw `bytes32` from the new ABI (the template's view override casts it back to an address).\n\nThe new Arsia-era fields (`basefeeScalar`, `blobbasefeeScalar`, `daFootprintGasScalar`, `eip1559Denominator`, `eip1559Elasticity`, `minBaseFee`, `operatorFeeConstant`, `operatorFeeScalar`) all initialize to zero, so the new fee mechanics are not yet activated onchain. The legacy `baseFee`, `overhead`, `scalar`, and `resourceConfig` values remain populated as before. `sequencerInbox` is still derived by the template from `batcherHash` and continues to track the same batch inbox address.\n\nOPSuccinctL2OutputOracle rotated its SP1 verification keys (`aggregationVkey` `0x00767dc6...`, `rangeVkeyCommitment` `0x47fd478c...`) and the `rollupConfigHash`. The Mantle team confirmed the ELFs were produced from [mantle-xyz/[email protected]](https://github.com/mantle-xyz/op-succinct/tree/v2.2.0-beta.5) (commit `c269e9b792d762889f869c4526bba1bfe016036e`), and that the EigenDA code path has been removed entirely in the Arsia build — `programs/range/eigenda/` and the `EIGENDA_RANGE_ELF_EMBEDDED` constant are gone, only `programs/range/ethereum/` remains. The entries in `programHashes.ts` are labeled `OP_SUCCINCT_AGG_BLOBS` / `OP_SUCCINCT_RANGE_BLOBS` with `programUrl` and `verificationSteps` pinned to the `v2.2.0-beta.5` tag.",
"isHighSeverity": true,
"changeCount": 23,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x006110a295396036ad8df48c333e2b99b11624799138fbc18e10181551e29eb1\"\n+ \"0x00767dc6943b07bd7c57755dad9156b5e89c23d714f8475d5b7a207f74360654\"\n values.rangeVkeyCommitment:\n- \"0x05044f60230e1ea664a43fa92e27735e3bbc97736c2e7ab961a5115a732a6da5\"\n+ \"0x47fd478c5b2111934c7a233c409f16553d0f67d5701e58fa76c77339764bfd7a\"\n values.rollupConfigHash:\n- \"0x7e7ac4e2e568c2b6cc18427820fa07f8d1e1bd2c360058db04b1bf4b7e775bcd\"\n+ \"0x6681c11eccf96068a081bbb888fd64ce72aa83bd1ccda5bbb53b4c43368cf87f\"\n }\n```\n\n```diff\n contract SystemConfig (eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf) {\n +++ description: Contains configuration parameters such as the batch submitter (Sequencer) address, the L2 gas limit, the unsafe block signer address and the Arsia fee/gas mechanics (base/blob scalars, EIP-1559 params, minimum base fee, DA footprint gas scalar and EIP-7706-style operator fee).\n template:\n- \"opstack/SystemConfig\"\n+ \"opstack/SystemConfig_v1_4_0_mantle\"\n sourceHashes.1:\n- \"0xb2a3bda11c08328ecb46ec5789f3264be5d816bc218a5024a4cafd1c59017160\"\n+ \"0x7ccc5496582a9154f67199e39a3b2e8f330f1acf0fe0b80d8f151067e7e9fa14\"\n description:\n- \"Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\"\n+ \"Contains configuration parameters such as the batch submitter (Sequencer) address, the L2 gas limit, the unsafe block signer address and the Arsia fee/gas mechanics (base/blob scalars, EIP-1559 params, minimum base fee, DA footprint gas scalar and EIP-7706-style operator fee).\"\n values.$implementation:\n- \"eth:0x6Dbb7D9C5dC60844B8CF442ddC6Be081c060B2E3\"\n+ \"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310\"\n values.$pastUpgrades.1:\n+ [\"2026-04-16T06:58:35.000Z\",\"0xa9f65671c6b80206db6f058626a8702cf9171dc5d5ab7e382bf124d2b0e1e55a\",[\"eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.version:\n- \"1.3.0\"\n+ \"1.4.0\"\n values.basefeeScalar:\n+ 0\n values.blobbasefeeScalar:\n+ 0\n values.daFootprintGasScalar:\n+ 0\n+++ description: volatility param: lower denominator -> quicker fee changes on L2\n values.eip1559Denominator:\n+ 0\n values.eip1559Elasticity:\n+ 0\n values.maximumGasLimit:\n+ 500000000\n values.minBaseFee:\n+ 0\n values.operatorFeeConstant:\n+ 0\n values.operatorFeeScalar:\n+ 0\n fieldMeta.gasLimit.description:\n- \"Gas limit for blocks on L2.\"\n+ \"Gas limit for blocks on L2. Future `setGasLimit` calls are bounded by `maximumGasLimit()` (500,000,000 in this implementation); the currently stored value is a pre-Arsia configuration above that bound and is retained as-is in storage.\"\n implementationNames.eth:0x6Dbb7D9C5dC60844B8CF442ddC6Be081c060B2E3:\n- \"SystemConfig\"\n implementationNames.eth:0x9CA047689261E35c9e507b1BB0B7443C2A436310:\n+ \"SystemConfig\"\n }\n```\n\n```diff\n contract MantleSecurityMultisig (eth:0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n receivedPermissions.1.description:\n- \"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\"\n+ \"it can update the batch submitter (Sequencer) address, the unsafe block signer, the L2 gas limit (bounded by `maximumGasLimit()`), the resource metering config, and all fee/gas parameters: legacy `setGasConfig(overhead, scalar)`, Arsia `setGasConfigArsia(basefeeScalar, blobbasefeeScalar)`, `setBaseFee`, `setEIP1559Params`, `setMinBaseFee`, `setDAFootprintGasScalar` and `setOperatorFeeScalars`.\"\n }\n```"
}
]
},
{
"id": "930cf6f5",
"date": "Tue, 27 Jan 2026 17:04:07 GMT",
"timestamp": 1769533383,
"description": "OPSuccinctL2OutputOracle updated rangeVkeyCommitment verification key (0x5d15e8...→0x05044f...). This is a hotfix addressing an issue where Mantle logic in revm was inconsistent with geth, which prevented the generation of the corresponding ZKP.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.rangeVkeyCommitment:\n- \"0x5d15e85151cc8f4b68d2721f675b0b8665a7a2752fa34ff935d5adbc3c8acab8\"\n+ \"0x05044f60230e1ea664a43fa92e27735e3bbc97736c2e7ab961a5115a732a6da5\"\n }\n```"
}
]
},
{
"id": "5417814c",
"date": "Wed, 21 Jan 2026 14:00:22 GMT",
"timestamp": 1769003954,
"description": "Mantle enables Ethereum blobs for data availability alongside EigenDA. The SystemConfig now shows `isUsingEigenDA: false` and `isSequencerSendingBlobTx: true`, but the system can still post to EigenDA offchain via Hydro. Trust assumptions remain unchanged as there is no onchain EigenDA verifier. MantleSecurityMultisig membership updated (added 1 member, threshold now 6 of 14).",
"isHighSeverity": false,
"changeCount": 7,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SystemConfig (eth:0x427Ea0710FA5252057F0D88274f7aeb308386cAf) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.opStackDA.isSequencerSendingBlobTx:\n- false\n+ true\n values.opStackDA.isUsingEigenDA:\n- \"v1\"\n+ false\n }\n```\n\n```diff\n contract MantleSecurityMultisig (eth:0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n values.$members.0:\n+ \"eth:0xc77E153e3c7ab09e9216a21Bd3fa2e1f4C24118D\"\n values.$members.1:\n- \"eth:0x61Af7a48B0EeA8481E5A055A35f829d0e8505fE3\"\n+ \"eth:0xA081e53597173e4e405Ef907C630585c22ef089b\"\n values.$members.7:\n- \"eth:0x3Dc5FcB0Ad5835C6059112e51A75b57DBA668eB8\"\n+ \"eth:0xE6a04E34D329f912Aca478Df7FDbe378E30eb0E5\"\n values.$members.12:\n- \"eth:0x915dc866e2e5E64f912A5ac1D40E3be4597F172a\"\n+ \"eth:0x63a7E8AbD9A3771aF5ac0bfdef04769C2f9e2916\"\n values.multisigThreshold:\n- \"6 of 13 (46%)\"\n+ \"6 of 14 (43%)\"\n }\n```"
}
]
},
{
"id": "58e087bc",
"date": "Wed, 07 Jan 2026 11:10:54 GMT",
"timestamp": 1767784170,
"description": "SP1 verifier rotation: the verifier contract changed from the gateway pattern (SP1VerifierGateway routing to SP1Verifier) to a direct SP1Verifier contract. The new verifier has updated verification keys (aggregationVkey, rangeVkeyCommitment, rollupConfigHash). SP1 version remains v5.0.0.",
"isHighSeverity": false,
"changeCount": 8,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.aggregationVkey:\n- \"0x00bca7947ba758bd6f539f480c6d983cca4bd4387a411a41a71fb953d5df3de7\"\n+ \"0x006110a295396036ad8df48c333e2b99b11624799138fbc18e10181551e29eb1\"\n values.rangeVkeyCommitment:\n- \"0x2d0dcc4f4a5e59b80239c28a3fb68ab63b8eaf6f132239e95f927da9046f4256\"\n+ \"0x5d15e85151cc8f4b68d2721f675b0b8665a7a2752fa34ff935d5adbc3c8acab8\"\n values.rollupConfigHash:\n- \"0x46fed49cbaf7272fb44cbd470ac7ee460d5e3b22eed239059bbbf4b356351792\"\n+ \"0x7e7ac4e2e568c2b6cc18427820fa07f8d1e1bd2c360058db04b1bf4b7e775bcd\"\n values.verifier:\n- \"eth:0x397A5f7f3dBd538f23DE225B51f532c34448dA9B\"\n+ \"eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459\"\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1VerifierGateway (eth:0x397A5f7f3dBd538f23DE225B51f532c34448dA9B)\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```\n\n```diff\n- Status: DELETED\n contract SP1VerifierGatewayMultisig (eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```"
}
]
},
{
"id": "d7e3f45d",
"date": "Wed, 24 Sep 2025 09:25:43 GMT",
"timestamp": 1758705864,
"description": "Execution delay changed from 7 days to 12 hours. It's the same value for optimistic or non-optimistic mode, so when optimistic mode is enabled this parameter should be updated (e.g., back to 7 days).",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n values.FINALIZATION_PERIOD_SECONDS:\n- 604800\n+ 43200\n values.finalizationPeriodSeconds:\n- 604800\n+ 43200\n }\n```"
}
]
},
{
"id": "df347cbc",
"date": "Wed, 17 Sep 2025 15:47:02 GMT",
"timestamp": 1758123938,
"description": "OPSuccinctL2OutputOracle - completely different contract\n(https://disco.l2beat.com/diff/eth:0xD1230865641561653406906Fb08873F011c19080/eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50)\nbetter compared with Phala which is standard OPSuccinct\n(https://disco.l2beat.com/diff/eth:0x9d843e5b627759e8aB2Db5B95cCA1e5BB91F1174/eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50)",
"isHighSeverity": true,
"changeCount": 34,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleEngineeringMultisig (eth:0x2F44BD2a54aC3fB20cd7783cF94334069641daC9) {\n +++ description: None\n receivedPermissions.0:\n- {\"permission\":\"challenge\",\"from\":\"eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\",\"role\":\".CHALLENGER\"}\n }\n```\n\n```diff\n contract OPSuccinctL2OutputOracle (eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481) {\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\n name:\n- \"L2OutputOracle\"\n+ \"OPSuccinctL2OutputOracle\"\n template:\n- \"opstack/L2OutputOracle\"\n+ \"succinct/OPSuccinct/OPSuccinctL2OutputOracle_mantle\"\n sourceHashes.1:\n- \"0x45368d302fba850124115aa8ee67238f47d47d89c2b1b8c5dfd39818369e6cea\"\n+ \"0xdd58c04f5920f546ba5a9bc5b046cdae6bf42acb819e90e2f66e10cc81afbc9f\"\n description:\n- \"Contains a list of proposed state roots which Proposers assert to be a result of block execution. Currently only the PROPOSER address can submit new state roots.\"\n+ \"Contains a list of proposed state roots which Proposers assert to be a result of block execution. The SuccinctL2OutputOracle modifies the L2OutputOracle to support whenNotOptimistic mode, in which a validity proof can be passed as input argument to the proposeL2Output function.\"\n values.$implementation:\n- \"eth:0xD1230865641561653406906Fb08873F011c19080\"\n+ \"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50\"\n values.$pastUpgrades.1:\n+ [\"2025-09-16T06:46:47.000Z\",\"0xf9fc68effd8cbd421d25e87a357757fe6710c6c9c0d9c5270d2af5a37f675259\",[\"eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50\"]]\n values.$upgradeCount:\n- 1\n+ 2\n values.deletedOutputs:\n- []\n values.PROPOSER:\n- \"eth:0x6667961f5e9C98A76a48767522150889703Ed77D\"\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.version:\n- \"1.3.0\"\n+ \"2.0.1\"\n values.additionalProposers:\n+ []\n values.aggregationVkey:\n+ \"0x00bca7947ba758bd6f539f480c6d983cca4bd4387a411a41a71fb953d5df3de7\"\n values.challenger:\n+ \"eth:0x2F44BD2a54aC3fB20cd7783cF94334069641daC9\"\n values.finalizationPeriodSeconds:\n+ 604800\n values.initializerVersion:\n+ 3\n values.initialProposer:\n+ \"eth:0x6667961f5e9c98a76a48767522150889703ed77d\"\n values.l2BlockTime:\n+ 2\n values.optimisticMode:\n+ false\n values.owner:\n+ \"eth:0x4e59e778a0fb77fBb305637435C62FaeD9aED40f\"\n values.proposer:\n+ \"eth:0x0000000000000000000000000000000000000000\"\n values.rangeVkeyCommitment:\n+ \"0x2d0dcc4f4a5e59b80239c28a3fb68ab63b8eaf6f132239e95f927da9046f4256\"\n values.rollupConfigHash:\n+ \"0x46fed49cbaf7272fb44cbd470ac7ee460d5e3b22eed239059bbbf4b356351792\"\n values.submissionInterval:\n+ 1800\n values.verifier:\n+ \"eth:0x397A5f7f3dBd538f23DE225B51f532c34448dA9B\"\n fieldMeta:\n- {\"FINALIZATION_PERIOD_SECONDS\":{\"description\":\"Challenge period (Number of seconds until a state root is finalized).\"},\"proposer\":{\"severity\":\"HIGH\"},\"challenger\":{\"severity\":\"HIGH\"},\"deletedOutputs\":{\"severity\":\"HIGH\"}}\n implementationNames.eth:0xD1230865641561653406906Fb08873F011c19080:\n- \"L2OutputOracle\"\n implementationNames.eth:0x4059509fFb703B048D1e9Ce3118F90E759076f50:\n+ \"OPSuccinctL2OutputOracle\"\n category:\n- {\"name\":\"Local Infrastructure\",\"priority\":5}\n }\n```\n\n```diff\n contract MantleSecurityMultisig (eth:0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n receivedPermissions.0:\n+ {\"permission\":\"interact\",\"from\":\"eth:0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\",\"description\":\"can toggle between the optimistic mode and not optimistic (ZK) mode.\",\"role\":\".owner\"}\n }\n```\n\n```diff\n EOA (eth:0x6667961f5e9C98A76a48767522150889703Ed77D) {\n +++ description: None\n receivedPermissions.0.role:\n- \".PROPOSER\"\n+ \".initialProposer\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGateway (eth:0x397A5f7f3dBd538f23DE225B51f532c34448dA9B)\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (eth:0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5)\n +++ description: Verifier contract for SP1 proofs (v5.0.0).\n```\n\n```diff\n+ Status: CREATED\n contract SP1VerifierGatewayMultisig (eth:0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
},
{
"id": "48672b22",
"date": "Mon, 14 Jul 2025 12:45:24 GMT",
"timestamp": 1752497124,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 12,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract MantleTokenProxyAdmin (0x0cac2B1a172ac24012621101634DD5ABD6399ADd)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract MantleEngineeringMultisig (0x2F44BD2a54aC3fB20cd7783cF94334069641daC9)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2OutputOracle (0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481)\n +++ description: Contains a list of proposed state roots which Proposers assert to be a result of block execution. Currently only the PROPOSER address can submit new state roots.\n```\n\n```diff\n+ Status: CREATED\n contract L1MantleToken (0x3c3a81e81dc49A522A592e7622A7E711c06bf354)\n +++ description: MNT token contract: Mantle uses Mantle (MNT) as the designated gas token, allowing users pay for gas in MNT.\n```\n\n```diff\n+ Status: CREATED\n contract SystemConfig (0x427Ea0710FA5252057F0D88274f7aeb308386cAf)\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n```\n\n```diff\n+ Status: CREATED\n contract MantleSecurityMultisig (0x4e59e778a0fb77fBb305637435C62FaeD9aED40f)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```\n\n```diff\n+ Status: CREATED\n contract L1CrossDomainMessenger (0x676A795fe6E43C17c668de16730c3F690FEB7120)\n +++ description: Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain's epoch gas limit, it can be resubmitted via this contract's replay function.\n```\n\n```diff\n+ Status: CREATED\n contract AddressManager (0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42)\n +++ description: Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\n```\n\n```diff\n+ Status: CREATED\n contract L1StandardBridge (0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012)\n +++ description: The main entry point to deposit ERC20 tokens from host chain to this chain.\n```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal (0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb)\n +++ description: The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals.\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xca35F8338054739D138884685e08b39EE2217794)\n +++ description: None\n```"
}
]
},
{
"id": "bf521ab2",
"date": "Wed, 19 Mar 2025 15:45:59 GMT",
"timestamp": 1742399159,
"description": "SequencerInbox change. The forked EigenDA contracts are not used since this upgrade. Instead assumed DA commitments are posted to the new `0xFFEEDDCcBbAA0000000000000000000000000000` address by the Sequencer.\n\nrelated to Mantle moving to EigenDA (with Ethereum blob fallback):\n- https://blog.openzeppelin.com/mantle-op-geth-op-stack-diff-audit#system-overview\n- https://github.com/mantlenetworkio/mantle-v2/releases/tag/v1.1.1\n\nremoved the MantleDA related contracts.",
"isHighSeverity": false,
"changeCount": 54,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract PauserRegistry (0x075a48633dc6845f92339741E9c96b88f1b2A86f)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract BLSRegistry (0x1eD35B793d887e028493dAC4a11AA5Feb811dd67)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract InvestmentManager (0x23754725a49c0f003C349A6C7869fF8609a7CEfd)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract ProxyAdmin (0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83)\n +++ description: None\n```\n\n```diff\n contract SystemConfig (0x427Ea0710FA5252057F0D88274f7aeb308386cAf) {\n +++ description: Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n values.sequencerInbox:\n- \"0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1\"\n+ \"0xFFEEDDCcBbAA0000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract ProxyAdmin (0x47D58744D8515d9aaEAf961bc03625118bd91EBb)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract PauserRegistry (0x4ca725D446EcE6e3fFd3E072A6f2A6a16Ca492D0)\n +++ description: None\n```\n\n```diff\n contract MantleSecurityMultisig (0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n receivedPermissions.19:\n- {\"permission\":\"upgrade\",\"from\":\"0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb\",\"via\":[{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]}\n receivedPermissions.18:\n- {\"permission\":\"upgrade\",\"from\":\"0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\",\"via\":[{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]}\n receivedPermissions.17:\n- {\"permission\":\"upgrade\",\"from\":\"0x1eD35B793d887e028493dAC4a11AA5Feb811dd67\",\"via\":[{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]}\n receivedPermissions.16:\n- {\"permission\":\"interact\",\"from\":\"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\",\"description\":\"manage all access control roles.\",\"via\":[{\"address\":\"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\",\"delay\":86400}]}\n receivedPermissions.15:\n- {\"permission\":\"interact\",\"from\":\"0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42\",\"description\":\"set and change address mappings.\",\"via\":[{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]}\n receivedPermissions.14:\n- {\"permission\":\"upgrade\",\"from\":\"0xBcF6d8273DAF842b6Fc288b08E48C438Fa911D01\",\"via\":[{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]}\n receivedPermissions.13:\n- {\"permission\":\"upgrade\",\"from\":\"0xc9C24f1aaD2614E81f033746292F5Dc5d7Ccad94\",\"via\":[{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]}\n receivedPermissions.12:\n- {\"permission\":\"upgrade\",\"from\":\"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\",\"via\":[{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]}\n receivedPermissions.11.from:\n- \"0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1\"\n+ \"0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb\"\n receivedPermissions.11.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.10.from:\n- \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n+ \"0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\"\n receivedPermissions.10.via.1:\n- {\"address\":\"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"}\n receivedPermissions.10.via.0.address:\n- \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.10.via.0.delay:\n- 86400\n receivedPermissions.9.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.9.from:\n- \"0x92986cd63C3409b7dA2882624B6d6E7Cf660707a\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.9.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.9.via.0.delay:\n+ 86400\n receivedPermissions.9.description:\n+ \"manage all access control roles.\"\n receivedPermissions.8.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.8.from:\n- \"0xCDC78c5eaea2dE33B00a9200Ee1700937fb0f55D\"\n+ \"0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42\"\n receivedPermissions.8.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.8.description:\n+ \"set and change address mappings.\"\n receivedPermissions.7.permission:\n- \"interact\"\n+ \"upgrade\"\n receivedPermissions.7.from:\n- \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n+ \"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\"\n receivedPermissions.7.description:\n- \"manage all access control roles.\"\n receivedPermissions.7.via:\n+ [{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]\n receivedPermissions.6.permission:\n- \"interact\"\n+ \"upgrade\"\n receivedPermissions.6.from:\n- \"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\"\n+ \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n receivedPermissions.6.description:\n- \"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\"\n receivedPermissions.6.via:\n+ [{\"address\":\"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"},{\"address\":\"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\",\"delay\":86400}]\n receivedPermissions.5.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.5.from:\n- \"0x23754725a49c0f003C349A6C7869fF8609a7CEfd\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.5.via:\n- [{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]\n receivedPermissions.5.description:\n+ \"manage all access control roles.\"\n receivedPermissions.4.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.4.from:\n- \"0xeA4F1fE4928f1f83a450899C068bcd455BaF4798\"\n+ \"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\"\n receivedPermissions.4.via:\n- [{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]\n receivedPermissions.4.description:\n+ \"it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.\"\n directlyReceivedPermissions.3:\n- {\"permission\":\"act\",\"from\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}\n directlyReceivedPermissions.2:\n- {\"permission\":\"act\",\"from\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract DataLayrServiceManager (0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract BLSPublicKeyCompendium (0x92986cd63C3409b7dA2882624B6d6E7Cf660707a)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract RegistryPermission (0xBcF6d8273DAF842b6Fc288b08E48C438Fa911D01)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract DataLayrChallenge (0xc9C24f1aaD2614E81f033746292F5Dc5d7Ccad94)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract DataLayrChallengeUtils (0xCDC78c5eaea2dE33B00a9200Ee1700937fb0f55D)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract EigenLayrDelegation (0xeA4F1fE4928f1f83a450899C068bcd455BaF4798)\n +++ description: None\n```"
}
]
},
{
"id": "db6c62b7",
"date": "Tue, 18 Feb 2025 10:00:52 GMT",
"timestamp": 1739872852,
"description": "Token ProxyAdmin owner transferred to a timelock.",
"isHighSeverity": false,
"changeCount": 60,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleTokenProxyAdmin (0x0cac2B1a172ac24012621101634DD5ABD6399ADd) {\n +++ description: None\n values.owner:\n- \"0x4e59e778a0fb77fBb305637435C62FaeD9aED40f\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n }\n```\n\n```diff\n contract L1MantleToken (0x3c3a81e81dc49A522A592e7622A7E711c06bf354) {\n +++ description: MNT token contract: Mantle uses Mantle (MNT) as the designated gas token, allowing users pay for gas in MNT.\n issuedPermissions.0.via.1:\n+ {\"address\":\"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"}\n issuedPermissions.0.via.0.address:\n- \"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n issuedPermissions.0.via.0.delay:\n+ 86400\n }\n```\n\n```diff\n contract MantleSecurityMultisig (0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n receivedPermissions.22:\n+ {\"permission\":\"upgrade\",\"from\":\"0xeA4F1fE4928f1f83a450899C068bcd455BaF4798\",\"via\":[{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]}\n receivedPermissions.21:\n+ {\"permission\":\"upgrade\",\"from\":\"0xCDC78c5eaea2dE33B00a9200Ee1700937fb0f55D\",\"via\":[{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]}\n receivedPermissions.20:\n+ {\"permission\":\"upgrade\",\"from\":\"0xCAD08A7B9eF6ADeFAef08d0d85a577a288F93Ee1\",\"via\":[{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]}\n receivedPermissions.19:\n+ {\"permission\":\"upgrade\",\"from\":\"0xc9C24f1aaD2614E81f033746292F5Dc5d7Ccad94\",\"via\":[{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]}\n receivedPermissions.18:\n+ {\"permission\":\"upgrade\",\"from\":\"0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb\",\"via\":[{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]}\n receivedPermissions.17.from:\n- \"0xeA4F1fE4928f1f83a450899C068bcd455BaF4798\"\n+ \"0xBcF6d8273DAF842b6Fc288b08E48C438Fa911D01\"\n receivedPermissions.16.from:\n- \"0xCDC78c5eaea2dE33B00a9200Ee1700937fb0f55D\"\n+ \"0xA937660031787C4408587D2c6A67Ec4B260630F5\"\n receivedPermissions.16.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n receivedPermissions.15.from:\n- \"0xCAD08A7B9eF6ADeFAef08d0d85a577a288F93Ee1\"\n+ \"0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012\"\n receivedPermissions.15.via.0.address:\n- \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.15.description:\n+ \"upgrading the bridge implementation can give access to all funds escrowed therein.\"\n receivedPermissions.14.from:\n- \"0xc9C24f1aaD2614E81f033746292F5Dc5d7Ccad94\"\n+ \"0x92986cd63C3409b7dA2882624B6d6E7Cf660707a\"\n receivedPermissions.13.from:\n- \"0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb\"\n+ \"0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1\"\n receivedPermissions.13.via.0.address:\n- \"0xca35F8338054739D138884685e08b39EE2217794\"\n+ \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n receivedPermissions.12.from:\n- \"0xBcF6d8273DAF842b6Fc288b08E48C438Fa911D01\"\n+ \"0x50Fa427235C7C8cAA4A0C21b5009f5a0d015B23A\"\n receivedPermissions.12.via:\n- [{\"address\":\"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"}]\n receivedPermissions.11.from:\n- \"0xA937660031787C4408587D2c6A67Ec4B260630F5\"\n+ \"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\"\n receivedPermissions.11.via.0.address:\n- \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.10.from:\n- \"0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012\"\n+ \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n receivedPermissions.10.description:\n- \"upgrading the bridge implementation can give access to all funds escrowed therein.\"\n receivedPermissions.10.via.1:\n+ {\"address\":\"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\",\"delay\":86400}\n receivedPermissions.10.via.0.address:\n- \"0xca35F8338054739D138884685e08b39EE2217794\"\n+ \"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"\n receivedPermissions.9.from:\n- \"0x92986cd63C3409b7dA2882624B6d6E7Cf660707a\"\n+ \"0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\"\n receivedPermissions.9.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n receivedPermissions.8.from:\n- \"0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1\"\n+ \"0x23754725a49c0f003C349A6C7869fF8609a7CEfd\"\n receivedPermissions.8.via.0.address:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n receivedPermissions.7.from:\n- \"0x50Fa427235C7C8cAA4A0C21b5009f5a0d015B23A\"\n+ \"0x1eD35B793d887e028493dAC4a11AA5Feb811dd67\"\n receivedPermissions.7.via:\n+ [{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]\n receivedPermissions.6.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.6.from:\n- \"0x427Ea0710FA5252057F0D88274f7aeb308386cAf\"\n+ \"0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42\"\n receivedPermissions.6.description:\n+ \"set and change address mappings.\"\n receivedPermissions.5.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.5.from:\n- \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.5.via:\n- [{\"address\":\"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"}]\n receivedPermissions.5.description:\n+ \"propose transactions.\"\n receivedPermissions.4.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.4.from:\n- \"0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.4.via:\n- [{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]\n receivedPermissions.4.description:\n+ \"manage all access control roles.\"\n receivedPermissions.3.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.3.from:\n- \"0x23754725a49c0f003C349A6C7869fF8609a7CEfd\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.3.via.0.address:\n- \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.3.via.0.delay:\n+ 86400\n receivedPermissions.3.description:\n+ \"manage all access control roles.\"\n receivedPermissions.2.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.2.from:\n- \"0x1eD35B793d887e028493dAC4a11AA5Feb811dd67\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.2.via:\n- [{\"address\":\"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"}]\n receivedPermissions.2.description:\n+ \"execute transactions that are ready.\"\n receivedPermissions.1.from:\n- \"0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n receivedPermissions.1.description:\n- \"set and change address mappings.\"\n+ \"cancel queued transactions.\"\n receivedPermissions.1.via:\n- [{\"address\":\"0xca35F8338054739D138884685e08b39EE2217794\"}]\n directlyReceivedPermissions.2.from:\n- \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n+ \"0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F\"\n directlyReceivedPermissions.2.delay:\n+ 86400\n directlyReceivedPermissions.1.from:\n- \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n+ \"0x47D58744D8515d9aaEAf961bc03625118bd91EBb\"\n directlyReceivedPermissions.0.from:\n- \"0x0cac2B1a172ac24012621101634DD5ABD6399ADd\"\n+ \"0x2Cd33d3DC4d6Ea24B6941e4741F4Bf4772929e83\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x65331ff6F8B0fc2612F2a0deBD9d04Fce60a447F)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```"
}
]
},
{
"id": "85ad226e",
"date": "Fri, 14 Feb 2025 10:58:52 GMT",
"timestamp": 1739530732,
"description": "MS signer changes.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleSecurityMultisig (0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n values.$members.6:\n- \"0x7735cDcc85E63A7684C29652DbE8B845e0b4635A\"\n+ \"0x4b6CFecA60f8BDF8AbCEE10f033f17cb2a928498\"\n values.$members.4:\n- \"0xbE73dea9c8DcDdB6b03F7e5797b85982065fe34e\"\n+ \"0xdC3644e172813ADbF6D130262e2416975Ac48Af3\"\n values.$members.3:\n- \"0x207E804758e28F2b3fD6E4219671B327100b82f8\"\n+ \"0xA3C8f55BE8aF7402d5192b343E8BfE4BB9795C2F\"\n values.$members.2:\n- \"0x422f2df38B96395A7E61d4C02aDd4413bb79A9FC\"\n+ \"0x50dCf0B40E593301aA75DcB54f36f379607595CE\"\n }\n```\n\n```diff\n- Status: DELETED\n contract GnosisSafe (0x7735cDcc85E63A7684C29652DbE8B845e0b4635A)\n +++ description: None\n```"
}
]
},
{
"id": "6c006724",
"date": "Wed, 22 Jan 2025 14:31:53 GMT",
"timestamp": 1737556313,
"description": "Refined mantle DA permissions.\n\nMS member change.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleSecurityMultisig (0x4e59e778a0fb77fBb305637435C62FaeD9aED40f) {\n +++ description: None\n values.$members.5:\n- \"0x5a021DC06A9630bb56099b8aEdfaDC2dEa7eB317\"\n+ \"0x4A42577Bf6e51127c490F3639F5c8B90Ec53f5B1\"\n }\n```"
}
]
},
{
"id": "b443f82a",
"date": "Wed, 04 Sep 2024 08:04:35 GMT",
"timestamp": 1725437075,
"description": "One signer of MantleEngineeringMultisig is changed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract MantleEngineeringMultisig (0x2F44BD2a54aC3fB20cd7783cF94334069641daC9) {\n +++ description: None\n values.$members.3:\n- \"0x66f13847536153eFFFFdfD7Bd4Dea5eD3F60f639\"\n+ \"0x00da2F87c56C3a19BD863613995705095F55b524\"\n }\n```"
}
]
},
{
"id": "5dc1a14e",
"date": "Tue, 19 Mar 2024 14:00:41 GMT",
"timestamp": 1710856841,
"description": "Update discovery to include the multisig threshold.",
"isHighSeverity": true,
"changeCount": 44,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n- Status: DELETED\n contract BondManager (0x31aBe1c466C2A8b95fd84258dD1471472979B650)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract VerifierEntry (0x3F77D44E1789D47e076a4d5f2779a1fCAb821C2a)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract GnosisSafe (0x47336ae44F573a7C3C41a9ae04A9D48E5dFD8f8E)\n +++ description: None\n```\n\n```diff\n contract L1CrossDomainMessenger (0x676A795fe6E43C17c668de16730c3F690FEB7120) {\n +++ description: None\n upgradeability.implementation:\n- \"0x4692363048d0F32a2dE7816860D48fff0c61B24B\"\n+ \"0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308\"\n implementations.0:\n- \"0x4692363048d0F32a2dE7816860D48fff0c61B24B\"\n+ \"0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308\"\n values.getPauseOwner:\n- \"0x2F44BD2a54aC3fB20cd7783cF94334069641daC9\"\n values.libAddressManager:\n- \"0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42\"\n values.owner:\n- \"0x4e59e778a0fb77fBb305637435C62FaeD9aED40f\"\n values.paused:\n- false\n values.HASH_MESSAGE_BASE_GAS:\n+ 800\n values.HASH_MESSAGE_GAS_PER_BYTE:\n+ 2\n values.L1_MNT_ADDRESS:\n+ \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n values.MESSAGE_VERSION:\n+ 1\n values.MIN_GAS_CALLDATA_OVERHEAD:\n+ 16\n values.MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR:\n+ 63\n values.MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR:\n+ 64\n values.OTHER_MESSENGER:\n+ \"0x4200000000000000000000000000000000000007\"\n values.PORTAL:\n+ \"0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb\"\n values.RELAY_CALL_OVERHEAD:\n+ 40000\n values.RELAY_CONSTANT_OVERHEAD:\n+ 200000\n values.RELAY_GAS_CHECK_BUFFER:\n+ 55000\n values.RELAY_RESERVED_GAS:\n+ 90000\n values.version:\n+ \"1.5.0\"\n }\n```\n\n```diff\n contract AddressManager (0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42) {\n +++ description: None\n values.BondManager:\n- \"0x31aBe1c466C2A8b95fd84258dD1471472979B650\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.FraudVerifier:\n- \"0x2F44BD2a54aC3fB20cd7783cF94334069641daC9\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.L1CrossDomainMessenger:\n- \"0x4692363048d0F32a2dE7816860D48fff0c61B24B\"\n+ \"0xb8DE82551fA4BA3bE4B3d9097763EDBeED541308\"\n values.owner:\n- \"0x4e59e778a0fb77fBb305637435C62FaeD9aED40f\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n values.proposer:\n- \"0xD1328C9167e0693B689b5aa5a024379d4e437858\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.sequencer:\n- \"0x2F6AFE2E3feA041b892a6e240Fd1A0E5b51e8376\"\n+ \"0x0000000000000000000000000000000000000000\"\n }\n```\n\n```diff\n- Status: DELETED\n contract GnosisSafe (0x84A628347537d4900a0b720Ee294445F90c3887a)\n +++ description: None\n```\n\n```diff\n contract L1StandardBridge (0x95fC37A27a2f68e3A647CDc081F0A89bb47c3012) {\n +++ description: None\n upgradeability.implementation:\n- \"0x6B6e0dC564d4603452E40752ecDAa0e9630B38A2\"\n+ \"0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f\"\n upgradeability.admin:\n- \"0x4e59e778a0fb77fBb305637435C62FaeD9aED40f\"\n+ \"0xca35F8338054739D138884685e08b39EE2217794\"\n implementations.0:\n- \"0x6B6e0dC564d4603452E40752ecDAa0e9630B38A2\"\n+ \"0xb4133552BA49dFb60DA6eb5cA0102d0f94ce071f\"\n values.l1MantleAddress:\n- \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n values.L1_MNT_ADDRESS:\n+ \"0x3c3a81e81dc49A522A592e7622A7E711c06bf354\"\n values.MESSENGER:\n+ \"0x676A795fe6E43C17c668de16730c3F690FEB7120\"\n values.OTHER_BRIDGE:\n+ \"0x4200000000000000000000000000000000000010\"\n values.version:\n+ \"1.1.0\"\n }\n```\n\n```diff\n- Status: DELETED\n contract AssertionMap (0xa0d79E982bfD3C2ccD09D2E374ddC75fe328f317)\n +++ description: None\n```\n\n```diff\n- Status: DELETED\n contract Rollup (0xD1328C9167e0693B689b5aa5a024379d4e437858)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract L2OutputOracle (0x31d543e7BE1dA6eFDc2206Ef7822879045B9f481)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SystemConfig (0x427Ea0710FA5252057F0D88274f7aeb308386cAf)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract OptimismPortal (0xc54cb22944F2bE476E02dECfCD7e3E7d3e15A8Fb)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0xca35F8338054739D138884685e08b39EE2217794)\n +++ description: None\n```"
}
]
},
{
"id": "4ea6f514",
"date": "Tue, 31 Oct 2023 10:41:08 GMT",
"timestamp": 1698748868,
"description": "Change in Owner2Multisig owner.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Owner2Multisig (0x2F44BD2a54aC3fB20cd7783cF94334069641daC9) {\n values.getOwners.2:\n- \"0x895562F29cd2d6B46Da776B3a7778f77E99DbDEE\"\n+ \"0x5a021DC06A9630bb56099b8aEdfaDC2dEa7eB317\"\n values.getOwners.1:\n- \"0x5a021DC06A9630bb56099b8aEdfaDC2dEa7eB317\"\n+ \"0x207E804758e28F2b3fD6E4219671B327100b82f8\"\n values.getOwners.0:\n- \"0x207E804758e28F2b3fD6E4219671B327100b82f8\"\n+ \"0xC37642355c18ec9c3b3268AAC67e33516aa115eb\"\n }\n```"
}
]
}
]
+4 -4
+3 -3
{
"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 * ValidatorTimelock [via: ProtocolUpgradeHandler → ProxyAdmin]\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 * L1USDCBridge [via: ProtocolUpgradeHandler → ProxyAdmin]\n* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) [via: ProtocolUpgradeHandler]\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 4/7 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 * set the pending admin of this contract and the ServerNotifier contract address (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:0xEE7d66B84175cc423900595d1807A0371D66dE46",
"type": "EOA",
"isVerified": true,
"name": "0xEE7d…dE46",
"url": "https://etherscan.io/address/0xEE7d66B84175cc423900595d1807A0371D66dE46"
},
{
"address": "eth:0x3F0009D00cc78979d00Eb635490F23E8d6aCc481",
"type": "EOA",
"isVerified": true,
"name": "0x3F00…c481",
"url": "https://etherscan.io/address/0x3F0009D00cc78979d00Eb635490F23E8d6aCc481"
},
{
"address": "eth:0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83",
"type": "EOA",
"isVerified": true,
"name": "0xC9A8…3D83",
"url": "https://etherscan.io/address/0xC9A814A4dFE108A4d2b0C01abb4c196Ed7FB3D83"
},
{
"address": "eth:0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc",
"type": "EOA",
"isVerified": true,
"name": "0x3068…d2Bc",
"url": "https://etherscan.io/address/0x3068415e0F857A5eEd03302A1F7E44f67468d2Bc"
},
{
"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": "SophonTransactionFilterer",
"name": "SophonTransactionFilterer",
"accounts": [
{
"address": "eth:0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41",
"type": "Contract",
"isVerified": true,
"name": "0x006e…5e41",
"url": "https://etherscan.io/address/0x006ea4836b5C3EB8694AE6D1e08207610E1d5e41"
}
],
"chain": "ethereum",
"description": "A contract implementing the ITransactionFilterer interface, allows only trxs from whitelisted superusers. 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": "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": "SophonChainAdminMultisig",
"name": "SophonChainAdminMultisig",
"description": "A Multisig with 3/5 threshold. \n* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) [via: SophonZkEvmAdmin]\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]",
"accounts": [
{
"address": "eth:0xe4644b6d106A18062344c0A853666bc0B8f052d1",
"type": "Contract",
"isVerified": true,
"name": "0xe464…52d1",
"url": "https://etherscan.io/address/0xe4644b6d106A18062344c0A853666bc0B8f052d1"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x891F19CdefBce82e2F39f34C2322526c01E7A845",
"type": "EOA",
"isVerified": false,
"name": "0x891F…A845",
"url": "https://etherscan.io/address/0x891F19CdefBce82e2F39f34C2322526c01E7A845"
},
{
"address": "eth:0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336",
"type": "EOA",
"isVerified": true,
"name": "0x4BBB…c336",
"url": "https://etherscan.io/address/0x4BBBaCCbA75dbb482619722FFE68bBddC9CCc336"
},
{
"address": "eth:0x1B5a420Dc78290b0F30ED12634Fa9b068A22F96c",
"type": "EOA",
"isVerified": true,
"name": "0x1B5a…F96c",
"url": "https://etherscan.io/address/0x1B5a420Dc78290b0F30ED12634Fa9b068A22F96c"
},
{
"address": "eth:0x02266d7404AF55F39605Ea1D2b6bfff6DF74157d",
"type": "EOA",
"isVerified": true,
"name": "0x0226…157d",
"url": "https://etherscan.io/address/0x02266d7404AF55F39605Ea1D2b6bfff6DF74157d"
},
{
"address": "eth:0x45Bd9b1B0525C81778A0E4AE1f58eFA9e88E53f8",
"type": "EOA",
"isVerified": true,
"name": "0x45Bd…53f8",
"url": "https://etherscan.io/address/0x45Bd9b1B0525C81778A0E4AE1f58eFA9e88E53f8"
}
],
"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/6 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:0x64FEca7976955a512aB9159f91E7dD1D55425293",
"type": "EOA",
"isVerified": true,
"name": "0x64FE…5293",
"url": "https://etherscan.io/address/0x64FEca7976955a512aB9159f91E7dD1D55425293"
},
{
"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:0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B",
"type": "EOA",
"isVerified": true,
"name": "0xa7Fc…A13B",
"url": "https://etherscan.io/address/0xa7Fc7e6CF378523aF8C159Cb55073D258e32A13B",
"displayName": "EOA 1"
},
{
"address": "eth:0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3",
"type": "EOA",
"isVerified": true,
"name": "0xE2DD…AbF3",
"url": "https://etherscan.io/address/0xE2DDB84786aff975FE7B511acCc3AF5a1657AbF3",
"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": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xB1e2974E81922c1d5923dB4580292fB9954E9E05",
"type": "EOA",
"isVerified": true,
"name": "0xB1e2…9E05",
"url": "https://etherscan.io/address/0xB1e2974E81922c1d5923dB4580292fB9954E9E05",
"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-and-EOA-6",
"name": "EOA 5 and EOA 6",
"accounts": [
{
"address": "eth:0x5afeCA1153D94750e170e6021B95416A68c60f4E",
"type": "EOA",
"isVerified": true,
"name": "0x5afe…0f4E",
"url": "https://etherscan.io/address/0x5afeCA1153D94750e170e6021B95416A68c60f4E",
"displayName": "EOA 5"
},
{
"address": "eth:0xBaEb92889696217A3A6be2175E5a95dC4cFFC9f7",
"type": "EOA",
"isVerified": true,
"name": "0xBaEb…C9f7",
"url": "https://etherscan.io/address/0xBaEb92889696217A3A6be2175E5a95dC4cFFC9f7",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with SophonTransactionFilterer\n * call requestL2Transaction() with any target/calldata (whitelisted superuser sender) ",
"discoveryDrivenData": true
},
{
"id": "EOA-7",
"name": "EOA 7",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"displayName": "EOA 7"
}
],
"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 ProtocolUpgradeHandler\n * start (queue) upgrades [via: ProtocolTimelockController]\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": "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) ",
"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": 1789464378,
"baseTimestamp": 1789656330,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+18 -4
+3 -3
{
"ethereum": {
"roles": [],
"actors": [
{
"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": "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": "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",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"address": "eth:0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"type": "EOA",
"isVerified": true,
"name": "0x27BF…787D",
"url": "https://etherscan.io/address/0x27BF7DE579c5779DbFbB8e9d69999E4D1370787D",
"name": "0x7EBe…7c35",
"url": "https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35",
"displayName": "EOA 1"
}
],
"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
}
]
}
}
+1 -1
{
"baseTimestamp": 1786359830,
"baseTimestamp": 1789656330,
"contractsDiscoDriven": false,
"hasDiscoUi": false,
"isDiscoDriven": false,
"permissionsDiscoDriven": false
}
+14 -0
[
{
"id": "6343b00c",
"date": "Thu, 17 Sep 2026 14:46:33 GMT",
"timestamp": 1789656330,
"description": "Vector: `DEFAULT_ADMIN_ROLE` revoked from the deployer EOA; Avail Multisig 1 is the only remaining holder.\n\nRelayer rotated: the previous relayer was de-approved and a new EOA approved. Config: the template now tracks the new relayer.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) [succinct/SP1Vector] {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n- \"eth:0xDEd0000E32f8F40414d3ab3a830f735a3553E18e\"\n values.isRelayerApproved:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "ab2e7d4b",
"date": "Mon, 10 Aug 2026 11:04:52 GMT",
"timestamp": 1786359830,
"description": "Vector: `vectorXProgramVkey` rotated to the sp1-vector v2.0.1 program. The new key is reproducible from source and recorded in `programHashes.ts`.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) [succinct/SP1Vector] {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x0057b7de6dcd8ff25e7b41089f4b5fa586067fbb107756d1f66d92fe71dd6ad1\"\n+ \"0x005f3914526e9f0d261b56a3613985801d3060584f95874548c70fda5f81efdb\"\n }\n```"
}
]
},
{
"id": "b00b2ebd",
"date": "Tue, 18 Nov 2025 16:35:52 GMT",
"timestamp": 1763483689,
"description": "New relayer, new multisig member.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (eth:0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n }\n```\n\n```diff\n contract Avail Multisig 1 (eth:0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n values.$members.0:\n- \"eth:0xE458b870F2F59a49915591282f1Bb688901767AD\"\n+ \"eth:0x70a4F624A4E62C539abf0002634377b646612b1C\"\n }\n```"
}
]
},
{
"id": "71cbb138",
"date": "Tue, 19 Aug 2025 12:04:46 GMT",
"timestamp": 1755605082,
"description": "New relayer.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n }\n```"
}
]
},
{
"id": "507359e5",
"date": "Mon, 14 Jul 2025 12:46:41 GMT",
"timestamp": 1752497201,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d)\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a)\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the eth:0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 2 (0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666)\n +++ description: None\n```"
}
]
},
{
"id": "cfb5494b",
"date": "Wed, 25 Jun 2025 07:40:40 GMT",
"timestamp": 1750837240,
"description": "selector 0x1b34fe11 and respective verifier frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SP1VerifierGateway (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.\n+++ description: Verifiers that are routed to by their selector and not frozen.\n values.activeVerifiers.1:\n- {\"selector\":\"0x1b34fe11\",\"verifier\":\"0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63\"}\n }\n```\n\n```diff\n- Status: DELETED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "e923d734",
"date": "Fri, 06 Jun 2025 07:24:46 GMT",
"timestamp": 1749194686,
"description": "config: make sp1 gateway template more dynamic.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: Verifier contract for SP1 proofs (v4.0.0-rc.3).\n```"
}
]
},
{
"id": "6c80cb1d",
"date": "Wed, 04 Jun 2025 14:03:29 GMT",
"timestamp": 1749045809,
"description": "SP1 verifier upgrade to v5 (plonky3 vuln related).",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)\n +++ description: Verifier contract for SP1 proofs.\n```"
}
]
},
{
"id": "db4900b9",
"date": "Mon, 02 Jun 2025 08:33:11 GMT",
"timestamp": 1748853191,
"description": "new program key for vector.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x00e9bba2a9360f570b9ba99e5186825ac723bedebd486b6a818870c44e3e4d4f\"\n+ \"0x0057b7de6dcd8ff25e7b41089f4b5fa586067fbb107756d1f66d92fe71dd6ad1\"\n }\n```"
}
]
},
{
"id": "6997f592",
"date": "Wed, 07 May 2025 10:16:04 GMT",
"timestamp": 1746612964,
"description": "Updated owner of ProxyAdmin and 4/7 Avail multisig to the TimelockController.",
"isHighSeverity": false,
"changeCount": 6,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B) {\n +++ description: None\n values.owner:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n }\n```\n\n```diff\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487) {\n +++ description: A timelock with access control. The current minimum delay is 1d.\n directlyReceivedPermissions.2:\n+ {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.6.via.1:\n+ {\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n receivedPermissions.6.via.0.address:\n- \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.6.via.0.delay:\n+ 86400\n directlyReceivedPermissions.1:\n- {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n }\n```"
}
]
},
{
"id": "5bbf0dc2",
"date": "Tue, 06 May 2025 08:46:00 GMT",
"timestamp": 1746521160,
"description": "Finalized the transfer of admin and owner roles to a 1d timelock controller.",
"isHighSeverity": false,
"changeCount": 21,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a) {\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n values.accessControl.DEFAULT_ADMIN_ROLE.members.0:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.defaultAdmin:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.defaultAdminAC.0:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.owner:\n- \"0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.pendingDefaultAdmin.newAdmin:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x0000000000000000000000000000000000000000\"\n values.pendingDefaultAdmin.schedule:\n- 1746442211\n+ 0\n }\n```\n\n```diff\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487) {\n +++ description: A timelock with access control. The current minimum delay is 1d.\n directlyReceivedPermissions.1:\n+ {\"permission\":\"interact\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"description\":\"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"}\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.8.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.8.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n receivedPermissions.8.description:\n+ \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n receivedPermissions.8.via:\n+ [{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]\n receivedPermissions.7.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n receivedPermissions.7.via:\n- [{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]\n receivedPermissions.6.permission:\n- \"interact\"\n+ \"upgrade\"\n receivedPermissions.6.from:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n receivedPermissions.6.description:\n- \"manage all access control roles.\"\n receivedPermissions.6.via.0.address:\n- \"0x45828180bbE489350D621d002968A0585406d487\"\n+ \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n receivedPermissions.6.via.0.delay:\n- 86400\n receivedPermissions.5.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.5.description:\n- \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n+ \"manage all access control roles.\"\n receivedPermissions.5.via:\n+ [{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]\n }\n```"
}
]
},
{
"id": "50a436af",
"date": "Mon, 05 May 2025 14:37:14 GMT",
"timestamp": 1746455834,
"description": "The Avail bridge default admin is scheduled to be changed to a timelock smart contract.",
"isHighSeverity": false,
"changeCount": 22,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a) {\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n values.pendingDefaultAdmin.newAdmin:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n values.pendingDefaultAdmin.schedule:\n- 0\n+ 1746442211\n }\n```\n\n```diff\n contract Avail Multisig 1 (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n receivedPermissions.8:\n+ {\"permission\":\"upgrade\",\"from\":\"0x02993cdC11213985b9B13224f3aF289F03bf298d\"}\n receivedPermissions.7:\n+ {\"permission\":\"upgrade\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"via\":[{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]}\n receivedPermissions.6:\n+ {\"permission\":\"interact\",\"from\":\"0x45828180bbE489350D621d002968A0585406d487\",\"description\":\"manage all access control roles.\",\"via\":[{\"address\":\"0x45828180bbE489350D621d002968A0585406d487\",\"delay\":86400}]}\n receivedPermissions.5:\n+ {\"permission\":\"interact\",\"from\":\"0x054fd961708D8E2B9c10a63F6157c74458889F0a\",\"description\":\"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"}\n receivedPermissions.4:\n+ {\"permission\":\"interact\",\"from\":\"0x45828180bbE489350D621d002968A0585406d487\",\"description\":\"manage all access control roles.\"}\n receivedPermissions.3.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.3.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.3.description:\n+ \"execute transactions that are ready.\"\n receivedPermissions.2.permission:\n- \"upgrade\"\n+ \"interact\"\n receivedPermissions.2.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n receivedPermissions.2.via:\n- [{\"address\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}]\n receivedPermissions.2.description:\n+ \"can freeze the Vector contract and update the list of authorized relayers.\"\n receivedPermissions.1.from:\n- \"0x054fd961708D8E2B9c10a63F6157c74458889F0a\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.1.description:\n- \"manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees.\"\n+ \"propose transactions.\"\n receivedPermissions.0.from:\n- \"0x02993cdC11213985b9B13224f3aF289F03bf298d\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n receivedPermissions.0.description:\n- \"can freeze the Vector contract and update the list of authorized relayers.\"\n+ \"cancel queued transactions.\"\n directlyReceivedPermissions.1:\n+ {\"permission\":\"act\",\"from\":\"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"}\n directlyReceivedPermissions.0.from:\n- \"0x36194271a00dBBBae314E83dA56d0FF75fDa367B\"\n+ \"0x45828180bbE489350D621d002968A0585406d487\"\n directlyReceivedPermissions.0.delay:\n+ 86400\n }\n```\n\n```diff\n+ Status: CREATED\n contract TimelockController (0x45828180bbE489350D621d002968A0585406d487)\n +++ description: A timelock with access control. The current minimum delay is 1d.\n```"
}
]
},
{
"id": "36c07ceb",
"date": "Thu, 24 Apr 2025 05:13:24 GMT",
"timestamp": 1745471604,
"description": "Add the Avail bridge (uses vector and is shared by L2s for merkle proofs)... config: colorize, bridge is verified.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract AvailBridgeV1 (0x054fd961708D8E2B9c10a63F6157c74458889F0a)\n +++ description: Bridge contract that verifies merkle proofs of inclusion in the proven data of the 0x02993cdC11213985b9B13224f3aF289F03bf298d DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum.\n```\n\n```diff\n+ Status: CREATED\n contract Avail Multisig 2 (0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract ProxyAdmin (0x36194271a00dBBBae314E83dA56d0FF75fDa367B)\n +++ description: None\n```"
}
]
},
{
"id": "7939d05d",
"date": "Thu, 03 Apr 2025 14:55:22 GMT",
"timestamp": 1743692122,
"description": "Renamed SP1SuccinctGateway to SP1VerifierGateway. vectorXProgramVkey changed.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.vectorXProgramVkey:\n- \"0x00d0279ddadaccdbdb6142981d3830f9ada20ed4e2925ed186ae2be5806e3402\"\n+ \"0x00e9bba2a9360f570b9ba99e5186825ac723bedebd486b6a818870c44e3e4d4f\"\n }\n```"
}
]
},
{
"id": "7a4391dd",
"date": "Thu, 16 Jan 2025 12:09:52 GMT",
"timestamp": 1737029392,
"description": "New verifier added, old one frozen.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: This contract is the router for the bridge proofs verification. It stores the mapping between the identifier of the bridge circuit and the address of the onchain verifier contract.\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2025-01-15.\n values.oldVerifier5.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63)\n +++ description: None\n```"
}
]
},
{
"id": "4caa451e",
"date": "Wed, 15 Jan 2025 13:53:48 GMT",
"timestamp": 1736949228,
"description": "New relayer, new programVkey.",
"isHighSeverity": false,
"changeCount": 2,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum.\n values.isRelayerApproved:\n- false\n+ true\n values.vectorXProgramVkey:\n- \"0x00285180a989ed2d6aa8194220690d0d45f2907535d3d3c09e4cb29f6dbe3d4d\"\n+ \"0x00d0279ddadaccdbdb6142981d3830f9ada20ed4e2925ed186ae2be5806e3402\"\n }\n```"
}
]
},
{
"id": "19442b17",
"date": "Thu, 09 Jan 2025 06:59:49 GMT",
"timestamp": 1736405989,
"description": "AvailMultisig single signer rotated.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract AvailMultisig (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) {\n +++ description: None\n values.$members.6:\n- \"0xb9274De2305B377b437a9297D6c84eBD69f7aaCE\"\n+ \"0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d\"\n }\n```"
}
]
},
{
"id": "d1af7c2c",
"date": "Thu, 14 Nov 2024 09:08:08 GMT",
"timestamp": 1731575288,
"description": "New verifier, zk catalog updated.",
"isHighSeverity": false,
"changeCount": 3,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-11-08.\n values.oldVerifier4.1:\n- false\n+ true\n }\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract SP1Verifier (0x6A87EFd4e6B2Db1ed73129A8b9c51aaA583d49e3)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0xd2832Cf1fC8bA210FfABF62Db9A8781153131d16)\n +++ description: None\n```"
}
]
},
{
"id": "7817c1a8",
"date": "Tue, 05 Nov 2024 16:10:42 GMT",
"timestamp": 1730823042,
"description": "Verifier program verification key changed, verifier implementation is the same.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: None\n values.vectorXProgramVkey:\n- \"0x0003c5cf9260fcef3df6c79870952e1ce2f57595ac042ea868c9cbbcab548cf8\"\n+ \"0x00285180a989ed2d6aa8194220690d0d45f2907535d3d3c09e4cb29f6dbe3d4d\"\n }\n```"
}
]
},
{
"id": "8e197aee",
"date": "Tue, 01 Oct 2024 15:45:53 GMT",
"timestamp": 1727797553,
"description": "Vector proxy verified. New verifier.",
"isHighSeverity": false,
"changeCount": 4,
"sections": [
{
"kind": "watched-changes",
"body": "```diff\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e) {\n +++ description: None\n+++ description: The verifier contract address for SP1, and whether it is frozen (true if frozen). This prover route was frozen on 2024-09-21.\n values.oldVerifier2.1:\n- false\n+ true\n+++ description: The prover contract address for SP1, and whether it is frozen (true if frozen).\n values.verifier.0:\n- \"0x0000000000000000000000000000000000000000\"\n+ \"0x1764C29FBd94865198588f10FC75D4f6636d158d\"\n }\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x1764C29FBd94865198588f10FC75D4f6636d158d)\n +++ description: None\n```"
},
{
"kind": "config-related-changes",
"body": "```diff\n contract SP1Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d) {\n +++ description: None\n unverified:\n- true\n }\n```"
}
]
},
{
"id": "6f776189",
"date": "Fri, 13 Sep 2024 08:14:09 GMT",
"timestamp": 1726215249,
"description": "Discovery rerun on the same block number with only config-related changes.",
"isHighSeverity": false,
"changeCount": 1,
"sections": [
{
"kind": "config-related-changes",
"body": "```diff\n+ Status: CREATED\n contract GnosisSafe (0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666)\n +++ description: None\n```"
}
]
},
{
"id": "d0a8db9a",
"date": "Thu, 12 Sep 2024 14:28:29 GMT",
"timestamp": 1726151309,
"description": "Provide description of changes. This section will be preserved.",
"isHighSeverity": false,
"changeCount": 5,
"sections": [
{
"kind": "initial-discovery",
"body": "```diff\n+ Status: CREATED\n contract SP1Vector (0x02993cdC11213985b9B13224f3aF289F03bf298d)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SuccinctGatewaySP1 (0x3B6041173B80E77f038f3F2C0f9744f04837185e)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier (0x6B6A7Ded061567d8A56279801DEA5cFB79be5bFc)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract SP1Verifier_OLD (0xc350F063C13a3Ca21331610fe159E697a5c9c2FB)\n +++ description: None\n```\n\n```diff\n+ Status: CREATED\n contract GnosisSafe (0xCafEf00d348Adbd57c37d1B77e0619C6244C6878)\n +++ description: None\n```"
}
]
}
]