68684835 (main)
and
b7242582 (PR)
+20 -6
+1 -1
{
"architectureImage": "arbitrumwithbold",
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.",
"risks": [],
"references": [
{
"title": "Sequencing followed by deterministic execution - Arbitrum documentation",
"url": "https://developer.offchainlabs.com/inside-arbitrum-nitro/#sequencing-followed-by-deterministic-execution"
},
{
"title": "SequencerInbox.sol - source code, addSequencerL2BatchFromOrigin function",
"url": "https://etherscan.io/address/0x98a58ADAb0f8A66A1BF4544d804bc0475dff32c7#code"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. The process of block finalization usually takes several days to complete.",
"risks": [],
"references": [
{
"title": "Transaction lifecycle - Arbitrum documentation",
"url": "https://developer.offchainlabs.com/tx-lifecycle"
},
{
"title": "L2 to L1 Messages - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/deep-dives/l2-to-l1-messaging"
},
{
"title": "Mainnet for everyone - Arbitrum Blog",
"url": "https://offchain.medium.com/mainnet-for-everyone-27ce0f67c85e"
}
]
},
{
"name": "Autonomous exit",
"description": "Users can (eventually) exit the system by pushing the transaction on L1 and providing the corresponding state root. The only way to prevent such withdrawal is via an upgrade.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force any transaction",
"description": "Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly. After a delay of 1d in which a Sequencer has failed to include a transaction that was directly posted to the smart contract, it can be forcefully included by anyone on the host chain, which finalizes its ordering.",
"risks": [],
"references": [
{
"title": "SequencerInbox.sol - source code, forceInclusion function",
"url": "https://etherscan.io/address/0x98a58ADAb0f8A66A1BF4544d804bc0475dff32c7#code"
},
{
"title": "Sequencer Isn't Doing Its Job - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/sequencer#unhappyuncommon-case-sequencer-isnt-doing-its-job"
}
]
},
"operator": {
"name": "The system has a centralized sequencer",
"description": "While forcing transaction is open to anyone the system employs a privileged sequencer that has priority for submitting transaction batches and ordering transactions.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": [
{
"title": "Sequencer - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/inside-arbitrum-nitro#the-sequencer"
}
]
},
"otherConsiderations": [
{
"name": "EVM compatible and Stylus smart contracts are supported",
"description": "Arbitrum One supports smart contracts written in Solidity and other programming languages (Rust, C++) that compile to WASM. Such smart contracts are executed by nodes using either a geth fork or [a fork of wasmer](https://github.com/OffchainLabs/wasmer) inside the Nitro node, and can be proven with the onchain WASM VM.",
"risks": [],
"references": [
{
"title": "Inside Arbitrum Nitro",
"url": "https://developer.offchainlabs.com/inside-arbitrum-nitro/"
},
{
"title": "A gentle introduction: Stylus",
"url": "https://docs.arbitrum.io/stylus/stylus-gentle-introduction"
}
]
},
{
"name": "Arbitrum DAO is in charge of upgrades",
"description": "Arbitrum DAO allows $ARB token holders to propose and vote on changes to the organization and the technologies it governs. The governance smart contracts are implemented on Arbitrum One rollup chain. The DAO can upgrade the Arbitrum One contracts on L2 with 2d delay and - using L2 --> L1 Governance Relay, update contracts on L1 with additional 3d delay + 6d 8h delay for all L2 --> L1 messages (in total a delay of 11d 8h), with an additional 8d if a challenge has been present in the state root that relays the message. The Security Council can upgrade the contracts without any delay. It can also cancel any upgrades initiated by the DAO.",
"risks": [],
"references": [
{
"title": "Arbitrum DAO",
"url": "https://docs.arbitrum.foundation/concepts/arbitrum-dao"
}
]
}
],
"sequencing": {
"name": "Buffered forced transactions",
"description": "To force transactions from the host chain, users must first enqueue \"delayed\" messages in the \"delayed\" inbox of the Bridge contract. Only authorized Inboxes are allowed to enqueue delayed messages, and the so-called Inbox contract is the one used as the entry point by calling the `sendMessage` or `sendMessageFromOrigin` functions. If the centralized sequencer doesn't process the request within some time bound, users can call the `forceInclusion` function on the SequencerInbox contract to include the message in the canonical chain. The time bound is defined to be the minimum between 1d and the time left in the delay buffer. The delay buffer gets replenished over time and gets consumed every time the sequencer doesn't timely process a message. Only messages processed with a delay greater than 30m consume the buffer. The buffer is capped at 2d. The replenish rate is currently set at 1m every 20m. Even if the buffer is fully consumed, messages are still allowed to be delayed up to 30m.",
"references": [
{
"title": "Sequencer and censorship resistance - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/sequencer"
}
],
"risks": []
},
"stateDerivation": {
"nodeSoftware": "The rollup node (Arbitrum Nitro) consists of four parts. The base layer is the core Geth server (with minor modifications to add hooks) that emulates the execution of EVM contracts and maintains Ethereum's state and [a fork of wasmer](https://github.com/OffchainLabs/wasmer) that is used for native WASM execution. The middle layer, ArbOS, provides additional Layer 2 functionalities such as decompressing data batches, accounting for Layer 1 gas costs, and supporting cross-chain bridge functionalities. The top layer consists of node software, primarily from Geth, that handles client connections (i.e., regular RPC node). [View Code](https://github.com/OffchainLabs/nitro/)",
"compressionScheme": "The Sequencer's batches are compressed using a general-purpose data compression algorithm known as [Brotli](https://github.com/google/brotli), configured to its highest compression setting.",
"genesisState": "They performed a regenesis from Classic to Nitro, and that file represents the [last Classic state](https://snapshot.arbitrum.foundation/arb1/nitro-genesis.tar). To sync from the initial Classic state, instructions can be found [here](https://docs.arbitrum.io/migration/state-migration).",
"dataFormat": "Nitro supports Ethereum's data structures and formats by incorporating the core code of the popular go-ethereum (\"Geth\") Ethereum node software. The batch is composed of a header and a compressed blob, which results from compressing concatenated RLP-encoded transactions using the standard RLP encoding."
},
"stateValidation": {
"description": "Updates to the system state can be proposed and challenged by anyone who has sufficient funds. If a state root passes the challenge period, it is optimistically considered correct and made actionable for withdrawals.",
"categories": [
{
"title": "State root proposals",
"description": "Validators propose state roots as children of a previous state root. A state root can have multiple conflicting children. State roots are referred to as \"assertions\" within the contracts. Each chain of assertions only requires one stake, and validators staked on assertions with a child are considered inactive and can either move their stake to a new node or withdraw it. The function used to propose a new assertion is the `stakeOnNewAssertion` function. The stake is currently set to 3600.0 ETH, and it can be slashed if the proposal is proven incorrect via a fraud proof. The protocol allows such funds to be trustlessly pooled together if necessary. New nodes cannot be created faster than the minimum assertion period, currently set to 15m. An assertion without \"rivals\" can be confirmed after the challenge period has passed, currently set to 6d 8h. If a rival is present, then it is checked that the assertion is the winner in the challenge protocol.",
"risks": [],
"references": [
{
"title": "BoLD paper",
"url": "https://arxiv.org/pdf/2404.10491"
}
]
},
{
"title": "Challenges",
"description": "A challenge can be started between two siblings, i.e. two different state roots that share the same parent, by calling the `createLayerZeroEdge` function in the `ChallengeManager` contract. Edges represent assertions, or bisected assertions, within the challenge protocol. Challenges are played via a bisection game, where asserters and challengers play together to find the first instruction of disagreement. Such instruction is then executed onchain in the WASM OneStepProver contract to determine the winner. An edge can only be bisected when rivaled. The bisection process requires no new stake as their validity is checked against a parent \"history root\" that contains all intermediate states. An edge can also be confirmed if itself or its descendants spend enough time being unrivaled. Such time is set to 6d 8h. If both actors play as slow as possible, the maximum time to confirm an edge is double such value, i.e. 12d 17h. Due to the complexities of maintaining the history root, the challenge protocol is divided into 3 levels, where the lowest level represents assertions over blocks, the highest level represents assertions over single WASM instructions, and intermediate levels represent assertions over chunks of WASM instructions. When moving between levels, a new stake is required. Level 0 (block level) requires a stake of 0.0 ETH, level 1 requires a stake of 555.0 ETH, level 2 requires a stake of 79.0 ETH. The ratio between such stakes can be exploited to perform resource exhaustion attacks.",
"risks": [
{
"category": "Funds can be stolen if",
"text": "an attacker successfully performs a resource exhaustion attack."
}
],
"references": [
{
"title": "Fraud Proof Wars: Arbitrum BoLD",
"url": "https://medium.com/l2beat/fraud-proof-wars-b0cb4d0f452a"
}
]
}
]
},
"stateValidationImage": "bold",
"upgradesAndGovernance": "\nAll critical system smart contracts are upgradeable (can be arbitrarily changed). This permission is governed by the Arbitrum Decentralized Autonomous Organization (DAO)\nand their elected Security Council. The Arbitrum DAO controls Arbitrum One and Arbitrum Nova through upgrades and modifications to their smart contracts on Layer 1 Ethereum and the Layer 2s.\nWhile the DAO governs through token-weighted governance in their associated ARB token, the Security Council can directly act through\nmultisigs on all three chains. Although they are technically separate and connect to different target permissions,\ntheir member- and threshold configuration is kept in sync by a manager contract on Arbitrum One sending crosschain transactions.\n\nRegular upgrades, Admin- and Owner actions originate from either the Arbitrum DAO or the non-emergency (Proposer-) Security Council on Arbitrum One\nand pass through multiple delays and timelocks before being executed at their destination. Contrarily, the three Emergency Security Council multisigs\n(one on each chain: Arbitrum One, Ethereum, Arbitrum Nova) can skip delays and directly access all admin- and upgrade functions of all smart contracts.\nThese two general paths have the same destination: the respective UpgradeExecutor smart contract.\n\nRegular upgrades are scheduled in the L2 Timelock. The proposer Security Council can do this directly and the Arbitrum DAO (ARB token holders and delegates) must meet a\nCoreGovernor-enforced 4.5% threshold of the votable tokens. The L2 Timelock queues the transaction for a 8d delay and then sends it to the Outbox contract on Ethereum. This incurs another delay (the challenge period) of 6d 8h, which is extended by an additional 2d if the top-level assertion has been challenged.\nWhen that has passed, the L1 Timelock delays for additional 3d. Both timelocks serve as delays during which the transparent transaction contents can be audited,\nand, in the case of the final L1 timelock, cancelled by the Emergency Security Council. Finally, the transaction can be executed, calling Admin- or Owner restricted functions of the respective destination smart contracts\nthrough the UpgradeExecutor on Ethereum. If the predefined transaction destination is Arbitrum One or -Nova, this last call is executed on L2 through the canonical bridge and the aliased address of the L1 Timelock.\n\nOperator roles like the Sequencers and Validators are managed using the same paths.\nSequencer changes can be delegated to a Batch Poster Manager role.\n\nTransactions targeting the Arbitrum DAO Treasury can be scheduled in the 3d\nTreasury Timelock by meeting a TreasuryGovernor-enforced 3% threshold of votable ARB tokens. The Security Council cannot regularly cancel\nthese transactions or schedule different ones but can overwrite them anyway by having upgrade permissions for all the underlying smart contracts."
"upgradesAndGovernance": "\nAll critical system smart contracts are upgradeable (can be arbitrarily changed). This permission is governed by the Arbitrum Decentralized Autonomous Organization (DAO)\nand their elected Security Council. The Arbitrum DAO controls Arbitrum One and Arbitrum Nova through upgrades and modifications to their smart contracts on Layer 1 Ethereum and the Layer 2s.\nWhile the DAO governs through token-weighted governance in their associated ARB token, the Security Council can directly act through\nmultisigs on all three chains. Although they are technically separate and connect to different target permissions,\ntheir member- and threshold configuration is kept in sync by a manager contract on Arbitrum One sending crosschain transactions.\n\nRegular upgrades, Admin- and Owner actions originate from either the Arbitrum DAO or the non-emergency (Proposer-) Security Council on Arbitrum One\nand pass through multiple delays and timelocks before being executed at their destination. Contrarily, the three Emergency Security Council multisigs\n(one on each chain: Arbitrum One, Ethereum, Arbitrum Nova) can skip delays and directly access all admin- and upgrade functions of all smart contracts.\nThese two general paths have the same destination: the respective UpgradeExecutor smart contract.\n\nRegular upgrades are scheduled in the L2 Timelock. The proposer Security Council can do this directly and the Arbitrum DAO (ARB token holders and delegates) must meet a\nCoreGovernor-enforced 50% threshold of the votable tokens. The L2 Timelock queues the transaction for a 8d delay and then sends it to the Outbox contract on Ethereum. This incurs another delay (the challenge period) of 6d 8h, which is extended by an additional 2d if the top-level assertion has been challenged.\nWhen that has passed, the L1 Timelock delays for additional 3d. Both timelocks serve as delays during which the transparent transaction contents can be audited,\nand, in the case of the final L1 timelock, cancelled by the Emergency Security Council. Finally, the transaction can be executed, calling Admin- or Owner restricted functions of the respective destination smart contracts\nthrough the UpgradeExecutor on Ethereum. If the predefined transaction destination is Arbitrum One or -Nova, this last call is executed on L2 through the canonical bridge and the aliased address of the L1 Timelock.\n\nOperator roles like the Sequencers and Validators are managed using the same paths.\nSequencer changes can be delegated to a Batch Poster Manager role.\n\nTransactions targeting the Arbitrum DAO Treasury can be scheduled in the 3d\nTreasury Timelock by meeting a TreasuryGovernor-enforced 40% threshold of votable ARB tokens. The Security Council cannot regularly cancel\nthese transactions or schedule different ones but can overwrite them anyway by having upgrade permissions for all the underlying smart contracts."
}
+1 -1
{
"arbitrum": {
"roles": [],
"actors": [
{
"id": "L2SecurityCouncilPropose",
"name": "L2SecurityCouncilPropose",
"description": "A Multisig with 9/12 threshold. It uses the following modules: L2UpgradeExecutor (This contract can upgrade the L2 system's contracts through the L2ProxyAdmin. The upgrades can be done either by the Security Council or by the L1Timelock (via its alias on L2)).\n* Can upgrade **with 17d 8h delay**\n * Outbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * SequencerInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * UpgradeExecutor [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n * Inbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * RollupProxy [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * RollupEventInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * OutboxV0 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * GatewayRouter [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * OutboxV1 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * Bridge [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1ERC20Gateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * EdgeChallengeManager [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1CustomGateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * L1Timelock [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n* Can interact with L2Timelock\n * propose transactions \n* Can interact with SecurityCouncilManager\n * schedule a proposal to add a new member to the Security Council \n * schedule a proposal to remove a Security Council member \n * schedule a proposal to replace a Security Council member \n * schedule a proposal to rotate a Security Council member (same member, new address) \n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n* Can interact with L1Timelock\n * cancel queued transactions **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * propose transactions **with 14d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge]\n * update the minimum delay and manage all access control roles of the timelock **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]",
"accounts": [
{
"address": "arb1:0xADd68bCb0f66878aB9D37a447C7b9067C5dfa941",
"type": "Contract",
"isVerified": true,
"name": "0xADd6…a941",
"url": "https://arbiscan.io/address/0xADd68bCb0f66878aB9D37a447C7b9067C5dfa941"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67",
"type": "EOA",
"isVerified": true,
"name": "JohnMorrow-Gauntlet",
"url": "https://arbiscan.io/address/0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67"
},
{
"address": "arb1:0x875573B973F7E9Ca54eb34a59180C70eE1128208",
"type": "EOA",
"isVerified": true,
"name": "zachxbt",
"url": "https://arbiscan.io/address/0x875573B973F7E9Ca54eb34a59180C70eE1128208"
},
{
"address": "arb1:0x0cd9e52891A0a48d45b0C61A31086be8361Ef157",
"type": "EOA",
"isVerified": true,
"name": "Immunefi",
"url": "https://arbiscan.io/address/0x0cd9e52891A0a48d45b0C61A31086be8361Ef157"
},
{
"address": "arb1:0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E",
"type": "EOA",
"isVerified": true,
"name": "fred - Arbitrum 2",
"url": "https://arbiscan.io/address/0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E"
},
{
"address": "arb1:0xBBD2E01eFB88ce00F8f5b6B9a696966070089392",
"type": "EOA",
"isVerified": true,
"name": "Michael Lewellen - blockaid",
"url": "https://arbiscan.io/address/0xBBD2E01eFB88ce00F8f5b6B9a696966070089392"
},
{
"address": "arb1:0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D",
"type": "EOA",
"isVerified": true,
"name": "Certora 2",
"url": "https://arbiscan.io/address/0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D"
},
{
"address": "arb1:0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33",
"type": "EOA",
"isVerified": true,
"name": "gzeon-OffchainLabs",
"url": "https://arbiscan.io/address/0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33"
},
{
"address": "arb1:0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93",
"type": "EOA",
"isVerified": true,
"name": "EmilianoBonassi-Conduit",
"url": "https://arbiscan.io/address/0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93"
},
{
"address": "arb1:0x882c6FCb3D358b9d70B97c6999159cea64168B6F",
"type": "EOA",
"isVerified": true,
"name": "GriffGreen-Giveth",
"url": "https://arbiscan.io/address/0x882c6FCb3D358b9d70B97c6999159cea64168B6F"
},
{
"address": "arb1:0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC",
"type": "EOA",
"isVerified": true,
"name": "StevenThornton-OpenZeppelin",
"url": "https://arbiscan.io/address/0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC"
},
{
"address": "arb1:0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae",
"type": "EOA",
"isVerified": true,
"name": "bartek.eth-L2BEAT",
"url": "https://arbiscan.io/address/0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae"
},
{
"address": "arb1:0x475816ca2a31D601B4e336f5c2418A67978aBf09",
"type": "EOA",
"isVerified": true,
"name": "yoav.eth-EF",
"url": "https://arbiscan.io/address/0x475816ca2a31D601B4e336f5c2418A67978aBf09"
}
],
"discoveryDrivenData": true
},
{
"id": "CoreGovernor",
"name": "CoreGovernor",
"accounts": [
{
"address": "arb1:0xf07DeD9dC292157749B6Fd268E37DF6EA38395B9",
"type": "Contract",
"isVerified": true,
"name": "0xf07D…95B9",
"url": "https://arbiscan.io/address/0xf07DeD9dC292157749B6Fd268E37DF6EA38395B9"
}
],
"chain": "arbitrum",
"description": "Token governance contract accepting and managing constitutional Arbitrum Improvement Proposals (AIPs, core proposals) and, among other formal parameters, enforcing the 4.5% quorum for proposals.\n* Can upgrade **with 17d 8h delay**\n * Outbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * SequencerInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * UpgradeExecutor [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n * Inbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * RollupProxy [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * RollupEventInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * OutboxV0 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * GatewayRouter [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * OutboxV1 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * Bridge [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1ERC20Gateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * EdgeChallengeManager [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1CustomGateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * L1Timelock [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n* Can interact with L2Timelock\n * cancel queued transactions \n * propose transactions \n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n* Can interact with L1Timelock\n * cancel queued transactions **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * propose transactions **with 14d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge]\n * update the minimum delay and manage all access control roles of the timelock **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]",
"description": "Token governance contract accepting and managing constitutional Arbitrum Improvement Proposals (AIPs, core proposals). Uses DVP-based quorum (percentage of Delegated Voting Power with floor and ceiling bounds).\n* Can upgrade **with 17d 8h delay**\n * Outbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * SequencerInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * UpgradeExecutor [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n * Inbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * RollupProxy [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * RollupEventInbox [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * OutboxV0 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * GatewayRouter [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * OutboxV1 [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * Bridge [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1ERC20Gateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * EdgeChallengeManager [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → ArbitrumProxyAdmin]\n * L1CustomGateway [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → GatewaysAdmin]\n * L1Timelock [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor → UpgradeExecutorAdmin]\n* Can interact with L2Timelock\n * cancel queued transactions \n * propose transactions \n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n* Can interact with L1Timelock\n * cancel queued transactions **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]\n * propose transactions **with 14d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge]\n * update the minimum delay and manage all access control roles of the timelock **with 17d 8h delay** [via: L2Timelock with 8d delay → Outbox with 6d 8h delay → Bridge → L1Timelock with 3d delay → UpgradeExecutor]",
"discoveryDrivenData": true
},
{
"id": "L2SecurityCouncilEmergency",
"name": "L2SecurityCouncilEmergency",
"description": "A Multisig with 9/12 threshold. It uses the following modules: L2UpgradeExecutor (This contract can upgrade the L2 system's contracts through the L2ProxyAdmin. The upgrades can be done either by the Security Council or by the L1Timelock (via its alias on L2)).\n* Can upgrade **with no delay**\n * L2ERC20Gateway [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * L2Timelock [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilMemberElectionGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2GatewayRouter [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * L2WethGateway [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * SecurityCouncilMemberRemovalGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * TreasuryGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilNomineeElectionGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2ArbitrumToken [via: L2UpgradeExecutor → L2ProxyAdmin]\n * TreasuryTimelock [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2ARBGateway [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2UpgradeExecutor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilManager [via: L2UpgradeExecutor → L2ProxyAdmin]\n * CoreGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n* Can interact with L2Timelock\n * manage all access control roles and change the minimum delay **with 8d delay** [via: L2UpgradeExecutor with 8d delay]\n* Can interact with SecurityCouncilManager\n * manage all access control roles [via: L2UpgradeExecutor]",
"accounts": [
{
"address": "arb1:0x423552c0F05baCCac5Bfa91C6dCF1dc53a0A1641",
"type": "Contract",
"isVerified": true,
"name": "0x4235…1641",
"url": "https://arbiscan.io/address/0x423552c0F05baCCac5Bfa91C6dCF1dc53a0A1641"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67",
"type": "EOA",
"isVerified": true,
"name": "JohnMorrow-Gauntlet",
"url": "https://arbiscan.io/address/0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67"
},
{
"address": "arb1:0x875573B973F7E9Ca54eb34a59180C70eE1128208",
"type": "EOA",
"isVerified": true,
"name": "zachxbt",
"url": "https://arbiscan.io/address/0x875573B973F7E9Ca54eb34a59180C70eE1128208"
},
{
"address": "arb1:0x0cd9e52891A0a48d45b0C61A31086be8361Ef157",
"type": "EOA",
"isVerified": true,
"name": "Immunefi",
"url": "https://arbiscan.io/address/0x0cd9e52891A0a48d45b0C61A31086be8361Ef157"
},
{
"address": "arb1:0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E",
"type": "EOA",
"isVerified": true,
"name": "fred - Arbitrum 2",
"url": "https://arbiscan.io/address/0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E"
},
{
"address": "arb1:0xBBD2E01eFB88ce00F8f5b6B9a696966070089392",
"type": "EOA",
"isVerified": true,
"name": "Michael Lewellen - blockaid",
"url": "https://arbiscan.io/address/0xBBD2E01eFB88ce00F8f5b6B9a696966070089392"
},
{
"address": "arb1:0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D",
"type": "EOA",
"isVerified": true,
"name": "Certora 2",
"url": "https://arbiscan.io/address/0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D"
},
{
"address": "arb1:0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33",
"type": "EOA",
"isVerified": true,
"name": "gzeon-OffchainLabs",
"url": "https://arbiscan.io/address/0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33"
},
{
"address": "arb1:0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93",
"type": "EOA",
"isVerified": true,
"name": "EmilianoBonassi-Conduit",
"url": "https://arbiscan.io/address/0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93"
},
{
"address": "arb1:0x882c6FCb3D358b9d70B97c6999159cea64168B6F",
"type": "EOA",
"isVerified": true,
"name": "GriffGreen-Giveth",
"url": "https://arbiscan.io/address/0x882c6FCb3D358b9d70B97c6999159cea64168B6F"
},
{
"address": "arb1:0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC",
"type": "EOA",
"isVerified": true,
"name": "StevenThornton-OpenZeppelin",
"url": "https://arbiscan.io/address/0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC"
},
{
"address": "arb1:0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae",
"type": "EOA",
"isVerified": true,
"name": "bartek.eth-L2BEAT",
"url": "https://arbiscan.io/address/0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae"
},
{
"address": "arb1:0x475816ca2a31D601B4e336f5c2418A67978aBf09",
"type": "EOA",
"isVerified": true,
"name": "yoav.eth-EF",
"url": "https://arbiscan.io/address/0x475816ca2a31D601B4e336f5c2418A67978aBf09"
}
],
"discoveryDrivenData": true
},
{
"id": "SecurityCouncilMemberElectionGovernor",
"name": "SecurityCouncilMemberElectionGovernor",
"accounts": [
{
"address": "arb1:0x467923B9AE90BDB36BA88eCA11604D45F13b712C",
"type": "Contract",
"isVerified": true,
"name": "0x4679…712C",
"url": "https://arbiscan.io/address/0x467923B9AE90BDB36BA88eCA11604D45F13b712C"
}
],
"chain": "arbitrum",
"description": "Token governance contract for the Security Council member elections.\n* Can interact with SecurityCouncilManager\n * schedule a proposal to replace a Security Council member cohort ",
"discoveryDrivenData": true
},
{
"id": "SecurityCouncilMemberRemovalGovernor",
"name": "SecurityCouncilMemberRemovalGovernor",
"accounts": [
{
"address": "arb1:0x6f3a242cA91A119F872f0073BC14BC8a74a315Ad",
"type": "Contract",
"isVerified": true,
"name": "0x6f3a…15Ad",
"url": "https://arbiscan.io/address/0x6f3a242cA91A119F872f0073BC14BC8a74a315Ad"
}
],
"chain": "arbitrum",
"description": "Token governance contract for the Security Council member removals.\n* Can interact with SecurityCouncilManager\n * schedule a proposal to remove a Security Council member ",
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 3/5 threshold. ",
"accounts": [
{
"address": "arb1:0xc610984d9C96a7CE54Bcd335CEee9b0e3874380C",
"type": "Contract",
"isVerified": true,
"name": "0xc610…380C",
"url": "https://arbiscan.io/address/0xc610984d9C96a7CE54Bcd335CEee9b0e3874380C"
}
],
"chain": "arbitrum",
"references": [],
"participants": [
{
"address": "arb1:0xf3b0B40e54Be009C852dBD3577F34D1D27bC07F6",
"type": "EOA",
"isVerified": true,
"name": "0xf3b0…07F6",
"url": "https://arbiscan.io/address/0xf3b0B40e54Be009C852dBD3577F34D1D27bC07F6"
},
{
"address": "arb1:0xa98290a7A282d8249544D35b288E160A5580D57E",
"type": "EOA",
"isVerified": true,
"name": "0xa982…D57E",
"url": "https://arbiscan.io/address/0xa98290a7A282d8249544D35b288E160A5580D57E"
},
{
"address": "arb1:0xc43a77b64b34551beA865C9E85A116B444EF44B1",
"type": "EOA",
"isVerified": true,
"name": "0xc43a…44B1",
"url": "https://arbiscan.io/address/0xc43a77b64b34551beA865C9E85A116B444EF44B1"
},
{
"address": "arb1:0x0adc7D8eB4C01219858a579C9539780CD9575035",
"type": "EOA",
"isVerified": true,
"name": "0x0adc…5035",
"url": "https://arbiscan.io/address/0x0adc7D8eB4C01219858a579C9539780CD9575035"
},
{
"address": "arb1:0xdE82B19aA75d93EB9Fca9a284dD0EB643d5e35C2",
"type": "EOA",
"isVerified": true,
"name": "0xdE82…35C2",
"url": "https://arbiscan.io/address/0xdE82B19aA75d93EB9Fca9a284dD0EB643d5e35C2"
}
],
"discoveryDrivenData": true
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"accounts": [
{
"address": "arb1:0xf7951D92B0C345144506576eC13Ecf5103aC905a",
"type": "EOA",
"isVerified": true,
"name": "0xf795…905a",
"url": "https://arbiscan.io/address/0xf7951D92B0C345144506576eC13Ecf5103aC905a"
}
],
"chain": "arbitrum",
"description": "* Can upgrade **with no delay**\n * L2ERC20Gateway [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * L2Timelock [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilMemberElectionGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2GatewayRouter [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * L2WethGateway [via: L2UpgradeExecutor → L2GatewaysProxyAdmin]\n * SecurityCouncilMemberRemovalGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * TreasuryGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilNomineeElectionGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2ArbitrumToken [via: L2UpgradeExecutor → L2ProxyAdmin]\n * TreasuryTimelock [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2ARBGateway [via: L2UpgradeExecutor → L2ProxyAdmin]\n * L2UpgradeExecutor [via: L2UpgradeExecutor → L2ProxyAdmin]\n * SecurityCouncilManager [via: L2UpgradeExecutor → L2ProxyAdmin]\n * CoreGovernor [via: L2UpgradeExecutor → L2ProxyAdmin]\n* Can interact with L2Timelock\n * manage all access control roles and change the minimum delay **with 8d delay** [via: L2UpgradeExecutor with 8d delay]\n* Can interact with SecurityCouncilManager\n * manage all access control roles [via: L2UpgradeExecutor]",
"discoveryDrivenData": true
}
]
},
"ethereum": {
"roles": [
{
"id": "Sequencer",
"name": "Sequencer",
"description": "Can submit transaction batches or commitments to the SequencerInbox contract on the host chain.",
"accounts": [
{
"address": "eth:0x0237e0EA0d86D53aF18dCf4CbE8182037b44ef1A",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1,-EOA-2-and-EOA-3"
},
{
"address": "eth:0x0C5911d57B24FCF1DC8B2608eFbAe57C7098E32D",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-1,-EOA-2-and-EOA-3"
},
{
"address": "eth:0xC1b634853Cb333D3aD8663715b08f41A3Aec47cc",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-1,-EOA-2-and-EOA-3"
}
],
"chain": "ethereum",
"discoveryDrivenData": true
}
],
"actors": [
{
"id": "Arbitrum Security Council",
"name": "Arbitrum Security Council",
"description": "A Multisig with 9/12 threshold. It uses the following modules: UpgradeExecutor (Central contract defining the access control permissions for upgrading the system contract implementations).\n* Can upgrade **with no delay**\n * Outbox [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * SequencerInbox [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * UpgradeExecutor [via: UpgradeExecutor → UpgradeExecutorAdmin]\n * Inbox [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * RollupProxy [via: UpgradeExecutor]\n * RollupEventInbox [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * OutboxV0 [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * GatewayRouter [via: UpgradeExecutor → GatewaysAdmin]\n * OutboxV1 [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * Bridge [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * L1ERC20Gateway [via: UpgradeExecutor → GatewaysAdmin]\n * EdgeChallengeManager [via: UpgradeExecutor → ArbitrumProxyAdmin]\n * L1CustomGateway [via: UpgradeExecutor → GatewaysAdmin]\n * L1Timelock [via: UpgradeExecutor → UpgradeExecutorAdmin]\n* Can interact with RollupProxy\n * Pause and unpause and set important roles and parameters in the system contracts: Can delegate Sequencer management to a BatchPosterManager address, manage data availability and DACs, set the Sequencer-only window, introduce an allowList to the bridge and whitelist Inboxes/Outboxes [via: UpgradeExecutor]\n* Can interact with L1Timelock\n * cancel queued transactions [via: UpgradeExecutor]\n * update the minimum delay and manage all access control roles of the timelock [via: UpgradeExecutor]",
"accounts": [
{
"address": "eth:0xF06E95eF589D9c38af242a8AAee8375f14023F85",
"type": "Contract",
"isVerified": true,
"name": "0xF06E…3F85",
"url": "https://etherscan.io/address/0xF06E95eF589D9c38af242a8AAee8375f14023F85"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - Arbitrum Foundation Docs",
"url": "https://docs.arbitrum.foundation/security-council-members"
}
],
"participants": [
{
"address": "eth:0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67",
"type": "EOA",
"isVerified": true,
"name": "JohnMorrow-Gauntlet",
"url": "https://etherscan.io/address/0x78bB97d2F3811256D7F0041E81Aaf4B426eF3b67"
},
{
"address": "eth:0x875573B973F7E9Ca54eb34a59180C70eE1128208",
"type": "EOA",
"isVerified": true,
"name": "zachxbt",
"url": "https://etherscan.io/address/0x875573B973F7E9Ca54eb34a59180C70eE1128208"
},
{
"address": "eth:0x0cd9e52891A0a48d45b0C61A31086be8361Ef157",
"type": "EOA",
"isVerified": true,
"name": "Immunefi",
"url": "https://etherscan.io/address/0x0cd9e52891A0a48d45b0C61A31086be8361Ef157"
},
{
"address": "eth:0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E",
"type": "EOA",
"isVerified": true,
"name": "fred - Arbitrum 2",
"url": "https://etherscan.io/address/0xD8D4cEC103c0B6d7166405F0EbD7087C75a1528E"
},
{
"address": "eth:0xBBD2E01eFB88ce00F8f5b6B9a696966070089392",
"type": "EOA",
"isVerified": true,
"name": "Michael Lewellen - blockaid",
"url": "https://etherscan.io/address/0xBBD2E01eFB88ce00F8f5b6B9a696966070089392"
},
{
"address": "eth:0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D",
"type": "EOA",
"isVerified": true,
"name": "Certora 2",
"url": "https://etherscan.io/address/0xeEe3Fb3B792C7DDbB6aEF0C440FBC621f4d6fe2D"
},
{
"address": "eth:0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33",
"type": "EOA",
"isVerified": true,
"name": "gzeon-OffchainLabs",
"url": "https://etherscan.io/address/0xe2e9d5B97d8C0457B1cf80BC93802bce4DF03e33"
},
{
"address": "eth:0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93",
"type": "EOA",
"isVerified": true,
"name": "EmilianoBonassi-Conduit",
"url": "https://etherscan.io/address/0x33ddb82e68940f0e4C1050885BcE8faF5Ddd1b93"
},
{
"address": "eth:0x882c6FCb3D358b9d70B97c6999159cea64168B6F",
"type": "EOA",
"isVerified": true,
"name": "GriffGreen-Giveth",
"url": "https://etherscan.io/address/0x882c6FCb3D358b9d70B97c6999159cea64168B6F"
},
{
"address": "eth:0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC",
"type": "EOA",
"isVerified": true,
"name": "StevenThornton-OpenZeppelin",
"url": "https://etherscan.io/address/0x9316ca66f5f936E3239e4fD2AAAEA5C7b6f3C4cC"
},
{
"address": "eth:0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae",
"type": "EOA",
"isVerified": true,
"name": "bartek.eth-L2BEAT",
"url": "https://etherscan.io/address/0x0275b3D54a5dDbf8205A75984796eFE8b7357Bae"
},
{
"address": "eth:0x475816ca2a31D601B4e336f5c2418A67978aBf09",
"type": "EOA",
"isVerified": true,
"name": "yoav.eth-EF",
"url": "https://etherscan.io/address/0x475816ca2a31D601B4e336f5c2418A67978aBf09"
}
],
"discoveryDrivenData": true
},
{
"id": "Arbitrum Multisig 1",
"name": "Arbitrum Multisig 1",
"description": "A Multisig with 4/6 threshold. \n* Can interact with SequencerInbox\n * Add/remove batchPosters (Sequencers) ",
"accounts": [
{
"address": "eth:0xd0FDA6925f502a3a94986dfe7C92FE19EBbD679B",
"type": "Contract",
"isVerified": true,
"name": "0xd0FD…679B",
"url": "https://etherscan.io/address/0xd0FDA6925f502a3a94986dfe7C92FE19EBbD679B"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x375906ADFD34D93236084F462BB2dB0D92129Fe1",
"type": "EOA",
"isVerified": true,
"name": "0x3759…9Fe1",
"url": "https://etherscan.io/address/0x375906ADFD34D93236084F462BB2dB0D92129Fe1"
},
{
"address": "eth:0xfE2bf40f2A9183774BF8E871d634A4E50255158B",
"type": "EOA",
"isVerified": true,
"name": "0xfE2b…158B",
"url": "https://etherscan.io/address/0xfE2bf40f2A9183774BF8E871d634A4E50255158B"
},
{
"address": "eth:0x64379Dee676ab442B48925Ed603771f386510Ee7",
"type": "EOA",
"isVerified": true,
"name": "0x6437…0Ee7",
"url": "https://etherscan.io/address/0x64379Dee676ab442B48925Ed603771f386510Ee7"
},
{
"address": "eth:0x290Aa3E7533c873B3326DabFe7579e86ed951428",
"type": "EOA",
"isVerified": true,
"name": "0x290A…1428",
"url": "https://etherscan.io/address/0x290Aa3E7533c873B3326DabFe7579e86ed951428"
},
{
"address": "eth:0x4d9A23BD4DBBdC04A88B99d8d2ac450EB6b8f49C",
"type": "EOA",
"isVerified": true,
"name": "0x4d9A…f49C",
"url": "https://etherscan.io/address/0x4d9A23BD4DBBdC04A88B99d8d2ac450EB6b8f49C"
},
{
"address": "eth:0x79D3Bb67EA7aB77E015af3dA885E8ed9C48a9fCe",
"type": "EOA",
"isVerified": true,
"name": "0x79D3…9fCe",
"url": "https://etherscan.io/address/0x79D3Bb67EA7aB77E015af3dA885E8ed9C48a9fCe"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1,-EOA-2-and-EOA-3",
"name": "EOA 1, EOA 2 and EOA 3",
"accounts": [
{
"address": "eth:0x0237e0EA0d86D53aF18dCf4CbE8182037b44ef1A",
"type": "EOA",
"isVerified": true,
"name": "0x0237…ef1A",
"url": "https://etherscan.io/address/0x0237e0EA0d86D53aF18dCf4CbE8182037b44ef1A"
},
{
"address": "eth:0x0C5911d57B24FCF1DC8B2608eFbAe57C7098E32D",
"type": "EOA",
"isVerified": true,
"name": "0x0C59…E32D",
"url": "https://etherscan.io/address/0x0C5911d57B24FCF1DC8B2608eFbAe57C7098E32D"
},
{
"address": "eth:0xC1b634853Cb333D3aD8663715b08f41A3Aec47cc",
"type": "EOA",
"isVerified": true,
"name": "0xC1b6…47cc",
"url": "https://etherscan.io/address/0xC1b634853Cb333D3aD8663715b08f41A3Aec47cc"
}
],
"chain": "ethereum",
"description": "* A Sequencer - acting directly",
"discoveryDrivenData": true
}
]
}
}
+17 -3
{
"addresses": {
"ethereum": [
{
"name": "SequencerInbox",
"isVerified": true,
"address": "eth:0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x98a58ADAb0f8A66A1BF4544d804bc0475dff32c7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661457944,
"transactionHash": "0x248787fbf0415ff1da68ba618da0cbdd5dcc7c6029be38709f95ea837211edc5",
"implementations": [
"eth:0xbe04Ab2728c924D678f9FC833E379688c6eFA317"
]
},
{
"timestamp": 1661913086,
"transactionHash": "0x07bbd6efdc155699ab2807c0d1509e98e06aa58ce25f208f09c03899f3a128cd",
"implementations": [
"eth:0x16242595cAfA3a207E9354E3bdb000B59bA82875"
]
},
{
"timestamp": 1663124880,
"transactionHash": "0xbfd8f54bf6b44ea4bcd76306d74b63602ee654e6a344bccca1825a388050988b",
"implementations": [
"eth:0xcc4e9E22AcDf93192cf7E149D7563F6d660E9Afc"
]
},
{
"timestamp": 1667926079,
"transactionHash": "0x0f4db1811c997e979b8f7be3cd8509b5ea0bb6a366a1848a0905f9c7f50c8612",
"implementations": [
"eth:0xD03bFe2CE83632F4E618a97299cc91B1335BB2d9"
]
},
{
"timestamp": 1710423719,
"transactionHash": "0x51b492ac498a88565639cfe3df77be8729d61f1c413d00b66530d4022a13c36a",
"implementations": [
"eth:0x31DA64D19Cd31A19CD09F4070366Fe2144792cf7"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x98a58ADAb0f8A66A1BF4544d804bc0475dff32c7"
]
}
],
"description": "A sequencer (registered in this contract) can submit transaction batches or commitments here.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **batchPosterManager**: Arbitrum Multisig 1\n * **batchPosters**: EOA 1, EOA 2, EOA 3",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6#code"
},
{
"name": "RollupProxy",
"isVerified": true,
"address": "eth:0x4DCeB440657f21083db8aDd07665f8ddBe1DCfc0",
"upgradeability": {
"proxyType": "Arbitrum proxy",
"admins": [
"eth:0x3ffFbAdAF827559da092217e474760E2b2c3CeDd"
],
"implementations": [
"eth:0x7FC126FF51183a78C5E0437467f325f661D8Df17",
"eth:0x6490bA0a60Cc7d3a59C9eeE135D9eeD24553a60d"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x7FC126FF51183a78C5E0437467f325f661D8Df17",
"eth:0x6490bA0a60Cc7d3a59C9eeE135D9eeD24553a60d"
]
}
],
"description": "Central contract for the project's configuration like its execution logic hash (`wasmModuleRoot`) and addresses of the other system contracts. Entry point for Proposers creating new assertions (state commitments) and Challengers submitting fraud proofs (In the Orbit stack, these two roles are both called Validators).\n* Roles:\n * **admin**: UpgradeExecutor; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **owner**: UpgradeExecutor; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4DCeB440657f21083db8aDd07665f8ddBe1DCfc0#code"
},
{
"name": "Bridge",
"isVerified": true,
"address": "eth:0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x93e8f92327bFa8096F5F6ee5f2a49183D3B3b898"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661457944,
"transactionHash": "0x248787fbf0415ff1da68ba618da0cbdd5dcc7c6029be38709f95ea837211edc5",
"implementations": [
"eth:0xfCEa474C6bD5Dd4eDF5f37EE6Bea5567F0B52A08"
]
},
{
"timestamp": 1661913086,
"transactionHash": "0x07bbd6efdc155699ab2807c0d1509e98e06aa58ce25f208f09c03899f3a128cd",
"implementations": [
"eth:0x1066CEcC8880948FE55e427E94F1FF221d626591"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x93e8f92327bFa8096F5F6ee5f2a49183D3B3b898"
]
}
],
"description": "Escrow contract for the project's gas token (can be different from ETH). Keeps a list of allowed Inboxes and Outboxes for canonical bridge messaging.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **mainOutboxAddress**: Outbox",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a#code"
},
{
"name": "EdgeChallengeManager",
"isVerified": true,
"address": "eth:0xA5565d266c3c3Ee90B16Be8A5b13d587ef559fB0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x058E1cBb62096189Bc7Cc1FE08A0859905d969Ea"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x058E1cBb62096189Bc7Cc1FE08A0859905d969Ea"
]
}
],
"description": "Contract that implements the main challenge protocol logic of the fraud proof system.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA5565d266c3c3Ee90B16Be8A5b13d587ef559fB0#code"
},
{
"name": "UpgradeExecutor",
"isVerified": true,
"address": "eth:0x3ffFbAdAF827559da092217e474760E2b2c3CeDd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5613AF0474EB9c528A34701A5b1662E3C8FA0678"
],
"implementations": [
"eth:0x3d745b8815F9be5BF053858165f8aB1F58c77932"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1678968515,
"transactionHash": "0x9826d4f30361ad867030f94b0987567baf54040c39b661d8a825e945dc221eec",
"implementations": [
"eth:0x86f0cf42Ad673B3D666d103E009EC142D1298a17"
]
},
{
"timestamp": 1758644207,
"transactionHash": "0x81f4da8c5dd87d618e927936c941151689ef674ce2639cd4f0857fa4b75a2861",
"implementations": [
"eth:0x3d745b8815F9be5BF053858165f8aB1F58c77932"
]
}
],
"description": "Central contract defining the access control permissions for upgrading the system contract implementations.\n* Roles:\n * **admin**: UpgradeExecutorAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **executors**: Arbitrum Security Council, L1Timelock",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3ffFbAdAF827559da092217e474760E2b2c3CeDd#code"
},
{
"name": "L1Timelock",
"isVerified": true,
"address": "eth:0xE6841D92B0C345144506576eC13ECf5103aC7f49",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x5613AF0474EB9c528A34701A5b1662E3C8FA0678"
],
"implementations": [
"eth:0x61dC65001A8De4138DAD5167e43FF0FB0AB8D3B3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1678968515,
"transactionHash": "0x9826d4f30361ad867030f94b0987567baf54040c39b661d8a825e945dc221eec",
"implementations": [
"eth:0x962d70fc48F3465404bC77B03f104746B25a1d1b"
]
},
{
"timestamp": 1695256619,
"transactionHash": "0x84c81ca768ba6e8c9a81bd060ac455d8a9488e3f6e7ef34f4e0bd3cb74d53140",
"implementations": [
"eth:0x61dC65001A8De4138DAD5167e43FF0FB0AB8D3B3"
]
}
],
"description": "A timelock with access control. The current minimum delay is 3d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **admin**: UpgradeExecutorAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **canceller**: UpgradeExecutor; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose\n * **proposer**: Bridge; ultimately CoreGovernor, L2SecurityCouncilPropose\n * **timelockAdmin**: UpgradeExecutor; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xE6841D92B0C345144506576eC13ECf5103aC7f49#code"
},
{
"name": "Outbox",
"isVerified": true,
"address": "eth:0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x3FFf9BdC3ce99d3D587b0d06Aa7C4a10075193b4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661457944,
"transactionHash": "0x248787fbf0415ff1da68ba618da0cbdd5dcc7c6029be38709f95ea837211edc5",
"implementations": [
"eth:0x0eA7372338a589e7f0b00E463a53AA464ef04e17"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x3FFf9BdC3ce99d3D587b0d06Aa7C4a10075193b4"
]
}
],
"description": "Facilitates L2 to L1 contract calls: Messages initiated from L2 (for example withdrawal messages) eventually resolve in execution on L1. Is also used to relay governance action messages from Arbitrum One to Ethereum, allowing the L2Timelock and its Governance actors on L2 to act as this address and inherit all its listed permissions.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840#code"
},
{
"name": "Inbox",
"isVerified": true,
"address": "eth:0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x7C058ad1D0Ee415f7e7f30e62DB1BCf568470a10"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1622317036,
"transactionHash": "0x2a41e48a9927eddb62c3d45d7a2eb0304281d4b9e7db8d52022c3ff80f7751df",
"implementations": [
"eth:0xB38634F1192fd4A4864b99a4C9100339815c6450"
]
},
{
"timestamp": 1630187410,
"transactionHash": "0xc71c860df401495251ad1f549dbfd4995f4284e40454765f32e2e873f4aa63dc",
"implementations": [
"eth:0xE5dB9273e7279F1485b30D8553183E3E29532ca3"
]
},
{
"timestamp": 1630287808,
"transactionHash": "0x37915ab37a7161dbc2f41340849491bcfc77eddce6fa3bce2918b1277e40597b",
"implementations": [
"eth:0x048cc108763de75E080Ad717bD284003aa49eA15"
]
},
{
"timestamp": 1651333828,
"transactionHash": "0x3e8e23623e0dbda0b428efd30e71ef7b0e61622fc036db4943ce78bbfd129f91",
"implementations": [
"eth:0xc23E3F20340f8ef09c8861a724C29dB43bA3eeD4"
]
},
{
"timestamp": 1661532655,
"transactionHash": "0xe679c9810cdff738114c551b47b1c30b5445f684a12a25dfaf27dac2e613591a",
"implementations": [
"eth:0xe4B8015Ea98fc86D7fDe16CdfD1B7A250cD93e2B"
]
},
{
"timestamp": 1661956342,
"transactionHash": "0x7dfb8f1f20815629a78dc16a8657306b6d200041624c4f3410d659cbdab2bc9f",
"implementations": [
"eth:0x3E2198A77FC6B266082b92859092170763548730"
]
},
{
"timestamp": 1663124880,
"transactionHash": "0xbfd8f54bf6b44ea4bcd76306d74b63602ee654e6a344bccca1825a388050988b",
"implementations": [
"eth:0x1b2676D32E2f7430a564DD4560641F990dFE3D6a"
]
},
{
"timestamp": 1668791063,
"transactionHash": "0xd2638d4092738bced51f259ca8ab228c21763fd0e5d85657a75aec811c2c51f3",
"implementations": [
"eth:0x931E1770BEC7827841f3989bda43319adACD62db"
]
},
{
"timestamp": 1671119939,
"transactionHash": "0x0bd4aae6c69f7e6aae36a112aae4793716f23620ed242027cc84c9236f170836",
"implementations": [
"eth:0x5aED5f8A1e3607476F1f81c3d8fe126deB0aFE94"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x7C058ad1D0Ee415f7e7f30e62DB1BCf568470a10"
]
}
],
"description": "Facilitates sending L1 to L2 messages like depositing ETH, but does not escrow funds.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f#code"
},
{
"name": "L1ERC20Gateway",
"isVerified": true,
"address": "eth:0xa3A7B6F88361F48403514059F1F16C8E78d60EeC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa"
],
"implementations": [
"eth:0xb4299A1F5f26fF6a98B7BA35572290C359fde900"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1624716065,
"transactionHash": "0x289c1529f29f00f7b67f99074061d971a2d33ffc15a6fe5d7fa8ed533a6d8698",
"implementations": [
"eth:0x553524e576a0E92beC7CC24843C04bF51493A5db"
]
},
{
"timestamp": 1627684791,
"transactionHash": "0xa3c53b23f347613b517160eb732174e54f3b28d8e63646d14b8e39394c449ae2",
"implementations": [
"eth:0x41AC92014C66C38bBBDEF8cCF5A060CCa5634fd5"
]
},
{
"timestamp": 1629993965,
"transactionHash": "0xc93128ad2d69bac5c0c5ebe77abe4ead2cdb0ece637ff8db193e7c894933d8f7",
"implementations": [
"eth:0xE317c204Fa7C3150af24aa20264b983fc82b7BBd"
]
},
{
"timestamp": 1630345284,
"transactionHash": "0xbe4a3a9dd5b909eb699c07aec0a5d190a8433b3c65544b85521cab827f80d481",
"implementations": [
"eth:0x0aCb04878B3675EF40b2e9392622CE3C1E9CC99E"
]
},
{
"timestamp": 1634222162,
"transactionHash": "0x14a48840cec5b16e7e909ddbe69eec7edaeafde958c866a97a048b2daf9f9c1f",
"implementations": [
"eth:0xd710c475216999184DB1737aAd197fC855255AD7"
]
},
{
"timestamp": 1639177425,
"transactionHash": "0xec47d4c470dffaa2f23005fb51acbd27a42f04067edf9dffb45d456da947e321",
"implementations": [
"eth:0xa83520Ae8d05bDBd20770c3d7268F66AcAcb6d43"
]
},
{
"timestamp": 1659978124,
"transactionHash": "0xf2ba2551709d23686f52c3a3ecc65ae8347f1bab1877265c57ba260e8222bf33",
"implementations": [
"eth:0xb4299A1F5f26fF6a98B7BA35572290C359fde900"
]
}
],
"description": "Escrows deposited ERC-20 assets for the canonical Bridge. Upon depositing, a generic token representation will be minted at the destination. Withdrawals are initiated by the Outbox contract.\n* Roles:\n * **admin**: GatewaysAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa3A7B6F88361F48403514059F1F16C8E78d60EeC#code"
},
{
"name": "wstETHEscrow",
"isVerified": true,
"address": "eth:0x0F25c1DC2a9922304f2eac71DCa9B07E310e8E5a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xc4E3ff0b5B106f88Fc64c43031BE8b076ee9F21C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1659608791,
"transactionHash": "0x912fc5992f5a24c2ffe5e230ac51fcc4724cb3e4a23535b04eec34f99f77e3a8",
"implementations": [
"eth:0xc4E3ff0b5B106f88Fc64c43031BE8b076ee9F21C"
]
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0F25c1DC2a9922304f2eac71DCa9B07E310e8E5a#code"
},
{
"name": "LPTL1Escrow",
"isVerified": true,
"address": "eth:0x6A23F4940BD5BA117Da261f98aae51A8BFfa210A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6A23F4940BD5BA117Da261f98aae51A8BFfa210A#code"
},
{
"name": "GatewayRouter",
"isVerified": true,
"address": "eth:0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa"
],
"implementations": [
"eth:0x52595021fA01B3E14EC6C88953AFc8E35dFf423c"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1625173656,
"transactionHash": "0xb143deb4f1396daa96ea8e5be22dc6b188a09653bdf300b1f40573cce7ad01f0",
"implementations": [
"eth:0x4b2Cf3BE8677096310b32a648b0Bdb8c5A8dDC94"
]
},
{
"timestamp": 1629993939,
"transactionHash": "0x5dc6e34fc33a880f60903032ae94b8bb11973c0102c7959490bbc0ea124f11e9",
"implementations": [
"eth:0x555d10f9E4d1b60B9c3F87F4E835119B2C65c8B0"
]
},
{
"timestamp": 1630345211,
"transactionHash": "0x29c02be0f39043d705dd8d3eb2af9e3b3ae5e94251aa294e7c4e919252f80ab0",
"implementations": [
"eth:0x62285266B5ec3d5B8867c84B807b79B2c13892EC"
]
},
{
"timestamp": 1631908333,
"transactionHash": "0x92bf07ee654ad93ad41c093f045cde6cd4b839d0e3a6b0532a8ab18090208f35",
"implementations": [
"eth:0x594393B6A6A46190dF3E479304bbC63572c6830a"
]
},
{
"timestamp": 1634222162,
"transactionHash": "0x14a48840cec5b16e7e909ddbe69eec7edaeafde958c866a97a048b2daf9f9c1f",
"implementations": [
"eth:0x32f39fa08c1E0bbA551CBDa4197e543C53b3fC53"
]
},
{
"timestamp": 1634925560,
"transactionHash": "0x656bdf44374b1fc07ce0a01b9645e2b03a4f134b35dfe41fd3e2045cfe082411",
"implementations": [
"eth:0x2e8e3e55cE12F981EbF8E545Cb263aB238e19715"
]
},
{
"timestamp": 1659978124,
"transactionHash": "0xf2ba2551709d23686f52c3a3ecc65ae8347f1bab1877265c57ba260e8222bf33",
"implementations": [
"eth:0x6D1c576Fe3e54313990450f5Fa322306B4cCB47B"
]
},
{
"timestamp": 1667926079,
"transactionHash": "0x0f4db1811c997e979b8f7be3cd8509b5ea0bb6a366a1848a0905f9c7f50c8612",
"implementations": [
"eth:0x52595021fA01B3E14EC6C88953AFc8E35dFf423c"
]
}
],
"description": "This routing contract maps tokens to the correct escrow (gateway) to be then bridged with canonical messaging.\n* Roles:\n * **admin**: GatewaysAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef#code"
},
{
"name": "L1Escrow",
"isVerified": true,
"address": "eth:0xA10c7CE4b876998858b1a9E12b10092229539400",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Simple escrow that accepts tokens and allows to configure permissioned addresses that can access the tokens.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA10c7CE4b876998858b1a9E12b10092229539400#code"
},
{
"name": "L1CustomGateway",
"isVerified": true,
"address": "eth:0xcEe284F754E854890e311e3280b767F80797180d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa"
],
"implementations": [
"eth:0xC8D26aB9e132C79140b3376a0Ac7932E4680Aa45"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1624716075,
"transactionHash": "0xd0f181f40b470dbd3d2c44474725ea0babcc54c6a035b33e090229e133b40456",
"implementations": [
"eth:0x20c9d24EDcF5CC943BE6eC55CbE786AbF05354c0"
]
},
{
"timestamp": 1625173105,
"transactionHash": "0x92f6e1e0af1cfede9c7253d4fe72400ea1215985686cb0a25da2a1d7c8d614b0",
"implementations": [
"eth:0x304c13E8d2353f57076f2f8B8Dd4e29e347841EB"
]
},
{
"timestamp": 1627684759,
"transactionHash": "0xff67b0e76d27e79cc9e251a34c1511df39bb5769c4e30956d945f8bafc08f40c",
"implementations": [
"eth:0xc5199b28d5267F80A7FA7a3313357D50Cf4Dba6C"
]
},
{
"timestamp": 1629993991,
"transactionHash": "0xf79ceb2e28ffd89853dc992cfba0ce69ab77c711b31b251608112bf703cf7a98",
"implementations": [
"eth:0x79f01C581bfd44aF8B0721029Bf594B30592675F"
]
},
{
"timestamp": 1630345297,
"transactionHash": "0x4134f1974f5b4c4f95cb2e8a9f7ce56a055a672911c09a7918497f8f14f117da",
"implementations": [
"eth:0x98659BDffa4fEF82cD37771CDBFF3ddDa21EE8e9"
]
},
{
"timestamp": 1634222162,
"transactionHash": "0x14a48840cec5b16e7e909ddbe69eec7edaeafde958c866a97a048b2daf9f9c1f",
"implementations": [
"eth:0x73bd0a2476b40A6aE04497D36efc85affeD3516b"
]
},
{
"timestamp": 1639177425,
"transactionHash": "0xec47d4c470dffaa2f23005fb51acbd27a42f04067edf9dffb45d456da947e321",
"implementations": [
"eth:0xe8B0e562269EF963AA7b4c92645ff06E72CA02E6"
]
},
{
"timestamp": 1659978124,
"transactionHash": "0xf2ba2551709d23686f52c3a3ecc65ae8347f1bab1877265c57ba260e8222bf33",
"implementations": [
"eth:0xC8D26aB9e132C79140b3376a0Ac7932E4680Aa45"
]
}
],
"description": "Escrows deposited assets for the canonical bridge that are externally governed or need custom token contracts with e.g. minting rights or upgradeability.\n* Roles:\n * **admin**: GatewaysAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xcEe284F754E854890e311e3280b767F80797180d#code"
},
{
"name": "L1DaiGateway",
"isVerified": true,
"address": "eth:0xD3B5b60020504bc3489D6949d545893982BA3011",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Counterpart of the L2DaiGateway. Allows for bridging DAI from L1 to L2.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD3B5b60020504bc3489D6949d545893982BA3011#code"
},
{
"name": "OneStepProver0",
"isVerified": true,
"address": "eth:0x35FBC5F03d86E88973B06Fb9C5a913D54AbdF731",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x35FBC5F03d86E88973B06Fb9C5a913D54AbdF731#code"
},
{
"name": "ParentToChildRewardRouter",
"isVerified": true,
"address": "eth:0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Collects the excess stake when rival nodes are created and allows to send them to the L2 treasury.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999#code"
},
{
"name": "OneStepProofEntry",
"isVerified": true,
"address": "eth:0x4397fE1E959Ba81B9D5f1A9679Ddd891955A42d6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4397fE1E959Ba81B9D5f1A9679Ddd891955A42d6#code"
},
{
"name": "RollupEventInbox",
"isVerified": true,
"address": "eth:0x57Bd336d579A51938619271a7Cc137a46D0501B1",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x6D576E220Cb44C3E8eF75D0EfBeb1Ff041e2E4A5"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661457944,
"transactionHash": "0x248787fbf0415ff1da68ba618da0cbdd5dcc7c6029be38709f95ea837211edc5",
"implementations": [
"eth:0x806421D09cDb253aa9d128a658e60c0B95eFFA01"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x6D576E220Cb44C3E8eF75D0EfBeb1Ff041e2E4A5"
]
}
],
"description": "Helper contract sending configuration data over the bridge during the systems initialization.\n* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x57Bd336d579A51938619271a7Cc137a46D0501B1#code"
},
{
"name": "OutboxV0",
"isVerified": true,
"address": "eth:0x667e23ABd27E623c11d4CC00ca3EC4d0bD63337a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x263a68002876E307804168795519da0B32CC62fE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1630187713,
"transactionHash": "0xe63e93e3aeaeab596c9b5f306d0f9b42f5afdc11035d4b247278916ee39376cd",
"implementations": [
"eth:0xb91f4bE773F5a1b9b0dC1085663b3535A6EBeEE2"
]
},
{
"timestamp": 1661532655,
"transactionHash": "0xe679c9810cdff738114c551b47b1c30b5445f684a12a25dfaf27dac2e613591a",
"implementations": [
"eth:0x263a68002876E307804168795519da0B32CC62fE"
]
}
],
"description": "* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x667e23ABd27E623c11d4CC00ca3EC4d0bD63337a#code"
},
{
"name": "OutboxV1",
"isVerified": true,
"address": "eth:0x760723CD2e632826c38Fef8CD438A4CC7E7E1A40",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x360861b7b245c968128F0a53d281aDb1Df760711"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661532655,
"transactionHash": "0xe679c9810cdff738114c551b47b1c30b5445f684a12a25dfaf27dac2e613591a",
"implementations": [
"eth:0x360861b7b245c968128F0a53d281aDb1Df760711"
]
}
],
"description": "* Roles:\n * **admin**: ArbitrumProxyAdmin; ultimately Arbitrum Security Council, CoreGovernor, L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilPropose",
"delay": "17d 8h"
},
{
"name": "CoreGovernor",
"delay": "17d 8h"
},
{
"name": "Arbitrum Security Council",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x760723CD2e632826c38Fef8CD438A4CC7E7E1A40#code"
},
{
"name": "OneStepProverHostIo",
"isVerified": true,
"address": "eth:0xa07cD154340CC74EcF156FFB9fb378Ee29Ca71Cf",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa07cD154340CC74EcF156FFB9fb378Ee29Ca71Cf#code"
},
{
"name": "OneStepProverMath",
"isVerified": true,
"address": "eth:0xaB9596a0aaF28bc798c453434EC2DC0F8F0bF921",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaB9596a0aaF28bc798c453434EC2DC0F8F0bF921#code"
},
{
"name": "OneStepProverMemory",
"isVerified": true,
"address": "eth:0xe0ba77e0E24de5369e3B268Ea79fDe716e2EC48b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "One of the modular contracts used for the last step of a fraud proof, which is simulated inside a WASM virtual machine.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xe0ba77e0E24de5369e3B268Ea79fDe716e2EC48b#code"
}
],
"arbitrum": [
{
"name": "L2Timelock",
"isVerified": true,
"address": "arb1:0x34d45e99f7D8c45ed05B5cA72D54bbD1fb3F98f0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x41740588b86B4e0629b83A4e28786FF94361c3A3"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968508,
"transactionHash": "0x9cdbb4672b549c26d97cac29f9cd73c1951656e0622ba4b9ed0abff2ee58698d",
"implementations": [
"arb1:0x41740588b86B4e0629b83A4e28786FF94361c3A3"
]
}
],
"description": "Delays constitutional AIPs from the CoreGovernor by 8d.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency\n * **canceller**: CoreGovernor\n * **proposer**: CoreGovernor, L2SecurityCouncilPropose, SecurityCouncilManager\n * **timelockAdmin**: L2UpgradeExecutor; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x34d45e99f7D8c45ed05B5cA72D54bbD1fb3F98f0#code"
},
{
"name": "TreasuryGovernor",
"isVerified": true,
"address": "arb1:0x789fC99093B09aD01C34DC7251D0C89ce743e5a4",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x065620d99E1785Ccf56Fa95462d3012Eb844FDC9"
"arb1:0x46AF4EDFDb689C30560D11052056d603d05b5aE0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968508,
"transactionHash": "0x9cdbb4672b549c26d97cac29f9cd73c1951656e0622ba4b9ed0abff2ee58698d",
"implementations": [
"arb1:0x065620d99E1785Ccf56Fa95462d3012Eb844FDC9"
]
},
{
"timestamp": 1774870191,
"transactionHash": "0xe7d8582f70ed8f2aea014c5de13cbbeabe7c128707e25fa01cae9db781846038",
"implementations": [
"arb1:0x46AF4EDFDb689C30560D11052056d603d05b5aE0"
]
}
],
"description": "Token governance contract used for creating non-constitutional AIPs, or “treasury proposals”, e.g., transferring founds out of the DAO Treasury. Also enforces the 3% quorum for proposals.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"description": "Token governance contract used for creating non-constitutional AIPs (treasury proposals), e.g., transferring funds out of the DAO Treasury. Uses DVP-based quorum (percentage of Delegated Voting Power with floor and ceiling bounds).\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x789fC99093B09aD01C34DC7251D0C89ce743e5a4#code"
},
{
"name": "SecurityCouncilNomineeElectionGovernor",
"isVerified": true,
"address": "arb1:0x8a1cDA8dee421cD06023470608605934c16A05a0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0xd3Ae921B220bedC2f94a5968E25535a476A9518C"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1692138965,
"transactionHash": "0xb2e6f470d1e229cc4225234ae7df52ace563c7b0b9e3ad63a02f535f47e3ac6b",
"implementations": [
"arb1:0x8436A1bc9f9f9EB0cF1B51942C5657b60A40CCDD"
]
},
{
"timestamp": 1709903420,
"transactionHash": "0x2e784329480dcb755f6224186b5e0d0a32aa666698d06d0fea5c19f71ed5a9c3",
"implementations": [
"arb1:0xd3Ae921B220bedC2f94a5968E25535a476A9518C"
]
}
],
"description": "Token governance contract for the Security Council nominee elections.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x8a1cDA8dee421cD06023470608605934c16A05a0#code"
},
{
"name": "TreasuryTimelock",
"isVerified": true,
"address": "arb1:0xbFc1FECa8B09A5c5D3EFfE7429eBE24b9c09EF58",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x41740588b86B4e0629b83A4e28786FF94361c3A3"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968508,
"transactionHash": "0x9cdbb4672b549c26d97cac29f9cd73c1951656e0622ba4b9ed0abff2ee58698d",
"implementations": [
"arb1:0x41740588b86B4e0629b83A4e28786FF94361c3A3"
]
}
],
"description": "Delays treasury proposals from the TreasuryGovernor by 259200 seconds. Is used as the main recipient for the ETH from L2SurplusFee and L2BaseFee contracts.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xbFc1FECa8B09A5c5D3EFfE7429eBE24b9c09EF58#code"
},
{
"name": "L2UpgradeExecutor",
"isVerified": true,
"address": "arb1:0xCF57572261c7c2BCF21ffD220ea7d1a27D40A827",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x3d745b8815F9be5BF053858165f8aB1F58c77932"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968508,
"transactionHash": "0x9cdbb4672b549c26d97cac29f9cd73c1951656e0622ba4b9ed0abff2ee58698d",
"implementations": [
"arb1:0x7A013834D54e9B22d1978aAe3aaDDC909Aa79115"
]
},
{
"timestamp": 1758645131,
"transactionHash": "0x288a50fac2dcdd766d7f11b3ee8597152c8d015e904681b34cb0d652671496de",
"implementations": [
"arb1:0x3d745b8815F9be5BF053858165f8aB1F58c77932"
]
}
],
"description": "This contract can upgrade the L2 system's contracts through the L2ProxyAdmin. The upgrades can be done either by the Security Council or by the L1Timelock (via its alias on L2).\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency\n * **executors**: L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xCF57572261c7c2BCF21ffD220ea7d1a27D40A827#code"
},
{
"name": "SecurityCouncilManager",
"isVerified": true,
"address": "arb1:0xD509E5f5aEe2A205F554f36E8a7d56094494eDFC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x468dA0eE5570Bdb1Dd81bFd925BAf028A93Dce64"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1692138965,
"transactionHash": "0xb2e6f470d1e229cc4225234ae7df52ace563c7b0b9e3ad63a02f535f47e3ac6b",
"implementations": [
"arb1:0x468dA0eE5570Bdb1Dd81bFd925BAf028A93Dce64"
]
}
],
"description": "This contract enforces the rules for changing members and cohorts of the SecurityCouncil and creates crosschain messages to Ethereum and Arbitrum Nova to keep the configuration in sync.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency\n * **cohortReplacer**: SecurityCouncilMemberElectionGovernor\n * **defaultAdmin**: L2UpgradeExecutor; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency\n * **memberAdder**: L2SecurityCouncilPropose\n * **memberRemover**: L2SecurityCouncilPropose, SecurityCouncilMemberRemovalGovernor\n * **memberReplacer**: L2SecurityCouncilPropose\n * **memberRotator**: L2SecurityCouncilPropose",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xD509E5f5aEe2A205F554f36E8a7d56094494eDFC#code"
},
{
"name": "L2ERC20Gateway",
"isVerified": true,
"address": "arb1:0x09e9222E96E7B4AE2a407B98d48e330053351EEe",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xd570aCE65C43af47101fC6250FD6fC63D1c22a86"
],
"implementations": [
"arb1:0x1DCf7D03574fbC7C205F41f2e116eE094a652e93"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1624716065,
"transactionHash": "0x4e12ef6c0cb9089632488f4796b6c46818908d29b4547432506dfd28e0e9017b",
"implementations": [
"arb1:0x4bF6365278F340E759e7BB4732fE8B507784eAEB"
]
},
{
"timestamp": 1629994790,
"transactionHash": "0x4493b489b9d332078d3dc0ead005a04be3be264a4f2bc32949c19529455804c6",
"implementations": [
"arb1:0x370ED500E9FEBC1ab05aC0A1617F8775aB80c48e"
]
},
{
"timestamp": 1630345637,
"transactionHash": "0xaa2a503ca6469c771da72d0f04e2afcbe342d9491f620c6b0f7a553c972602da",
"implementations": [
"arb1:0xEdE95739749BfA021134E41F520d784c99323D6B"
]
},
{
"timestamp": 1659980035,
"transactionHash": "0x1608ac4dc927c1b322d906419400226634fbf6e68e3fec72316d2e0a3b76c141",
"implementations": [
"arb1:0x1DCf7D03574fbC7C205F41f2e116eE094a652e93"
]
}
],
"description": "Counterpart to the L1ERC20Gateway. Can mint (deposit to L2) and burn (withdraw to L1) ERC20 tokens on L2.\n* Roles:\n * **admin**: L2GatewaysProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x09e9222E96E7B4AE2a407B98d48e330053351EEe#code"
},
{
"name": "L2GatewayRouter",
"isVerified": true,
"address": "arb1:0x5288c571Fd7aD117beA99bF60FE0846C4E84F933",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xd570aCE65C43af47101fC6250FD6fC63D1c22a86"
],
"implementations": [
"arb1:0xe80eb0238029333e368e0bDDB7acDf1b9cb28278"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1629994790,
"transactionHash": "0x5eac0a26fe108aefb7fe582a4e496463befe69c8fccdb041de9fadbf72190662",
"implementations": [
"arb1:0xb30751052797AdBDdbF4847045E51E65e48BAF9c"
]
},
{
"timestamp": 1630345637,
"transactionHash": "0x3ced0ee009785e4b17f388a9da4d27fa77c77059c91e8349e8ddf6ba133ef62e",
"implementations": [
"arb1:0x176a9d89d235512Ad5CB4b6A0879D704D8315eF8"
]
},
{
"timestamp": 1659980035,
"transactionHash": "0x1608ac4dc927c1b322d906419400226634fbf6e68e3fec72316d2e0a3b76c141",
"implementations": [
"arb1:0xe80eb0238029333e368e0bDDB7acDf1b9cb28278"
]
}
],
"description": "Router managing token <–> gateway mapping on L2.\n* Roles:\n * **admin**: L2GatewaysProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x5288c571Fd7aD117beA99bF60FE0846C4E84F933#code"
},
{
"name": "L2WethGateway",
"isVerified": true,
"address": "arb1:0x6c411aD3E74De3E7Bd422b94A27770f5B86C623B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xd570aCE65C43af47101fC6250FD6fC63D1c22a86"
],
"implementations": [
"arb1:0x806421D09cDb253aa9d128a658e60c0B95eFFA01"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1624918777,
"transactionHash": "0x5a435697cadb8ffab0b4e0e9cb0405f4727be3af14c68305a7fb123f7f27bc2f",
"implementations": [
"arb1:0xb01dB0529B80B73a86ecD75Ae3559844319575E5"
]
},
{
"timestamp": 1629994790,
"transactionHash": "0x6729e8a4103b6074233302df728b2651392cc833939ce1d97611e167241fe667",
"implementations": [
"arb1:0xc4940069140142236D4065b866018f7b2BeC77fD"
]
},
{
"timestamp": 1630345689,
"transactionHash": "0x87a0fbd51446cdc98fe4dd864d892af27f39d36bac20acbbb0441118e5adf1ba",
"implementations": [
"arb1:0x0db4f16c99B0aE9b00fc09bF69b36c7d73c45CBE"
]
},
{
"timestamp": 1659980035,
"transactionHash": "0x1608ac4dc927c1b322d906419400226634fbf6e68e3fec72316d2e0a3b76c141",
"implementations": [
"arb1:0xB642058A41D414D9De3F36D14051623e557f1052"
]
},
{
"timestamp": 1675999253,
"transactionHash": "0xb3f49dbe8f48978f618fe962cac91a0fb55a8ded4820702cec2aa305510c21c5",
"implementations": [
"arb1:0x806421D09cDb253aa9d128a658e60c0B95eFFA01"
]
}
],
"description": "Counterpart to the Bridge on L1. Mints and burns WETH on L2.\n* Roles:\n * **admin**: L2GatewaysProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x6c411aD3E74De3E7Bd422b94A27770f5B86C623B#code"
},
{
"name": "L2ARBGateway",
"isVerified": true,
"address": "arb1:0xCaD7828a19b363A2B44717AFB1786B5196974D8E",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0x5D96786d3Eb13CAd05c9Fd7d0f7bb9560b4E5056"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968435,
"transactionHash": "0xb0fe5622518dc102956d1c0fa83ae58287e4d379dc753ce88df018cbda823cad",
"implementations": [
"arb1:0x5D96786d3Eb13CAd05c9Fd7d0f7bb9560b4E5056"
]
}
],
"description": "ARB sent from L2 to L1 is escrowed in this contract and minted on L1.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xCaD7828a19b363A2B44717AFB1786B5196974D8E#code"
},
{
"name": "L2DAIGateway",
"isVerified": true,
"address": "arb1:0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Counterpart to the L1DaiGateway. Can mint (deposit to L2) and burn (withdraw to L1) DAI tokens on L2.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65#code"
},
{
"name": "L2LPTGateway",
"isVerified": true,
"address": "arb1:0x6D2457a4ad276000A615295f7A80F79E48CcD318",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Counterpart to the L1LPTGateway. Can mint (deposit to L2) and burn (withdraw to L1) LPT on L2.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x6D2457a4ad276000A615295f7A80F79E48CcD318#code"
},
{
"name": "ConstitutionHash",
"isVerified": true,
"address": "arb1:0x1D62fFeB72e4c360CcBbacf7c965153b00260417",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Keeps the current hash of the ArbitrumDAO Constitution. Settable by the L2UpgradeExecutor.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x1D62fFeB72e4c360CcBbacf7c965153b00260417#code"
},
{
"name": "L2SurplusFee",
"isVerified": true,
"address": "arb1:0x32e7AF5A8151934F3787d0cD59EB6EDd0a736b1d",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract receives all SurplusFees: Transaction fee component that covers the cost beyond that covered by the L2 Base Fee during chain congestion. They are withdrawable to a configurable set of recipients.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x32e7AF5A8151934F3787d0cD59EB6EDd0a736b1d#code"
},
{
"name": "StandardArbERC20",
"isVerified": true,
"address": "arb1:0x3f770Ac673856F105b586bb393d122721265aD46",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3f770Ac673856F105b586bb393d122721265aD46#code"
},
{
"name": "BeaconProxyFactory",
"isVerified": true,
"address": "arb1:0x3fE38087A94903A9D946fa1915e1772fe611000f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x3fE38087A94903A9D946fa1915e1772fe611000f#code"
},
{
"name": "UpgradeExecRouteBuilder",
"isVerified": true,
"address": "arb1:0x7481716f05E315Fc4C4a64E56DcD9bc1D6F24C0a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x7481716f05E315Fc4C4a64E56DcD9bc1D6F24C0a#code"
},
{
"name": "L2ArbitrumToken",
"isVerified": true,
"address": "arb1:0x912CE59144191C1204E64559FE8253a0e49E6548",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"arb1:0xdb216562328215E010F819B5aBe947bad4ca961e"
],
"implementations": [
"arb1:0xC4ed0A9Ea70d5bCC69f748547650d32cC219D882"
"arb1:0xd47D14a315394ddf063174f2286Ab4Eb7C507fa0"
]
},
"chain": "arbitrum",
"pastUpgrades": [
{
"timestamp": 1678968508,
"transactionHash": "0x9cdbb4672b549c26d97cac29f9cd73c1951656e0622ba4b9ed0abff2ee58698d",
"implementations": [
"arb1:0xC4ed0A9Ea70d5bCC69f748547650d32cC219D882"
]
},
{
"timestamp": 1774870191,
"transactionHash": "0xe7d8582f70ed8f2aea014c5de13cbbeabe7c128707e25fa01cae9db781846038",
"implementations": [
"arb1:0xd47D14a315394ddf063174f2286Ab4Eb7C507fa0"
]
}
],
"description": "The ARB token contract. Supply can be increased by the owner once per year by a maximum of 2%.\n* Roles:\n * **admin**: L2ProxyAdmin; ultimately L1Timelock_l2alias, L2SecurityCouncilEmergency",
"upgradableBy": [
{
"name": "L2SecurityCouncilEmergency",
"delay": "no"
},
{
"id": "L1Timelock_l2alias",
"name": "L1Timelock_l2alias",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x912CE59144191C1204E64559FE8253a0e49E6548#code"
},
{
"name": "SecurityCouncilMemberSyncAction",
"isVerified": true,
"address": "arb1:0x9BF7b8884Fa381a45f8CB2525905fb36C996297a",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "Contract used by the security council management system to sync SecurityCouncil members between the L1 and the L2.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0x9BF7b8884Fa381a45f8CB2525905fb36C996297a#code"
},
{
"name": "L2BaseFee",
"isVerified": true,
"address": "arb1:0xbF5041Fc07E1c866D15c749156657B8eEd0fb649",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "This contract receives all BaseFees: The transaction fee component that covers the minimum cost of Arbitrum transaction execution. They are withdrawable to a configurable set of recipients.\n",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xbF5041Fc07E1c866D15c749156657B8eEd0fb649#code"
},
{
"name": "L2GatewaysProxyAdmin",
"isVerified": true,
"address": "arb1:0xd570aCE65C43af47101fC6250FD6fC63D1c22a86",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: L2UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xd570aCE65C43af47101fC6250FD6fC63D1c22a86#code"
},
{
"name": "L2ProxyAdmin",
"isVerified": true,
"address": "arb1:0xdb216562328215E010F819B5aBe947bad4ca961e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "* Roles:\n * **owner**: L2UpgradeExecutor",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xdb216562328215E010F819B5aBe947bad4ca961e#code"
},
{
"name": "UpgradeableBeacon",
"isVerified": true,
"address": "arb1:0xE72ba9418b5f2Ce0A6a40501Fe77c6839Aa37333",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "arbitrum",
"description": "",
"discoveryDrivenData": true,
"url": "https://arbiscan.io/address/0xE72ba9418b5f2Ce0A6a40501Fe77c6839Aa37333#code"
}
]
},
"escrows": [
{
"address": "0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a",
"sinceTimestamp": 1661457944,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x554723262467F125Ac9e1cDFa9Ce15cc53822dbD"
],
"implementations": [
"eth:0x93e8f92327bFa8096F5F6ee5f2a49183D3B3b898"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1661457944,
"transactionHash": "0x248787fbf0415ff1da68ba618da0cbdd5dcc7c6029be38709f95ea837211edc5",
"implementations": [
"eth:0xfCEa474C6bD5Dd4eDF5f37EE6Bea5567F0B52A08"
]
},
{
"timestamp": 1661913086,
"transactionHash": "0x07bbd6efdc155699ab2807c0d1509e98e06aa58ce25f208f09c03899f3a128cd",
"implementations": [
"eth:0x1066CEcC8880948FE55e427E94F1FF221d626591"
]
},
{
"timestamp": 1739368811,
"transactionHash": "0xe9788a104f8443b5900e54f8c887f0522d121487fc343a1ff90e1e6ed987967e",
"implementations": [
"eth:0x93e8f92327bFa8096F5F6ee5f2a49183D3B3b898"
]
}
],
"description": "Contract managing Inboxes and Outboxes. It escrows ETH sent to L2.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xcEe284F754E854890e311e3280b767F80797180d",
"sinceTimestamp": 1623867835,
"tokens": "*",
"excludedTokens": [
"USDT"
],
"premintedTokens": [
"SQD"
],
"contract": {
"isVerified": true,
"address": "eth:0xcEe284F754E854890e311e3280b767F80797180d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa"
],
"implementations": [
"eth:0xC8D26aB9e132C79140b3376a0Ac7932E4680Aa45"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1624716075,
"transactionHash": "0xd0f181f40b470dbd3d2c44474725ea0babcc54c6a035b33e090229e133b40456",
"implementations": [
"eth:0x20c9d24EDcF5CC943BE6eC55CbE786AbF05354c0"
]
},
{
"timestamp": 1625173105,
"transactionHash": "0x92f6e1e0af1cfede9c7253d4fe72400ea1215985686cb0a25da2a1d7c8d614b0",
"implementations": [
"eth:0x304c13E8d2353f57076f2f8B8Dd4e29e347841EB"
]
},
{
"timestamp": 1627684759,
"transactionHash": "0xff67b0e76d27e79cc9e251a34c1511df39bb5769c4e30956d945f8bafc08f40c",
"implementations": [
"eth:0xc5199b28d5267F80A7FA7a3313357D50Cf4Dba6C"
]
},
{
"timestamp": 1629993991,
"transactionHash": "0xf79ceb2e28ffd89853dc992cfba0ce69ab77c711b31b251608112bf703cf7a98",
"implementations": [
"eth:0x79f01C581bfd44aF8B0721029Bf594B30592675F"
]
},
{
"timestamp": 1630345297,
"transactionHash": "0x4134f1974f5b4c4f95cb2e8a9f7ce56a055a672911c09a7918497f8f14f117da",
"implementations": [
"eth:0x98659BDffa4fEF82cD37771CDBFF3ddDa21EE8e9"
]
},
{
"timestamp": 1634222162,
"transactionHash": "0x14a48840cec5b16e7e909ddbe69eec7edaeafde958c866a97a048b2daf9f9c1f",
"implementations": [
"eth:0x73bd0a2476b40A6aE04497D36efc85affeD3516b"
]
},
{
"timestamp": 1639177425,
"transactionHash": "0xec47d4c470dffaa2f23005fb51acbd27a42f04067edf9dffb45d456da947e321",
"implementations": [
"eth:0xe8B0e562269EF963AA7b4c92645ff06E72CA02E6"
]
},
{
"timestamp": 1659978124,
"transactionHash": "0xf2ba2551709d23686f52c3a3ecc65ae8347f1bab1877265c57ba260e8222bf33",
"implementations": [
"eth:0xC8D26aB9e132C79140b3376a0Ac7932E4680Aa45"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens that require minting custom tokens on L2.",
"upgradableBy": [
{
"name": "SecurityCouncil",
"delay": "no"
},
{
"name": "L1Timelock",
"delay": "17d 8h"
}
],
"url": "https://etherscan.io/address/0xcEe284F754E854890e311e3280b767F80797180d#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xa3A7B6F88361F48403514059F1F16C8E78d60EeC",
"sinceTimestamp": 1623784100,
"tokens": "*",
"excludedTokens": [
"SolvBTC",
"SolvBTC.BBN",
"PEPE",
"rsETH"
],
"premintedTokens": [
"LOGX",
"AIUS",
"YBR",
"FFM"
],
"contract": {
"isVerified": true,
"address": "eth:0xa3A7B6F88361F48403514059F1F16C8E78d60EeC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9aD46fac0Cf7f790E5be05A0F15223935A0c0aDa"
],
"implementations": [
"eth:0xb4299A1F5f26fF6a98B7BA35572290C359fde900"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1624716065,
"transactionHash": "0x289c1529f29f00f7b67f99074061d971a2d33ffc15a6fe5d7fa8ed533a6d8698",
"implementations": [
"eth:0x553524e576a0E92beC7CC24843C04bF51493A5db"
]
},
{
"timestamp": 1627684791,
"transactionHash": "0xa3c53b23f347613b517160eb732174e54f3b28d8e63646d14b8e39394c449ae2",
"implementations": [
"eth:0x41AC92014C66C38bBBDEF8cCF5A060CCa5634fd5"
]
},
{
"timestamp": 1629993965,
"transactionHash": "0xc93128ad2d69bac5c0c5ebe77abe4ead2cdb0ece637ff8db193e7c894933d8f7",
"implementations": [
"eth:0xE317c204Fa7C3150af24aa20264b983fc82b7BBd"
]
},
{
"timestamp": 1630345284,
"transactionHash": "0xbe4a3a9dd5b909eb699c07aec0a5d190a8433b3c65544b85521cab827f80d481",
"implementations": [
"eth:0x0aCb04878B3675EF40b2e9392622CE3C1E9CC99E"
]
},
{
"timestamp": 1634222162,
"transactionHash": "0x14a48840cec5b16e7e909ddbe69eec7edaeafde958c866a97a048b2daf9f9c1f",
"implementations": [
"eth:0xd710c475216999184DB1737aAd197fC855255AD7"
]
},
{
"timestamp": 1639177425,
"transactionHash": "0xec47d4c470dffaa2f23005fb51acbd27a42f04067edf9dffb45d456da947e321",
"implementations": [
"eth:0xa83520Ae8d05bDBd20770c3d7268F66AcAcb6d43"
]
},
{
"timestamp": 1659978124,
"transactionHash": "0xf2ba2551709d23686f52c3a3ecc65ae8347f1bab1877265c57ba260e8222bf33",
"implementations": [
"eth:0xb4299A1F5f26fF6a98B7BA35572290C359fde900"
]
}
],
"description": "Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, \"wrapped\" token will be minted.",
"upgradableBy": [
{
"name": "SecurityCouncil",
"delay": "no"
},
{
"name": "L1Timelock",
"delay": "17d 8h"
}
],
"url": "https://etherscan.io/address/0xa3A7B6F88361F48403514059F1F16C8E78d60EeC#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xA10c7CE4b876998858b1a9E12b10092229539400",
"sinceTimestamp": 1632133470,
"tokens": [
"DAI",
"USDS",
"sUSDS"
],
"contract": {
"isVerified": true,
"address": "eth:0xA10c7CE4b876998858b1a9E12b10092229539400",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Maker/Sky-controlled vault for DAI, USDS and sUSDS bridged with canonical messaging.",
"url": "https://etherscan.io/address/0xA10c7CE4b876998858b1a9E12b10092229539400#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x0F25c1DC2a9922304f2eac71DCa9B07E310e8E5a",
"sinceTimestamp": 1659608791,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x0F25c1DC2a9922304f2eac71DCa9B07E310e8E5a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c"
],
"implementations": [
"eth:0xc4E3ff0b5B106f88Fc64c43031BE8b076ee9F21C"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1659608791,
"transactionHash": "0x912fc5992f5a24c2ffe5e230ac51fcc4724cb3e4a23535b04eec34f99f77e3a8",
"implementations": [
"eth:0xc4E3ff0b5B106f88Fc64c43031BE8b076ee9F21C"
]
}
],
"description": "wstETH Vault for custom wstETH Gateway. Fully controlled by Lido governance.",
"url": "https://etherscan.io/address/0x0F25c1DC2a9922304f2eac71DCa9B07E310e8E5a#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x6A23F4940BD5BA117Da261f98aae51A8BFfa210A",
"sinceTimestamp": 1644777090,
"tokens": [
"LPT"
],
"contract": {
"isVerified": true,
"address": "eth:0x6A23F4940BD5BA117Da261f98aae51A8BFfa210A",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "LPT Vault for custom Livepeer Token Gateway.",
"url": "https://etherscan.io/address/0x6A23F4940BD5BA117Da261f98aae51A8BFfa210A#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x011B6E24FfB0B5f5fCc564cf4183C5BBBc96D515",
"chain": "ethereum",
"sinceTimestamp": 1622243344,
"tokens": [
"ETH"
],
"isHistorical": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "ArbOS wasmModuleRoot v51",
"description": "A commitment to the exact WASM binary version used for Orbit stack optimistic dispute games.",
"verificationStatus": "successful",
"programUrl": "https://github.com/OffchainLabs/nitro/tree/consensus-v51/arbos",
"verificationSteps": "\nEven though the program is compiled in docker for reproducibility reasons, it gives the correct results only on linux OS. Steps below were done on Ubuntu 22.04 OS. The steps below consume ~35 GiB disk space.\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/).\n2. Checkout the correct branch in [nitro](https://github.com/OffchainLabs/nitro) repo: `git checkout consensus-v51` . Commit hash should be `03949e76071f048c850d721c7a378a2e4b3fbd09`.\n3. Update git submodules `git submodule update --init --recursive --force`.\n4. Generate wasm module root in docker: `docker buildx build --target nitro-node-dev -t nitro-node-dev .`.\n5. Export the value from the docker: `docker run --rm --entrypoint cat nitro-node-dev /home/user/target/machines/latest/module-root.txt`.\n ",
"hash": "0x8a7513bf7bb3e3db04b0d982d0e973bcf57bf8b88aef7c6d03dba3a81a56a499"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is a 17d 8h delay on code upgrades unless upgrade is initiated by the Security Council in which case there is no delay."
}
]
}
+1 -1
{
"baseTimestamp": 1774387655,
"baseTimestamp": 1774947622,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+75 -33
+9 -2
[
{
"address": "0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e",
"sinceTimestamp": 1710967859,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0xD8056243180C4b56a7d2ccd5df9c2696E1261826"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
}
],
"description": "Main entry point for users depositing ETH.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00",
"sinceTimestamp": 1628793901,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x78972E88Ab8BBB517a36cAea23b931BAB58AD3c6"
"eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A"
]
},
"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/0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
]
+4 -4
{
"architectureImage": "opstack-rollup-superchain-opfp",
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.",
"risks": [],
"references": [
{
"title": "Derivation: Batch submission - OP Mainnet specs",
"url": "https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/derivation.md#batch-submission"
},
{
"title": "BatchInbox - address",
"url": "https://etherscan.io/address/0xfFF0000000000000000000000000000000000288#code"
},
{
"title": "OptimismPortal2.sol - source code, depositTransaction function",
"url": "https://etherscan.io/address/0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd#code"
"url": "https://etherscan.io/address/0xB443Da3e07052204A02d630a8933dAc05a0d6fB4#code"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular exits",
"description": "The user initiates the withdrawal by submitting a regular transaction on this chain. When a state root containing such transaction is settled, the funds become available for withdrawal on L1 after 3d 12h. Withdrawal inclusion can be proven before state root settlement, but a 7d period has to pass before it becomes actionable. The process of state root settlement takes a challenge period of at least 3d 12h to complete. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.",
"risks": [],
"references": [
{
"title": "OptimismPortal2.sol - Etherscan source code, proveWithdrawalTransaction function",
"url": "https://etherscan.io/address/0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd#code"
"url": "https://etherscan.io/address/0xB443Da3e07052204A02d630a8933dAc05a0d6fB4#code"
},
{
"title": "OptimismPortal2.sol - Etherscan source code, finalizeWithdrawalTransaction function",
"url": "https://etherscan.io/address/0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd#code"
"url": "https://etherscan.io/address/0xB443Da3e07052204A02d630a8933dAc05a0d6fB4#code"
}
]
},
{
"name": "Forced messaging",
"description": "If the user experiences censorship from the operator with regular L2->L1 messaging they can submit their messages directly on L1. The system is then obliged to service this request or halt all messages, including forced withdrawals from L1 and regular messages initiated on L2. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular message.",
"risks": [],
"references": [
{
"title": "Forced withdrawal from an OP Stack blockchain",
"url": "https://docs.optimism.io/stack/transactions/forced-transaction"
}
]
}
],
"forceTransactions": {
"name": "Users can force any transaction",
"description": "Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly.",
"risks": [],
"references": [
{
"title": "Sequencing Window - OP Mainnet Specs",
"url": "https://github.com/ethereum-optimism/optimism/blob/51eeb76efeb32b3df3e978f311188aa29f5e3e94/specs/glossary.md#sequencing-window"
},
{
"title": "OptimismPortal2.sol - source code, depositTransaction function",
"url": "https://etherscan.io/address/0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd#code"
"url": "https://etherscan.io/address/0xB443Da3e07052204A02d630a8933dAc05a0d6fB4#code"
}
]
},
"operator": {
"name": "The system has a centralized operator",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": []
},
"otherConsiderations": [
{
"name": "EVM compatible smart contracts are supported",
"description": "OP stack chains are pursuing the EVM Equivalence model. No changes to smart contracts are required regardless of the language they are written in, i.e. anything deployed on L1 can be deployed on L2.",
"risks": [],
"references": [
{
"title": "Introducing EVM Equivalence",
"url": "https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306"
}
]
}
],
"stateValidation": {
"description": "Updates to the system state can be proposed and challenged by permissioned operators only. If a state root passes the challenge period, it is optimistically considered correct and made actionable for withdrawals.",
"categories": [
{
"title": "State root proposals",
"description": "Proposers submit state roots as children of the latest confirmed state root (called anchor state), by calling the `create` function in the DisputeGameFactory. A state root can have multiple conflicting children. Each proposal requires a stake, currently set to 0.0 ETH, that can be slashed if the proposal is proven incorrect via a fraud proof. Stakes can be withdrawn only after the proposal has been confirmed. A state root gets confirmed if the challenge period has passed and it is not countered.",
"references": [
{
"title": "OP stack specification: Fault Dispute Game",
"url": "https://specs.optimism.io/fault-proof/stage-one/fault-dispute-game.html#fault-dispute-game"
}
]
},
{
"title": "Challenges",
"description": "Challenges are opened to disprove invalid state roots using bisection games. Each bisection move requires a stake that increases expontentially with the depth of the bisection, with a factor of 1.09493. The maximum depth is 73, and reaching it therefore requires a cumulative stake of 0.00 ETH from depth 0. Actors can participate in any challenge by calling the `defend` or `attack` functions, depending whether they agree or disagree with the latest claim and want to move the bisection game forward. Actors that disagree with the top-level claim are called challengers, and actors that agree are called defenders. Each actor might be involved in multiple (sub-)challenges at the same time, meaning that the protocol operates with [full concurrency](https://medium.com/l2beat/fraud-proof-wars-b0cb4d0f452a). Challengers and defenders alternate in the bisection game, and they pass each other a clock that starts with 3d 12h. If a clock expires, the claim is considered defeated if it was countered, or it gets confirmed if uncountered. Since honest parties can inherit clocks from malicious parties that play both as challengers and defenders (see [freeloader claims](https://specs.optimism.io/fault-proof/stage-one/fault-dispute-game.html#freeloader-claims)), if a clock gets inherited with less than 3h, it generally gets extended by 3h with the exception of 6h right before depth 30, and 1d right before the last depth. The maximum clock extension that a top level claim can get is therefore 10d. Since unconfirmed state roots are independent of one another, users can decide to exit with a subsequent confirmed state root if the previous one is delayed. Winners get the entire losers' stake, meaning that sybils can potentially play against each other at no cost. The final instruction found via the bisection game is then executed onchain in the MIPS one step prover contract who determines the winner. The protocol does not enforce valid bisections, meaning that actors can propose correct initial claims and then provide incorrect midpoints. The protocol can be subject to resource exhaustion attacks ([Spearbit 5.1.3](https://github.com/ethereum-optimism/optimism/blob/develop/docs/security-reviews/2024_08_Fault-Proofs-No-MIPS_Spearbit.pdf)).",
"references": [
{
"title": "Fraud Proof Wars: OPFP",
"url": "https://medium.com/l2beat/fraud-proof-wars-b0cb4d0f452a"
}
]
}
]
}
}
+61 -26
{
"addresses": {
"ethereum": [
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x158Fd5715F16Ac1F2Dc959A299B383aAaf9B59EB",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x760C48C62A85045A6B69f07F4a9f22868659CbCc"
"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303503,
"transactionHash": "0x41b524b2ed6de3f6ec58d8e6508f9f6055ca3cb28a80b98af3213eb285a9fdce",
"implementations": [
"eth:0xfaE274B77BA59f001196689f93E9e73693866f4a"
]
},
{
"timestamp": 1734371939,
"transactionHash": "0x2dd4983dfade963b3da262a0c56b5085ffc5ee2f3046292326568738250b5a42",
"implementations": [
"eth:0xb52F8f5D1285e3bc13F9C53D27C6F7336a3B50A9"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xAB9d6cB7A427c0765163A7f45BB91cAfe5f2D375"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x760C48C62A85045A6B69f07F4a9f22868659CbCc"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0x340f923E5c7cbB2171146f64169EC9d5a9FfE647"
]
}
],
"description": "Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig\n * **batcherHash**: EOA 1\n * **owner**: EOA 2",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x158Fd5715F16Ac1F2Dc959A299B383aAaf9B59EB#code"
},
{
"name": "OptimismPortal2",
"isVerified": true,
"address": "eth:0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0xD8056243180C4b56a7d2ccd5df9c2696E1261826"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
}
],
"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* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e#code"
},
{
"name": "DisputeGameFactory",
"isVerified": true,
"address": "eth:0xF45a5f1e36fCeA3Cc830A98c6c3C5ceA7d6af852",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750459247,
"transactionHash": "0x819e7ecb38b78c234172149bd1ba343a8fb2d7434f3f14520624e7e7abcbcfbb",
"implementations": [
"eth:0xc641A33cab81C559F2bd4b21EA34C290E2440C2B"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x4bbA758F006Ef09402eF31724203F316ab74e4a0"
]
}
],
"description": "The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF45a5f1e36fCeA3Cc830A98c6c3C5ceA7d6af852#code"
},
{
"name": "SuperchainConfig",
"isVerified": true,
"address": "eth:0x996ffD627901f10C80A7d4B72A12316D2e77c076",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0xe4e0f760409EB1661db76a4365c0803C3630270f"
]
},
{
"timestamp": 1713549935,
"transactionHash": "0x4279b4a359b1d5abd672f9e7ee1923b9de372cce4077c2e673f3967b092e64cc",
"implementations": [
"eth:0x862E8e466ac49c1B076322AabCd4156326C47890"
]
},
{
"timestamp": 1713549935,
"transactionHash": "0x4279b4a359b1d5abd672f9e7ee1923b9de372cce4077c2e673f3967b092e64cc",
"implementations": [
"eth:0xe4e0f760409EB1661db76a4365c0803C3630270f"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x4da82a327773965b8d4D85Fa3dB8249b387458E7"
]
}
],
"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* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig\n * **guardian**: Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x996ffD627901f10C80A7d4B72A12316D2e77c076#code"
},
{
"name": "L1CrossDomainMessenger",
"isVerified": true,
"address": "eth:0x6D4528d192dB72E282265D6092F4B872f9Dff69e",
"upgradeability": {
"proxyType": "resolved delegate proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x3eA6084748ED1b2A9B5D4426181F1ad8C93F6231"
"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1628792646,
"transactionHash": "0xabf5ff59333cfb575404834e68633fd81c77ff85d6d6f9983e29140ebdf805f4",
"implementations": [
"eth:0x25109139f8C4F9f7b4E4d5452A067feaE3a537F3"
]
},
{
"timestamp": 1633462522,
"transactionHash": "0x9ba695c4025241f04617877232a4cf86d9ccc1783a693cfe661784c7f89c8050",
"implementations": [
"eth:0xae6b041f0550EDeF61a70F76f89c77B2b1Ef38Fd"
]
},
{
"timestamp": 1635387333,
"transactionHash": "0xa7c1696ee1da04699ec29609eb9c645e327a590ad21ff4a8cf16a9671719bec9",
"implementations": [
"eth:0x12Acf6E3ca96A60fBa0BBFd14D2Fe0EB6ae47820"
]
},
{
"timestamp": 1713303503,
"transactionHash": "0x41b524b2ed6de3f6ec58d8e6508f9f6055ca3cb28a80b98af3213eb285a9fdce",
"implementations": [
"eth:0x0000000000000000000000000000000000000000"
]
},
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0x3b48597212f2622511585914CC4D4152c9B1B077"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x3eA6084748ED1b2A9B5D4426181F1ad8C93F6231"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0x5D5a095665886119693F0B41d8DFeE78da033e8B"
]
}
],
"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 Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6D4528d192dB72E282265D6092F4B872f9Dff69e#code"
},
{
"name": "L1ERC721Bridge",
"isVerified": true,
"address": "eth:0xA6Ad22bb0E73DEF40a24E510cFbc93807d8bf87e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x276d3730f219f7ec22274f7263180b8452B46d47"
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0x99948157F4702B3EE9De4290C3dCDF2622Db9318"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xAE2AF01232a6c4a4d3012C5eC5b1b35059caF10d"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x276d3730f219f7ec22274f7263180b8452B46d47"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0x7aE1d3BD877a4C5CA257404ce26BE93A02C98013"
]
}
],
"description": "Used to bridge ERC-721 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA6Ad22bb0E73DEF40a24E510cFbc93807d8bf87e#code"
},
{
"name": "L1StandardBridge",
"isVerified": true,
"address": "eth:0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x78972E88Ab8BBB517a36cAea23b931BAB58AD3c6"
"eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A"
]
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "The main entry point to deposit ERC20 tokens from host chain to this chain.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00#code"
},
{
"name": "PreimageOracle",
"isVerified": true,
"address": "eth:0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The PreimageOracle contract is used to load the required data from L1 for a dispute game.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1fb8cdFc6831fc866Ed9C51aF8817Da5c287aDD3#code"
},
{
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0x43Acf69Ab2d79e0608ec3593343e7f3A88F034f2",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x43Acf69Ab2d79e0608ec3593343e7f3A88F034f2#code"
},
{
"name": "OptimismMintableERC20Factory",
"isVerified": true,
"address": "eth:0x4d898F66327Fa050131A17ed17a39EBeCC81f0c3",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0xd080A33E651780cD6f52F16020E1FFA04F0f15B2"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xE01efbeb1089D1d1dB9c6c8b135C934C0734c846"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x5493f4677A186f64805fe7317D6993ba4863988F"
]
}
],
"description": "A helper contract that generates OptimismMintableERC20 contracts on the network it's deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain's representation of a token on the host chain, or vice-versa.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4d898F66327Fa050131A17ed17a39EBeCC81f0c3#code"
},
{
"name": "DelayedWETH",
"isVerified": true,
"address": "eth:0x4e27966e7D3727bE584d32081fc341321B047bF6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x5e40B9231B86984b5150507046e354dbFbeD3d9e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1750459271,
"transactionHash": "0xbbacf0dbcc95a2ca3f10da3dcaf82083e9ee1523112cb4523b1c167a6aa591bc",
"implementations": [
"eth:0x71e966Ae981d1ce531a7b6d23DC0f27B38409087"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x5e40B9231B86984b5150507046e354dbFbeD3d9e"
]
}
],
"description": "Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig\n * **owner**: Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4e27966e7D3727bE584d32081fc341321B047bF6#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: Boba Multisig",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc#code"
},
{
"name": "MIPS",
"name": "PermissionedDisputeGame",
"isVerified": true,
"address": "eth:0xaA59A0777648BC75cd10364083e878c1cCd6112a",
"address": "eth:0x9bF49c12BAf9FDca154c3C917591f79c7DA5a1F4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"description": "Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xaA59A0777648BC75cd10364083e878c1cCd6112a#code"
"url": "https://etherscan.io/address/0x9bF49c12BAf9FDca154c3C917591f79c7DA5a1F4#code"
},
{
"name": "AnchorStateRegistry",
"isVerified": true,
"address": "eth:0xec22De453c5819F96E000Bf3aD5262019ca2151b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x7b465370BB7A333f99edd19599EB7Fb1c2D3F8D2"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x7b465370BB7A333f99edd19599EB7Fb1c2D3F8D2"
]
}
],
"description": "Contains the latest confirmed state root that can be used as a starting point in a dispute game.\n* Roles:\n * **admin**: ProxyAdmin; ultimately Boba Multisig",
"upgradableBy": [
{
"name": "Boba Multisig",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xec22De453c5819F96E000Bf3aD5262019ca2151b#code"
},
{
"name": "MIPS",
"isVerified": true,
"address": "eth:0xF027F4A985560fb13324e943edf55ad6F1d15Dc1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF027F4A985560fb13324e943edf55ad6F1d15Dc1#code"
}
]
},
"escrows": [
{
"address": "0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e",
"sinceTimestamp": 1710967859,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713303527,
"transactionHash": "0x1361f48fea8fbc08ffbc0877f540635a35dffe6560829923443c70702232197d",
"implementations": [
"eth:0xD8056243180C4b56a7d2ccd5df9c2696E1261826"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xd81f43eDBCAcb4c29a9bA38a13Ee5d79278270cC"
]
},
{
"timestamp": 1750959851,
"transactionHash": "0x16c5c38924fec5dec9d29456865565cc83ea72f1551a7f5c4fdb5b82fe744d0a",
"implementations": [
"eth:0xe2F826324b2faf99E513D16D266c3F80aE87832B"
]
},
{
"timestamp": 1773686183,
"transactionHash": "0x5b60a86783e3b49210eb4badbfd7032b33cf0ca6e147a86422c3159742b945d0",
"implementations": [
"eth:0x2D7e764a0D9919e16983a46595CfA81fc34fa7Cd"
]
},
{
"timestamp": 1774677215,
"transactionHash": "0x4de9fd6572f134dd8b9dd0a9754a288e20c590b65be6434bdcd78af60b9fd05f",
"implementations": [
"eth:0xB443Da3e07052204A02d630a8933dAc05a0d6fB4"
]
}
],
"description": "Main entry point for users depositing ETH.",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x7B02D13904D8e6E0f0Efaf756aB14Cb0FF21eE7e#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00",
"sinceTimestamp": 1628793901,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x6e598cec2701FfAA3c06175dc3Af0317a749a0Dc"
],
"implementations": [
"eth:0x78972E88Ab8BBB517a36cAea23b931BAB58AD3c6"
"eth:0x0b09ba359A106C9ea3b181CBc5F394570c7d2a7A"
]
},
"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/0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "OP absolute prestate Boba",
"description": "A commitment to the initial state of the OP stack fault proof program.",
"verificationStatus": "unsuccessful",
"hash": "0x03ddcb9294fef6dd477b4e911fd777fda0832fdd10aa594ac941540ea62a2aa0"
}
],
"risks": [
{
"category": "Funds can be stolen if",
"text": "a contract receives a malicious code upgrade. There is no delay on code upgrades.",
"isCritical": true
}
],
"zkVerifiers": []
}
+1 -1
{
"baseTimestamp": 1774433027,
"baseTimestamp": 1774891601,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}
+1 -1
+1 -1
{
"architectureImage": "orbit-optimium",
"dataAvailability": [
{
"name": "Data is not stored on chain",
"description": "Users transactions are not published onchain, but rather sent to external trusted parties, also known as committee members (DAC). Members of the DAC collectively produce a Data Availability Certificate (comprising BLS signatures from a quorum) guaranteeing that the data behind the new transaction batch will be available until the expiry period elapses (currently a minimum of two weeks). This signature is not verified by L1, however external Validators will skip the batch if BLS signature is not valid resulting. This will result in a fraud proof challenge if this batch is included in a consecutive state update. It is assumed that at least one honest DAC member that signed the batch will reveal tx data to the Validators if Sequencer decides to act maliciously and withhold the data. If the Sequencer cannot gather enough signatures from the DAC, it will \"fall back to rollup\" mode and by posting the full data directly to the L1 chain. The current DAC threshold is 5 out of 6.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the external data becomes unavailable.",
"isCritical": true
},
{
"category": "Users can be censored if",
"text": "the committee restricts their access to the external data."
}
],
"references": [
{
"title": "Inside AnyTrust - Arbitrum documentation",
"url": "https://developer.offchainlabs.com/inside-anytrust"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. The process of block finalization usually takes several days to complete.",
"risks": [],
"references": [
{
"title": "Transaction lifecycle - Arbitrum documentation",
"url": "https://developer.offchainlabs.com/tx-lifecycle"
},
{
"title": "L2 to L1 Messages - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/deep-dives/l2-to-l1-messaging"
},
{
"title": "Mainnet for everyone - Arbitrum Blog",
"url": "https://offchain.medium.com/mainnet-for-everyone-27ce0f67c85e"
}
]
},
{
"name": "Autonomous exit",
"description": "Users can (eventually) exit the system by pushing the transaction on L1 and providing the corresponding state root. The only way to prevent such withdrawal is via an upgrade.",
"risks": [],
"references": []
}
],
"forceTransactions": {
"name": "Users can force any transaction",
"description": "Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly. After a delay of 1d in which a Sequencer has failed to include a transaction that was directly posted to the smart contract, it can be forcefully included by anyone on the host chain, which finalizes its ordering.",
"risks": [],
"references": [
{
"title": "SequencerInbox.sol - source code, forceInclusion function",
"url": "https://etherscan.io/address/0x98a58ADAb0f8A66A1BF4544d804bc0475dff32c7#code"
},
{
"title": "Sequencer Isn't Doing Its Job - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/sequencer#unhappyuncommon-case-sequencer-isnt-doing-its-job"
}
]
},
"operator": {
"name": "The system has a centralized sequencer",
"description": "While forcing transaction is open to anyone the system employs a privileged sequencer that has priority for submitting transaction batches and ordering transactions.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": [
{
"title": "Sequencer - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/inside-arbitrum-nitro#the-sequencer"
}
]
},
"otherConsiderations": [
{
"name": "EVM compatible and Stylus smart contracts are supported",
"description": "Arbitrum One supports smart contracts written in Solidity and other programming languages (Rust, C++) that compile to WASM. Such smart contracts are executed by nodes using either a geth fork or [a fork of wasmer](https://github.com/OffchainLabs/wasmer) inside the Nitro node, and can be proven with the onchain WASM VM.",
"risks": [],
"references": [
{
"title": "Inside Arbitrum Nitro",
"url": "https://developer.offchainlabs.com/inside-arbitrum-nitro/"
},
{
"title": "A gentle introduction: Stylus",
"url": "https://docs.arbitrum.io/stylus/stylus-gentle-introduction"
}
]
},
{
"name": "Arbitrum DAO is in charge of upgrades",
"description": "Arbitrum DAO allows $ARB token holders to propose and vote on changes to the organization and the technologies it governs. The governance smart contracts are implemented on Arbitrum One rollup chain. The DAO can upgrade the Arbitrum One contracts on L2 with 2d delay and - using L2 --> L1 Governance Relay, update contracts on L1 with additional 3d delay + 6d 8h delay for all L2 --> L1 messages (in total a delay of 11d 8h), with an additional 8d if a challenge has been present in the state root that relays the message. The Security Council can upgrade the contracts without any delay. It can also cancel any upgrades initiated by the DAO.",
"risks": [],
"references": [
{
"title": "Arbitrum DAO",
"url": "https://docs.arbitrum.foundation/concepts/arbitrum-dao"
}
]
}
],
"sequencing": {
"name": "Buffered forced transactions",
"description": "To force transactions from the host chain, users must first enqueue \"delayed\" messages in the \"delayed\" inbox of the Bridge contract. Only authorized Inboxes are allowed to enqueue delayed messages, and the so-called Inbox contract is the one used as the entry point by calling the `sendMessage` or `sendMessageFromOrigin` functions. If the centralized sequencer doesn't process the request within some time bound, users can call the `forceInclusion` function on the SequencerInbox contract to include the message in the canonical chain. The time bound is defined to be the minimum between 1d and the time left in the delay buffer. The delay buffer gets replenished over time and gets consumed every time the sequencer doesn't timely process a message. Only messages processed with a delay greater than 1h consume the buffer. The buffer is capped at 2d. The replenish rate is currently set at 1m every 20m. Even if the buffer is fully consumed, messages are still allowed to be delayed up to 1h.",
"references": [
{
"title": "Sequencer and censorship resistance - Arbitrum documentation",
"url": "https://docs.arbitrum.io/how-arbitrum-works/sequencer"
}
],
"risks": []
},
"stateValidation": {
"description": "Updates to the system state can be proposed and challenged by a set of whitelisted validators. If a state root passes the challenge period, it is optimistically considered correct and made actionable for withdrawals.",
"categories": [
{
"title": "State root proposals",
"description": "Validators propose state roots as children of a previous state root. A state root can have multiple conflicting children. State roots are referred to as \"assertions\" within the contracts. Each chain of assertions only requires one stake, and validators staked on assertions with a child are considered inactive and can either move their stake to a new node or withdraw it. The function used to propose a new assertion is the `stakeOnNewAssertion` function. The stake is currently set to 1.0 ETH, and it can be slashed if the proposal is proven incorrect via a fraud proof. The protocol allows such funds to be trustlessly pooled together if necessary. New nodes cannot be created faster than the minimum assertion period, currently set to 15m. An assertion without \"rivals\" can be confirmed after the challenge period has passed, currently set to 6d 8h. If a rival is present, then it is checked that the assertion is the winner in the challenge protocol.",
"risks": [],
"references": [
{
"title": "BoLD paper",
"url": "https://arxiv.org/pdf/2404.10491"
}
]
},
{
"title": "Challenges",
"description": "A challenge can be started between two siblings, i.e. two different state roots that share the same parent, by calling the `createLayerZeroEdge` function in the `ChallengeManager` contract. Edges represent assertions, or bisected assertions, within the challenge protocol. Challenges are played via a bisection game, where asserters and challengers play together to find the first instruction of disagreement. Such instruction is then executed onchain in the WASM OneStepProver contract to determine the winner. An edge can only be bisected when rivaled. The bisection process requires no new stake as their validity is checked against a parent \"history root\" that contains all intermediate states. An edge can also be confirmed if itself or its descendants spend enough time being unrivaled. Such time is set to 6d 8h. If both actors play as slow as possible, the maximum time to confirm an edge is double such value, i.e. 12d 17h. Due to the complexities of maintaining the history root, the challenge protocol is divided into 3 levels, where the lowest level represents assertions over blocks, the highest level represents assertions over single WASM instructions, and intermediate levels represent assertions over chunks of WASM instructions. When moving between levels, a new stake is required. Level 0 (block level) requires a stake of 0.0 ETH, level 1 requires a stake of 1.0 ETH, level 2 requires a stake of 1.0 ETH. The ratio between such stakes can be exploited to perform resource exhaustion attacks.",
"risks": [
{
"category": "Funds can be stolen if",
"text": "an attacker successfully performs a resource exhaustion attack."
}
],
"references": [
{
"title": "Fraud Proof Wars: Arbitrum BoLD",
"url": "https://medium.com/l2beat/fraud-proof-wars-b0cb4d0f452a"
}
]
}
]
},
"stateValidationImage": "bold",
"upgradesAndGovernance": "\nAll critical system smart contracts are upgradeable (can be arbitrarily changed). This permission is governed by the Arbitrum Decentralized Autonomous Organization (DAO)\nand their elected Security Council. The Arbitrum DAO controls Arbitrum One and Arbitrum Nova through upgrades and modifications to their smart contracts on Layer 1 Ethereum and the Layer 2s.\nWhile the DAO governs through token-weighted governance in their associated ARB token, the Security Council can directly act through\nmultisigs on all three chains. Although they are technically separate and connect to different target permissions,\ntheir member- and threshold configuration is kept in sync by a manager contract on Arbitrum One sending crosschain transactions.\n\nRegular upgrades, Admin- and Owner actions originate from either the Arbitrum DAO or the non-emergency (Proposer-) Security Council on Arbitrum One\nand pass through multiple delays and timelocks before being executed at their destination. Contrarily, the three Emergency Security Council multisigs\n(one on each chain: Arbitrum One, Ethereum, Arbitrum Nova) can skip delays and directly access all admin- and upgrade functions of all smart contracts.\nThese two general paths have the same destination: the respective UpgradeExecutor smart contract.\n\nRegular upgrades are scheduled in the L2 Timelock. The proposer Security Council can do this directly and the Arbitrum DAO (ARB token holders and delegates) must meet a\nCoreGovernor-enforced 4.5% threshold of the votable tokens. The L2 Timelock queues the transaction for a 8d delay and then sends it to the Outbox contract on Ethereum. This incurs another delay (the challenge period) of 6d 8h, which is extended by an additional 2d if the top-level assertion has been challenged.\nWhen that has passed, the L1 Timelock delays for additional 3d. Both timelocks serve as delays during which the transparent transaction contents can be audited,\nand, in the case of the final L1 timelock, cancelled by the Emergency Security Council. Finally, the transaction can be executed, calling Admin- or Owner restricted functions of the respective destination smart contracts\nthrough the UpgradeExecutor on Ethereum. If the predefined transaction destination is Arbitrum One or -Nova, this last call is executed on L2 through the canonical bridge and the aliased address of the L1 Timelock.\n\nOperator roles like the Sequencers and Validators are managed using the same paths.\nSequencer changes can be delegated to a Batch Poster Manager role.\n\nTransactions targeting the Arbitrum DAO Treasury can be scheduled in the 3d\nTreasury Timelock by meeting a TreasuryGovernor-enforced 3% threshold of votable ARB tokens. The Security Council cannot regularly cancel\nthese transactions or schedule different ones but can overwrite them anyway by having upgrade permissions for all the underlying smart contracts."
"upgradesAndGovernance": "\nAll critical system smart contracts are upgradeable (can be arbitrarily changed). This permission is governed by the Arbitrum Decentralized Autonomous Organization (DAO)\nand their elected Security Council. The Arbitrum DAO controls Arbitrum One and Arbitrum Nova through upgrades and modifications to their smart contracts on Layer 1 Ethereum and the Layer 2s.\nWhile the DAO governs through token-weighted governance in their associated ARB token, the Security Council can directly act through\nmultisigs on all three chains. Although they are technically separate and connect to different target permissions,\ntheir member- and threshold configuration is kept in sync by a manager contract on Arbitrum One sending crosschain transactions.\n\nRegular upgrades, Admin- and Owner actions originate from either the Arbitrum DAO or the non-emergency (Proposer-) Security Council on Arbitrum One\nand pass through multiple delays and timelocks before being executed at their destination. Contrarily, the three Emergency Security Council multisigs\n(one on each chain: Arbitrum One, Ethereum, Arbitrum Nova) can skip delays and directly access all admin- and upgrade functions of all smart contracts.\nThese two general paths have the same destination: the respective UpgradeExecutor smart contract.\n\nRegular upgrades are scheduled in the L2 Timelock. The proposer Security Council can do this directly and the Arbitrum DAO (ARB token holders and delegates) must meet a\nCoreGovernor-enforced 50% threshold of the votable tokens. The L2 Timelock queues the transaction for a 8d delay and then sends it to the Outbox contract on Ethereum. This incurs another delay (the challenge period) of 6d 8h, which is extended by an additional 2d if the top-level assertion has been challenged.\nWhen that has passed, the L1 Timelock delays for additional 3d. Both timelocks serve as delays during which the transparent transaction contents can be audited,\nand, in the case of the final L1 timelock, cancelled by the Emergency Security Council. Finally, the transaction can be executed, calling Admin- or Owner restricted functions of the respective destination smart contracts\nthrough the UpgradeExecutor on Ethereum. If the predefined transaction destination is Arbitrum One or -Nova, this last call is executed on L2 through the canonical bridge and the aliased address of the L1 Timelock.\n\nOperator roles like the Sequencers and Validators are managed using the same paths.\nSequencer changes can be delegated to a Batch Poster Manager role.\n\nTransactions targeting the Arbitrum DAO Treasury can be scheduled in the 3d\nTreasury Timelock by meeting a TreasuryGovernor-enforced 40% threshold of votable ARB tokens. The Security Council cannot regularly cancel\nthese transactions or schedule different ones but can overwrite them anyway by having upgrade permissions for all the underlying smart contracts."
}
+1 -130
+0 -80
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "Scroll Security Council",
"name": "Scroll Security Council",
"description": "A Multisig with 9/12 threshold. \n* Can interact with TimelockSCEmergency\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock [via: TimelockSCEmergency - or - acting directly]\n* Can interact with TimelockSCSlow\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock **with 3d delay or with no delay** [via: TimelockSCSlow with 3d delay - or - acting directly]\n* Can interact with ScrollOwner\n * disable enforced batch mode [via: TimelockSCEmergency]\n * update and reset the PauseController cooldown period [via: TimelockSCEmergency]\n * update ScrollChain zk proof verifier [via: TimelockSCEmergency]\n * update the L1ScrollMessenger fee vault address [via: TimelockSCEmergency]\n * update the minimum delay message queue parameters and enforced mode parameters [via: TimelockSCEmergency]\n * upgrade all core contracts of the system [via: TimelockSCEmergency]",
"accounts": [
{
"address": "eth:0x1a37bF1Ccbf570C92FE2239FefaaAF861c2924DD",
"type": "Contract",
"isVerified": true,
"name": "0x1a37…24DD",
"url": "https://etherscan.io/address/0x1a37bF1Ccbf570C92FE2239FefaaAF861c2924DD"
}
],
"chain": "ethereum",
"references": [
{
"title": "Security Council members - Scroll Docs",
"url": "https://scroll-governance-documentation.vercel.app/gov-docs/content/what-is-security-council"
}
],
"participants": [
{
"address": "eth:0x0f50874f227621Dea72482004639a9fFe440A4dA",
"type": "EOA",
"isVerified": true,
"name": "0x0f50…A4dA",
"url": "https://etherscan.io/address/0x0f50874f227621Dea72482004639a9fFe440A4dA"
},
{
"address": "eth:0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d",
"type": "EOA",
"isVerified": true,
"name": "0x70DF…a86d",
"url": "https://etherscan.io/address/0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d"
},
{
"address": "eth:0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a",
"type": "EOA",
"isVerified": true,
"name": "0xE47D…0f2a",
"url": "https://etherscan.io/address/0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a"
},
{
"address": "eth:0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4",
"type": "EOA",
"isVerified": true,
"name": "0x9B2C…81D4",
"url": "https://etherscan.io/address/0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4"
},
{
"address": "eth:0x8edC4EADEE120d4C51923c515e7C3241c815C2BC",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x8edC4EADEE120d4C51923c515e7C3241c815C2BC"
},
{
"address": "eth:0x30315233090F675520eef5CBd7A6cf7d185af443",
"type": "EOA",
"isVerified": true,
"name": "0x3031…f443",
"url": "https://etherscan.io/address/0x30315233090F675520eef5CBd7A6cf7d185af443"
},
{
"address": "eth:0x9479ABfebefEea3c846163012a472b44F305b3d7",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x9479ABfebefEea3c846163012a472b44F305b3d7"
},
{
"address": "eth:0x383C148ba96956F985F6141B2D119add1C34e3B7",
"type": "EOA",
"isVerified": true,
"name": "0x383C…e3B7",
"url": "https://etherscan.io/address/0x383C148ba96956F985F6141B2D119add1C34e3B7"
},
{
"address": "eth:0xC3eA7C657884BB380B66D79C36aDCb5658b01896",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0xC3eA7C657884BB380B66D79C36aDCb5658b01896"
},
{
"address": "eth:0x69C2eD64171bF5737c2B78bdF722e68a032B2825",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x69C2eD64171bF5737c2B78bdF722e68a032B2825"
},
{
"address": "eth:0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafeL2",
"url": "https://etherscan.io/address/0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F"
},
{
"address": "eth:0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf",
"type": "EOA",
"isVerified": true,
"name": "0xFb77…DaFf",
"url": "https://etherscan.io/address/0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 2",
"name": "Scroll Multisig 2",
"description": "A Multisig with 2/4 threshold. \n* Can interact with ScrollOwner\n * pause the ScrollChain in permissioned mode and the L1 -> L2 message queue [via: TimelockEmergency]\n * remove permissioned batchers and provers to the whitelist, and update the sequencer address [via: TimelockEmergency]\n * revert unfinalized batches [via: TimelockEmergency]\n* Can interact with TimelockEmergency\n * cancel queued transactions \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock [via: TimelockEmergency - or - acting directly]",
"accounts": [
{
"address": "eth:0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc",
"type": "Contract",
"isVerified": true,
"name": "0xbdA1…0cBc",
"url": "https://etherscan.io/address/0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1-and-EOA-4"
},
{
"address": "eth:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3"
},
{
"address": "eth:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "EOA 4",
"url": "#EOA-1-and-EOA-4"
},
{
"address": "eth:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-2"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 3",
"name": "Scroll Multisig 3",
"description": "A Multisig with 3/5 threshold. \n* Can interact with TimelockFast\n * cancel queued transactions \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock **with 1d delay or with no delay** [via: TimelockFast with 1d delay - or - acting directly]\n* Can interact with ScrollOwner\n * add permissioned batchers and provers to the whitelist **with 1d delay** [via: TimelockFast with 1d delay]\n * set ERC20 gateways in the L1GatewayRouter **with 1d delay** [via: TimelockFast with 1d delay]",
"accounts": [
{
"address": "eth:0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe",
"type": "Contract",
"isVerified": true,
"name": "0xEfc9…4dbe",
"url": "https://etherscan.io/address/0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3"
},
{
"address": "eth:0x8460aCc9A42D2CF07015a3e838df2E3aB37d30ae",
"type": "EOA",
"isVerified": true,
"name": "0x8460…30ae",
"url": "https://etherscan.io/address/0x8460aCc9A42D2CF07015a3e838df2E3aB37d30ae"
},
{
"address": "eth:0xEbbeeAA424AE904508465a41c927Be594C43Dc68",
"type": "EOA",
"isVerified": true,
"name": "0xEbbe…Dc68",
"url": "https://etherscan.io/address/0xEbbeeAA424AE904508465a41c927Be594C43Dc68"
},
{
"address": "eth:0x716f84f747e2B75aBB917ff0bCb0a71C41AA8831",
"type": "EOA",
"isVerified": true,
"name": "0x716f…8831",
"url": "https://etherscan.io/address/0x716f84f747e2B75aBB917ff0bCb0a71C41AA8831"
},
{
"address": "eth:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-2"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Security Council Minority",
"name": "Scroll Security Council Minority",
"description": "A Multisig with 3/12 threshold. \n* Can interact with ScrollOwner\n * unpause core contracts via the PauseController ",
"accounts": [
{
"address": "eth:0x40bD67b02EBf1CFB4AdA7F60CabAc94d6aafc6eE",
"type": "Contract",
"isVerified": true,
"name": "0x40bD…c6eE",
"url": "https://etherscan.io/address/0x40bD67b02EBf1CFB4AdA7F60CabAc94d6aafc6eE"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d",
"type": "EOA",
"isVerified": true,
"name": "0x70DF…a86d",
"url": "https://etherscan.io/address/0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d"
},
{
"address": "eth:0x0f50874f227621Dea72482004639a9fFe440A4dA",
"type": "EOA",
"isVerified": true,
"name": "0x0f50…A4dA",
"url": "https://etherscan.io/address/0x0f50874f227621Dea72482004639a9fFe440A4dA"
},
{
"address": "eth:0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a",
"type": "EOA",
"isVerified": true,
"name": "0xE47D…0f2a",
"url": "https://etherscan.io/address/0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a"
},
{
"address": "eth:0x8edC4EADEE120d4C51923c515e7C3241c815C2BC",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x8edC4EADEE120d4C51923c515e7C3241c815C2BC"
},
{
"address": "eth:0x9479ABfebefEea3c846163012a472b44F305b3d7",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x9479ABfebefEea3c846163012a472b44F305b3d7"
},
{
"address": "eth:0x69C2eD64171bF5737c2B78bdF722e68a032B2825",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0x69C2eD64171bF5737c2B78bdF722e68a032B2825"
},
{
"address": "eth:0x383C148ba96956F985F6141B2D119add1C34e3B7",
"type": "EOA",
"isVerified": true,
"name": "0x383C…e3B7",
"url": "https://etherscan.io/address/0x383C148ba96956F985F6141B2D119add1C34e3B7"
},
{
"address": "eth:0xC3eA7C657884BB380B66D79C36aDCb5658b01896",
"type": "Contract",
"isVerified": true,
"name": "Safe",
"url": "https://etherscan.io/address/0xC3eA7C657884BB380B66D79C36aDCb5658b01896"
},
{
"address": "eth:0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafeL2",
"url": "https://etherscan.io/address/0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F"
},
{
"address": "eth:0x30315233090F675520eef5CBd7A6cf7d185af443",
"type": "EOA",
"isVerified": true,
"name": "0x3031…f443",
"url": "https://etherscan.io/address/0x30315233090F675520eef5CBd7A6cf7d185af443"
},
{
"address": "eth:0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4",
"type": "EOA",
"isVerified": true,
"name": "0x9B2C…81D4",
"url": "https://etherscan.io/address/0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4"
},
{
"address": "eth:0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf",
"type": "EOA",
"isVerified": true,
"name": "0xFb77…DaFf",
"url": "https://etherscan.io/address/0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf"
}
],
"discoveryDrivenData": true
},
{
"id": "MasterMinter",
"name": "MasterMinter",
"accounts": [
{
"address": "eth:0x02398771Fd1db790Ef2b656ca3BcB3075f27A72c",
"type": "Contract",
"isVerified": true,
"name": "0x0239…A72c",
"url": "https://etherscan.io/address/0x02398771Fd1db790Ef2b656ca3BcB3075f27A72c"
}
],
"chain": "ethereum",
"description": "Manager contract for minter management [sic].\n* Can interact with Euro Coin Token\n * manage minter addresses ",
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 1",
"name": "Scroll Multisig 1",
"description": "A Multisig with 1/4 threshold. ",
"accounts": [
{
"address": "eth:0x1FF1fc1BB4d1f081f6E0a7E7E3240F3ECC5B236f",
"type": "Contract",
"isVerified": true,
"name": "0x1FF1…236f",
"url": "https://etherscan.io/address/0x1FF1fc1BB4d1f081f6E0a7E7E3240F3ECC5B236f"
}
],
"chain": "ethereum",
"references": [],
"participants": [
{
"address": "eth:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 3",
"url": "#EOA-3"
},
{
"address": "eth:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "EOA 4",
"url": "#EOA-1-and-EOA-4"
},
{
"address": "eth:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "EOA 1",
"url": "#EOA-1-and-EOA-4"
},
{
"address": "eth:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 2",
"url": "#EOA-2"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-1-and-EOA-4",
"name": "EOA 1 and EOA 4",
"accounts": [
{
"address": "eth:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "0x0c5c…f774",
"url": "https://etherscan.io/address/0x0c5cc5155b346453154059aD9d2Ff695dB92f774"
},
{
"address": "eth:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "0xFcf1…9402",
"url": "https://etherscan.io/address/0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402"
}
],
"chain": "ethereum",
"description": "Member of Scroll Multisig 1, Scroll Multisig 4, Scroll Multisig 2.\n* Can interact with TimelockSCEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockFast\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockSCSlow\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "0x6aE9…664b",
"url": "https://etherscan.io/address/0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b"
}
],
"chain": "ethereum",
"description": "Member of Scroll Multisig 1, Scroll Multisig 4, Scroll Multisig 2, Scroll Multisig 3.\n* Can interact with TimelockSCEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockFast\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockSCSlow\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "0xEe9b…0D5B",
"url": "https://etherscan.io/address/0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B"
}
],
"chain": "ethereum",
"description": "Member of Scroll Multisig 1, Scroll Multisig 2, Scroll Multisig 3.\n* Can interact with TimelockSCEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockFast\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockSCSlow\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]",
"discoveryDrivenData": true
},
{
"id": "EOA-9",
"name": "EOA 9",
"accounts": [
{
"address": "eth:0x2C576CFC9612541eb827b5c52479F364DdfaFEB7",
"type": "EOA",
"isVerified": true,
"name": "0x2C57…FEB7",
"url": "https://etherscan.io/address/0x2C576CFC9612541eb827b5c52479F364DdfaFEB7"
}
],
"chain": "ethereum",
"description": "* Can interact with Euro Coin Token\n * pause the USDC token (no transfers, mints, burns) ",
"discoveryDrivenData": true
},
{
"id": "EOA-10",
"name": "EOA 10",
"accounts": [
{
"address": "eth:0x3101386A38bEf8b79e49f12dEA12938a30E8af96",
"type": "EOA",
"isVerified": true,
"name": "0x3101…af96",
"url": "https://etherscan.io/address/0x3101386A38bEf8b79e49f12dEA12938a30E8af96"
}
],
"chain": "ethereum",
"description": "* Can interact with Euro Coin Token\n * manage all critical roles like pausers, blacklisters, minters, rescuer ",
"discoveryDrivenData": true
},
{
"id": "EOA-11",
"name": "EOA 11",
"accounts": [
{
"address": "eth:0x601c97ed567253bf09A51998D53C5AA73290bd73",
"type": "EOA",
"isVerified": true,
"name": "0x601c…bd73",
"url": "https://etherscan.io/address/0x601c97ed567253bf09A51998D53C5AA73290bd73"
}
],
"chain": "ethereum",
"description": "* Can interact with Euro Coin Token\n * blacklist addresses, freezing any interactions with the USDC token for them ",
"discoveryDrivenData": true
},
{
"id": "EOA-12",
"name": "EOA 12",
"accounts": [
{
"address": "eth:0x9Ed85723C5c55b746Eb2C4B7e2A359B2091B8fE7",
"type": "EOA",
"isVerified": true,
"name": "0x9Ed8…8fE7",
"url": "https://etherscan.io/address/0x9Ed85723C5c55b746Eb2C4B7e2A359B2091B8fE7"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * Euro Coin Token ",
"discoveryDrivenData": true
}
]
},
"scroll": {
"roles": [],
"actors": [
{
"id": "Scroll Security Council",
"name": "Scroll Security Council",
"description": "A Multisig with 9/12 threshold. \n* Can interact with ScrollOwner\n * disable enforced batch mode [via: TimelockSCEmergencyScroll]\n * update ScrollChain zk proof verifier [via: TimelockSCEmergencyScroll]\n * upgrade all core contracts of the system [via: TimelockSCEmergencyScroll]\n* Can interact with TimelockSCEmergencyScroll\n * cancel queued transactions \n * execute transactions that are ready \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock [via: TimelockSCEmergencyScroll - or - acting directly]\n* Can interact with AgoraGovernor\n * can configure contract settings such as voting delay, quorum, contract manager **with 3d delay** [via: TimelockSCSlow with 3d delay]",
"accounts": [
{
"address": "scr:0x1a37bF1Ccbf570C92FE2239FefaaAF861c2924DD",
"type": "Contract",
"isVerified": true,
"name": "0x1a37…24DD",
"url": "https://scrollscan.com/address/0x1a37bF1Ccbf570C92FE2239FefaaAF861c2924DD"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0x0f50874f227621Dea72482004639a9fFe440A4dA",
"type": "EOA",
"isVerified": true,
"name": "0x0f50…A4dA",
"url": "https://scrollscan.com/address/0x0f50874f227621Dea72482004639a9fFe440A4dA"
},
{
"address": "scr:0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d",
"type": "EOA",
"isVerified": true,
"name": "0x70DF…a86d",
"url": "https://scrollscan.com/address/0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d"
},
{
"address": "scr:0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a",
"type": "EOA",
"isVerified": true,
"name": "0xE47D…0f2a",
"url": "https://scrollscan.com/address/0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a"
},
{
"address": "scr:0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4",
"type": "EOA",
"isVerified": true,
"name": "0x9B2C…81D4",
"url": "https://scrollscan.com/address/0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4"
},
{
"address": "scr:0x8edC4EADEE120d4C51923c515e7C3241c815C2BC",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x8edC4EADEE120d4C51923c515e7C3241c815C2BC"
},
{
"address": "scr:0x30315233090F675520eef5CBd7A6cf7d185af443",
"type": "EOA",
"isVerified": true,
"name": "0x3031…f443",
"url": "https://scrollscan.com/address/0x30315233090F675520eef5CBd7A6cf7d185af443"
},
{
"address": "scr:0x9479ABfebefEea3c846163012a472b44F305b3d7",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x9479ABfebefEea3c846163012a472b44F305b3d7"
},
{
"address": "scr:0x383C148ba96956F985F6141B2D119add1C34e3B7",
"type": "EOA",
"isVerified": true,
"name": "0x383C…e3B7",
"url": "https://scrollscan.com/address/0x383C148ba96956F985F6141B2D119add1C34e3B7"
},
{
"address": "scr:0xC3eA7C657884BB380B66D79C36aDCb5658b01896",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0xC3eA7C657884BB380B66D79C36aDCb5658b01896"
},
{
"address": "scr:0x69C2eD64171bF5737c2B78bdF722e68a032B2825",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x69C2eD64171bF5737c2B78bdF722e68a032B2825"
},
{
"address": "scr:0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafeL2",
"url": "https://scrollscan.com/address/0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F"
},
{
"address": "scr:0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf",
"type": "EOA",
"isVerified": true,
"name": "0xFb77…DaFf",
"url": "https://scrollscan.com/address/0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 2",
"name": "Scroll Multisig 2",
"description": "A Multisig with 2/4 threshold. \n* Can interact with TimelockEmergency\n * cancel queued transactions \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock [via: TimelockEmergency - or - acting directly]",
"accounts": [
{
"address": "scr:0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc",
"type": "Contract",
"isVerified": true,
"name": "0xbdA1…0cBc",
"url": "https://scrollscan.com/address/0xbdA143d49da40C2cDA27c40edfBbe8A0D4AE0cBc"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "EOA 5",
"url": "#EOA-5-and-EOA-8"
},
{
"address": "scr:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 7",
"url": "#EOA-6-and-EOA-7"
},
{
"address": "scr:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "EOA 8",
"url": "#EOA-5-and-EOA-8"
},
{
"address": "scr:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 6",
"url": "#EOA-6-and-EOA-7"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 3",
"name": "Scroll Multisig 3",
"description": "A Multisig with 3/5 threshold. \n* Can interact with TimelockFast\n * cancel queued transactions \n * propose transactions \n * update the minimum delay and manage all access control roles of the timelock **with 1d delay or with no delay** [via: TimelockFast with 1d delay - or - acting directly]",
"accounts": [
{
"address": "scr:0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe",
"type": "Contract",
"isVerified": true,
"name": "0xEfc9…4dbe",
"url": "https://scrollscan.com/address/0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 7",
"url": "#EOA-6-and-EOA-7"
},
{
"address": "scr:0x8460aCc9A42D2CF07015a3e838df2E3aB37d30ae",
"type": "EOA",
"isVerified": true,
"name": "0x8460…30ae",
"url": "https://scrollscan.com/address/0x8460aCc9A42D2CF07015a3e838df2E3aB37d30ae"
},
{
"address": "scr:0xEbbeeAA424AE904508465a41c927Be594C43Dc68",
"type": "EOA",
"isVerified": true,
"name": "0xEbbe…Dc68",
"url": "https://scrollscan.com/address/0xEbbeeAA424AE904508465a41c927Be594C43Dc68"
},
{
"address": "scr:0x716f84f747e2B75aBB917ff0bCb0a71C41AA8831",
"type": "EOA",
"isVerified": true,
"name": "0x716f…8831",
"url": "https://scrollscan.com/address/0x716f84f747e2B75aBB917ff0bCb0a71C41AA8831"
},
{
"address": "scr:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 6",
"url": "#EOA-6-and-EOA-7"
}
],
"discoveryDrivenData": true
},
{
"id": "GnosisSafeL2",
"name": "GnosisSafeL2",
"description": "A Multisig with 2/2 threshold. \n* Can interact with AgoraGovernor\n * can propose new onchain governance proposals without the required threshold of votes ",
"accounts": [
{
"address": "scr:0x2B2A8546Df3B23535fffd75B4e312f3C5c7B4351",
"type": "Contract",
"isVerified": true,
"name": "0x2B2A…4351",
"url": "https://scrollscan.com/address/0x2B2A8546Df3B23535fffd75B4e312f3C5c7B4351"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0x1Da431d2D5ECA4Df735F69fB5ea10c8E630b8f50",
"type": "EOA",
"isVerified": true,
"name": "0x1Da4…8f50",
"url": "https://scrollscan.com/address/0x1Da431d2D5ECA4Df735F69fB5ea10c8E630b8f50"
},
{
"address": "scr:0x558581b0345D986bA5bD6f04Efd27e2a5B991320",
"type": "EOA",
"isVerified": true,
"name": "0x5585…1320",
"url": "https://scrollscan.com/address/0x558581b0345D986bA5bD6f04Efd27e2a5B991320"
}
],
"discoveryDrivenData": true
},
{
"id": "ProxyAdmin",
"name": "ProxyAdmin",
"accounts": [
{
"address": "scr:0x8e34D07Eb348716a1f0a48A507A9de8a3A6DcE45",
"type": "Contract",
"isVerified": true,
"name": "0x8e34…cE45",
"url": "https://scrollscan.com/address/0x8e34D07Eb348716a1f0a48A507A9de8a3A6DcE45"
}
],
"chain": "scroll",
"description": "* Can upgrade **with no delay**\n * L2LidoGateway ",
"discoveryDrivenData": true
},
{
"id": "Scroll Multisig 1",
"name": "Scroll Multisig 1",
"description": "A Multisig with 1/4 threshold. ",
"accounts": [
{
"address": "scr:0x1FF1fc1BB4d1f081f6E0a7E7E3240F3ECC5B236f",
"type": "Contract",
"isVerified": true,
"name": "0x1FF1…236f",
"url": "https://scrollscan.com/address/0x1FF1fc1BB4d1f081f6E0a7E7E3240F3ECC5B236f"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "EOA 7",
"url": "#EOA-6-and-EOA-7"
},
{
"address": "scr:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "EOA 8",
"url": "#EOA-5-and-EOA-8"
},
{
"address": "scr:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "EOA 5",
"url": "#EOA-5-and-EOA-8"
},
{
"address": "scr:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "EOA 6",
"url": "#EOA-6-and-EOA-7"
}
],
"discoveryDrivenData": true
},
{
"id": "Scroll Security Council Minority",
"name": "Scroll Security Council Minority",
"description": "A Multisig with 3/12 threshold. ",
"accounts": [
{
"address": "scr:0x40bD67b02EBf1CFB4AdA7F60CabAc94d6aafc6eE",
"type": "Contract",
"isVerified": true,
"name": "0x40bD…c6eE",
"url": "https://scrollscan.com/address/0x40bD67b02EBf1CFB4AdA7F60CabAc94d6aafc6eE"
}
],
"chain": "scroll",
"references": [],
"participants": [
{
"address": "scr:0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d",
"type": "EOA",
"isVerified": true,
"name": "0x70DF…a86d",
"url": "https://scrollscan.com/address/0x70DFdAE47E29D2C40EE58Cefa7379588B421a86d"
},
{
"address": "scr:0x0f50874f227621Dea72482004639a9fFe440A4dA",
"type": "EOA",
"isVerified": true,
"name": "0x0f50…A4dA",
"url": "https://scrollscan.com/address/0x0f50874f227621Dea72482004639a9fFe440A4dA"
},
{
"address": "scr:0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a",
"type": "EOA",
"isVerified": true,
"name": "0xE47D…0f2a",
"url": "https://scrollscan.com/address/0xE47D966E2c7e94fC20ffAf5119d1926381C40f2a"
},
{
"address": "scr:0x8edC4EADEE120d4C51923c515e7C3241c815C2BC",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x8edC4EADEE120d4C51923c515e7C3241c815C2BC"
},
{
"address": "scr:0x9479ABfebefEea3c846163012a472b44F305b3d7",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x9479ABfebefEea3c846163012a472b44F305b3d7"
},
{
"address": "scr:0x69C2eD64171bF5737c2B78bdF722e68a032B2825",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0x69C2eD64171bF5737c2B78bdF722e68a032B2825"
},
{
"address": "scr:0x383C148ba96956F985F6141B2D119add1C34e3B7",
"type": "EOA",
"isVerified": true,
"name": "0x383C…e3B7",
"url": "https://scrollscan.com/address/0x383C148ba96956F985F6141B2D119add1C34e3B7"
},
{
"address": "scr:0xC3eA7C657884BB380B66D79C36aDCb5658b01896",
"type": "Contract",
"isVerified": true,
"name": "SafeL2",
"url": "https://scrollscan.com/address/0xC3eA7C657884BB380B66D79C36aDCb5658b01896"
},
{
"address": "scr:0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F",
"type": "Contract",
"isVerified": true,
"name": "GnosisSafeL2",
"url": "https://scrollscan.com/address/0x11cd09a0c5B1dc674615783b0772a9bFD53e3A8F"
},
{
"address": "scr:0x30315233090F675520eef5CBd7A6cf7d185af443",
"type": "EOA",
"isVerified": true,
"name": "0x3031…f443",
"url": "https://scrollscan.com/address/0x30315233090F675520eef5CBd7A6cf7d185af443"
},
{
"address": "scr:0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4",
"type": "EOA",
"isVerified": true,
"name": "0x9B2C…81D4",
"url": "https://scrollscan.com/address/0x9B2C2Bc80C209c9C5D7f26F57b1Bb3B1699281D4"
},
{
"address": "scr:0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf",
"type": "EOA",
"isVerified": true,
"name": "0xFb77…DaFf",
"url": "https://scrollscan.com/address/0xFb77d22ED83F42922F9542e39dCfA9F8C47FDaFf"
}
],
"discoveryDrivenData": true
},
{
"id": "EOA-5-and-EOA-8",
"name": "EOA 5 and EOA 8",
"accounts": [
{
"address": "scr:0x0c5cc5155b346453154059aD9d2Ff695dB92f774",
"type": "EOA",
"isVerified": true,
"name": "0x0c5c…f774",
"url": "https://scrollscan.com/address/0x0c5cc5155b346453154059aD9d2Ff695dB92f774"
},
{
"address": "scr:0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402",
"type": "EOA",
"isVerified": true,
"name": "0xFcf1…9402",
"url": "https://scrollscan.com/address/0xFcf1f182FC79047d99e5db0d7113c0EfE2EC9402"
}
],
"chain": "scroll",
"description": "Member of Scroll Multisig 1, Scroll Multisig 2.\n* Can interact with TimelockSCEmergencyScroll\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockFast\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]",
"discoveryDrivenData": true
},
{
"id": "EOA-6-and-EOA-7",
"name": "EOA 6 and EOA 7",
"accounts": [
{
"address": "scr:0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b",
"type": "EOA",
"isVerified": true,
"name": "0x6aE9…664b",
"url": "https://scrollscan.com/address/0x6aE9233a6a66B5E4bEFB7f3d6bBAd07873b1664b"
},
{
"address": "scr:0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B",
"type": "EOA",
"isVerified": true,
"name": "0xEe9b…0D5B",
"url": "https://scrollscan.com/address/0xEe9bb388d320F4305af6a4a1a70c862D3F4d0D5B"
}
],
"chain": "scroll",
"description": "Member of Scroll Multisig 1, Scroll Multisig 2, Scroll Multisig 3.\n* Can interact with TimelockSCEmergencyScroll\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockFast\n * execute transactions that are ready [via: Scroll Multisig 1]\n* Can interact with TimelockEmergency\n * execute transactions that are ready [via: Scroll Multisig 1]",
"discoveryDrivenData": true
}
]
}
}
+0 -49
{
"addresses": {
"ethereum": [
{
"name": "MultipleVersionRollupVerifier",
"isVerified": true,
"address": "eth:0x4CEA3E866e7c57fD75CB0CA3E9F5f1151D4Ead3F",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Contract used to update the verifier and keep track of current and old versions.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4CEA3E866e7c57fD75CB0CA3E9F5f1151D4Ead3F#code"
},
{
"name": "L1MessageQueueV2",
"isVerified": true,
"address": "eth:0x56971da63A3C0205184FEF096E9ddFc7A8C2D18a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x39C36c9026ac18104839A50c61a4507ea5052ECa"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1742476139,
"transactionHash": "0xa44917bb285df86b23937d2180e5e2d21d47407803736797bc8cdbaf59d8f256",
"implementations": [
"eth:0xFAf8f72e54d1089fa1882b6f597BfDFF59a8AFca"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xEfA158006b072793a49E622B26761cD0eC38591d"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x39C36c9026ac18104839A50c61a4507ea5052ECa"
]
}
],
"description": "Contains the array of queued L1 -> L2 messages, either appended using the L1ScrollMessenger or the EnforcedTxGateway.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x56971da63A3C0205184FEF096E9ddFc7A8C2D18a#code"
},
{
"name": "L1ScrollMessenger",
"isVerified": true,
"address": "eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xcad9f31340db6aca3a5da0d704ee33a9b6c43a5b1be4406cc0ed33edbdd7c92e",
"implementations": [
"eth:0xAf2F898a8680cb52766ABE0588ebe6b9bFe37845"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x72981fD00087fF4F60aBFdE9f353cB1912A37fb6"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xc6326109E33465d6d61e4Cb7AFCe7B1bE7cfF868"
]
},
{
"timestamp": 1745564819,
"transactionHash": "0x783703d4e94de48edb75261149a540cbf7abb7ef077865c11080e622a508ab86",
"implementations": [
"eth:0x84791281EF5cb8Af5dCd4c122f7A42FeD38Fef5b"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
}
],
"description": "Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367#code"
},
{
"name": "EnforcedTxGateway",
"isVerified": true,
"address": "eth:0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x7e87c75BBe7991bbCEBd2C7a56f4cFC923BDDBcc"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xd2e3c3d2839a35492419c5a1ae863e7a23d963cb4853c59e8e20832e0ee4ed3e",
"implementations": [
"eth:0x642af405bF64660665B37977449C9C536B806318"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0x7e87c75BBe7991bbCEBd2C7a56f4cFC923BDDBcc"
]
}
],
"description": "Contracts to force L1 -> L2 messages with the proper sender.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x72CAcBcfDe2d1e19122F8A36a4d6676cd39d7A5d#code"
},
{
"name": "ScrollOwner",
"isVerified": true,
"address": "eth:0x798576400F7D662961BA15C6b3F3d813447a26a6",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Owner of all contracts in the system. It implements an extension of AccessControl that manages roles and functions allowed to be called by each role.\n* Roles:\n * **opsFast**: TimelockFast; ultimately Scroll Multisig 3\n * **opsNoDelay**: TimelockEmergency; ultimately Scroll Multisig 2\n * **scMinorityNoDelay**: Scroll Security Council Minority\n * **scNoDelay**: TimelockSCEmergency; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x798576400F7D662961BA15C6b3F3d813447a26a6#code"
},
{
"name": "SystemConfig",
"isVerified": true,
"address": "eth:0x8432728A257646449245558B8b7Dbe51A16c7a4D",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xf15a4b6D1fE2Ca6eE38BC3fb957f43F58b515eeE"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1742476115,
"transactionHash": "0x693533d50e553bb88df2025b2f294549a13cc6ed266de233429ac8742314c77a",
"implementations": [
"eth:0xFAf8f72e54d1089fa1882b6f597BfDFF59a8AFca"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0x6A124779fDf107c3F6BcB992731dCAaD09f2276A"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xf15a4b6D1fE2Ca6eE38BC3fb957f43F58b515eeE"
]
}
],
"description": "System configuration contract for Scroll, contains enforcedBatchParameters and messageQueueParameters determining permissionless mode.\n* Roles:\n * **admin**: ProxyAdmin\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8432728A257646449245558B8b7Dbe51A16c7a4D#code"
},
{
"name": "ScrollChain",
"isVerified": true,
"address": "eth:0xa13BAF47339d63B743e7Da8741db5456DAc1E556",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x0a20703878E68E587c59204cc0EA86098B8c3bA7"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xecc94033ca66ea9068acde109b0c9e3c539191645916a35952bb6d9fd2be3a02",
"implementations": [
"eth:0x2E07f0FBA71709bb5e1f045b02152E45B451D75f"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xFA148514d03420b7b1a13eC74da06D2Ca875539C"
]
},
{
"timestamp": 1714341995,
"transactionHash": "0x6eb161ed649cf22771e586a8546eec157717e2dec4c871e7ad4e4d2c5c59a905",
"implementations": [
"eth:0xaa6d0F2490AC3957B97e11afEC6F0f250593CaC8"
]
},
{
"timestamp": 1719915047,
"transactionHash": "0x87f533704b3cdac75c20bbdcd202a97ee62075c188ccea27ab7ff494cdeea247",
"implementations": [
"eth:0x4F250B05262240C787a1eE222687C6eC395C628A"
]
},
{
"timestamp": 1724196995,
"transactionHash": "0x3928e0223337a112ea68c84db95441185a3e1da809638be13c0135761aa19ee7",
"implementations": [
"eth:0x9bB163401E8C72573854c4Cd968aFA7A7b02D25f"
]
},
{
"timestamp": 1744728443,
"transactionHash": "0xa1faad1ccd2c390641b46d50d93c26b7369137f021e528acfec78385494b2fb0",
"implementations": [
"eth:0x8f339292d2b3909574B2bEB051a613a987dB538f"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xb7c8833F5627a8a12558cAFa0d0EBD1ACBDce43f"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x0a20703878E68E587c59204cc0EA86098B8c3bA7"
]
}
],
"description": "The main contract of the Scroll chain. Allows to post transaction data and state roots, along with proofs. Sequencing and proposing are behind a whitelist unless enforcedBatchMode is activated.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa13BAF47339d63B743e7Da8741db5456DAc1E556#code"
},
{
"name": "TimelockSCEmergency",
"isVerified": true,
"address": "eth:0x0CD4c0F24a0A9f3E2Fe80ed385D8AD5a2FfECA44",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCEmergency; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0CD4c0F24a0A9f3E2Fe80ed385D8AD5a2FfECA44#code"
},
{
"name": "TimelockFast",
"isVerified": true,
"address": "eth:0x0e58939204eEDa84F796FBc86840A50af10eC4F4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 1d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 3\n * **executor**: Scroll Multisig 1; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Multisig 3\n * **timelockAdmin**: Scroll Multisig 3, TimelockFast; ultimately Scroll Multisig 3",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0e58939204eEDa84F796FBc86840A50af10eC4F4#code"
},
{
"name": "TimelockSCSlow",
"isVerified": true,
"address": "eth:0x3f9041350B661c74C6CbE440c8Bd6BC4C168a9fd",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 3d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCSlow; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x3f9041350B661c74C6CbE440c8Bd6BC4C168a9fd#code"
},
{
"name": "TimelockEmergency",
"isVerified": true,
"address": "eth:0x826714adD4dDA2b8750794A467C892c0Cd49216b",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 2\n * **executor**: Scroll Multisig 1; ultimately EOA 1, EOA 2, EOA 3, EOA 4\n * **proposer**: Scroll Multisig 2\n * **timelockAdmin**: Scroll Multisig 2, TimelockEmergency; ultimately Scroll Multisig 2",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x826714adD4dDA2b8750794A467C892c0Cd49216b#code"
},
{
"name": "L1ERC721Gateway",
"isVerified": true,
"address": "eth:0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79F1bF1906B63b56E08c3ada4c51De11F145a27A"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x5cb06c63fb2583db9eba85a73ca794a9d36eace7f91925962b8cc97fd06b9b7d",
"implementations": [
"eth:0xDE3be7C2AA151D1E152DDfcBf0962FcDf5323DAe"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xd1841c5756428812233eEA78afC17cb2D3e392bb"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79F1bF1906B63b56E08c3ada4c51De11F145a27A"
]
}
],
"description": "Contract used to bridge ERC721 tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B#code"
},
{
"name": "L1ETHGateway",
"isVerified": true,
"address": "eth:0x7F2b8C31F88B6006c382775eea88297Ec1e3E905",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x1fee6a6dC49095FB9C84D61aa4b8A07284b2A1d0"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xbd63d1902c6343a9cdb81aa8944621690e4dd62a82640fded7f7c3d969e3647a",
"implementations": [
"eth:0x1fcbE079c4Bbab37406daB7Dfd35AcAe37D5C55d"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x546E0bF31FB6e7babD493452e4e6999191367B42"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x1fee6a6dC49095FB9C84D61aa4b8A07284b2A1d0"
]
}
],
"description": "Contract used to bridge ETH from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7F2b8C31F88B6006c382775eea88297Ec1e3E905#code"
},
{
"name": "pufETHEscrow",
"isVerified": true,
"address": "eth:0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9eBf2f33526CD571f8b2ad312492cb650870CFd6"
],
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713173507,
"transactionHash": "0xa2ff9275d6280e3cc298653463c5d8423c44cfbc66a52a9a138becbb106dc0f8",
"implementations": [
"eth:0xc4d46E8402F476F269c379677C99F18E22Ea030e"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xe03abd155a10591ed1fa4a1e2ad0d6042549bfd67769dbf6bd66d25743950905",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xb367f770c26a72ea837a51c2c1fc84a3396914db1d58c020177b207e0f876a79",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It allows to change the token mappings.\n",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xA033Ff09f2da45f0e9ae495f525363722Df42b2a#code"
},
{
"name": "L1CustomERC20Gateway",
"isVerified": true,
"address": "eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x12f874f5ca5a8dbdc5162db5179a4e4b753f4fcff8dab3f416bd1ce707ecb9ff",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x7F512E2E9dfC4552941D99A5b2405BBcF5781C2c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It allows to change the token mappings.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb2b10a289A229415a124EFDeF310C10cb004B6ff#code"
},
{
"name": "L1ERC1155Gateway",
"isVerified": true,
"address": "eth:0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xcA46358D5F01E4F865885514DAe6275087Ffe38E"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xe6cabeddb49c286b33e0e6d4a43af76e1a2108ac9fc91afb508a5ea86a8fc646",
"implementations": [
"eth:0xCb4638620E4C6DeCef26374e71b0dd4871863593"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x244BF7aEf29F03916569470a51fA0794B62F8cd7"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xcA46358D5F01E4F865885514DAe6275087Ffe38E"
]
}
],
"description": "Contract used to bridge ERC1155 tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6#code"
},
{
"name": "L1StandardERC20Gateway",
"isVerified": true,
"address": "eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x85d366c40632340d9e835fdd0a1646909a56d60c680373f15f9d36878ff13029",
"implementations": [
"eth:0x9218732389D80f9b8723C3f32a38865B7a63564A"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x4015Fc868C06689ABEba4a9dC8FA43B804F6239c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
}
],
"description": "Contract used to bridge ERC20 tokens from L1 to L2. It uses a fixed token list.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9#code"
},
{
"name": "L1GatewayRouter",
"isVerified": true,
"address": "eth:0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xb93Ac04010Bd61F45BF492022A5b49a902F798F3"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x8f6851c707737c446ee55f39be1442ce8cfa50ef8522b34bac247c0bb39a14ec",
"implementations": [
"eth:0xb93Ac04010Bd61F45BF492022A5b49a902F798F3"
]
}
],
"description": "Main entry point for depositing ETH and ERC20 tokens, which are then forwarded to the correct gateway.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6#code"
},
{
"name": "wstETHescrowLido",
"isVerified": true,
"address": "eth:0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCC2C53556Bc75217cf698721b29071d6f12628A9"
],
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920503,
"transactionHash": "0xec5c25ea4b3e6d1dc9fa4cb7b7dd37a7a245a171cd3d16fb312628b5ecc9e841",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1709624939,
"transactionHash": "0xd755174ba6bacec85b68b77c9ec2a8b966955746be59a6efa932f47c37dda482",
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x6625C6332c9F91F2D27c304E729B86db87A3f504#code"
},
{
"name": "DaiEscrow",
"isVerified": true,
"address": "eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920095,
"transactionHash": "0x9776779beb429ea826a81a8c1c5f782933bfc8ce568afa1c6f2c2b866be2a3a5",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x67260A8B73C5B77B55c1805218A42A7A6F98F515#code"
},
{
"name": "L1WETHGateway",
"isVerified": true,
"address": "eth:0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xE25EfFEFd08c4a57556d47eF96471Cb567A86c24"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x0f1df3c211e6b201b0bb0cc41c87c2fbb36683f2a24080d935ffdc587723c033",
"implementations": [
"eth:0xd3c42158682D55E082EaBe08a29F7515A97cA307"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0xa4F400593DFfc0ae02F940ab58f6e3Cc6fb9FB49"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xE25EfFEFd08c4a57556d47eF96471Cb567A86c24"
]
}
],
"description": "Contract used to bridge WETH from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE#code"
},
{
"name": "L1USDCGateway",
"isVerified": true,
"address": "eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696919351,
"transactionHash": "0x394b36151c614a7dfd048ddc1085046d2a50e5fd54af4c335d4a08aa79dd773d",
"implementations": [
"eth:0x6667123b5017AAB9945F73345848B82D7A953AA8"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
}
],
"description": "Contract used to bridge USDC tokens from L1 to L2.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B#code"
},
{
"name": "PlonkVerifierV1-1",
"isVerified": true,
"address": "eth:0x03a72B00D036C479105fF98A1953b15d9c510110",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.11.4/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x03a72B00D036C479105fF98A1953b15d9c510110#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0x0dE180164Dc571522457101F5c47B2eaB36d0A82",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x0dE180164Dc571522457101F5c47B2eaB36d0A82#code"
},
{
"name": "Euro Coin Token",
"isVerified": true,
"address": "eth:0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0x9Ed85723C5c55b746Eb2C4B7e2A359B2091B8fE7"
],
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1654870298,
"transactionHash": "0x24fab5b4bf89d30ddecda96ab8cfb830bd5d62f6379e372da4a20b83aaedaa8a",
"implementations": [
"eth:0x5E620D573cDaF414d70Fc85B116dD8F1E7e79Ce2"
]
},
{
"timestamp": 1654870298,
"transactionHash": "0x24fab5b4bf89d30ddecda96ab8cfb830bd5d62f6379e372da4a20b83aaedaa8a",
"implementations": [
"eth:0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF"
]
},
{
"timestamp": 1705000247,
"transactionHash": "0xb621c3e6112d845cdc7603afbdbd1970caab936783c155a232edbd5a2d6a1a39",
"implementations": [
"eth:0x43506849D7C04F9138D1A2050bbF3A0c054402dd"
]
}
],
"description": "* Roles:\n * **admin**: EOA 12\n * **blacklister**: EOA 11\n * **masterMinter**: MasterMinter\n * **owner**: EOA 10\n * **pauser**: EOA 9",
"upgradableBy": [
{
"id": "EOA-12",
"name": "EOA 12",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c#code"
},
{
"name": "PlonkVerifierV1",
"isVerified": true,
"address": "eth:0x2293cd12e8564e8219d314b075867c2f66ac6941",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.10.3/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x2293cd12e8564e8219d314b075867c2f66ac6941#code"
},
{
"name": "PlonkVerifierPostEuclid-2",
"isVerified": true,
"address": "eth:0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/bundle/verifier.bin"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0x4AF7f3aBd780Fbd319c4356a219100A45F85DDb5",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4AF7f3aBd780Fbd319c4356a219100A45F85DDb5#code"
},
{
"name": "PlonkVerifierV0",
"isVerified": true,
"address": "eth:0x4B8Aa8A96078689384DAb49691E9bA51F9d2F9E1",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.9.5/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x4B8Aa8A96078689384DAb49691E9bA51F9d2F9E1#code"
},
{
"name": "PlonkVerifierGalileo",
"isVerified": true,
"address": "eth:0x749fC77A1a131632a8b88e8703E489557660C75e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/v0.7.1/verifier/verifier.bin"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x749fC77A1a131632a8b88e8703E489557660C75e#code"
},
{
"name": "PlonkVerifierV2",
"isVerified": true,
"address": "eth:0x8759E83b6570A0bA46c3CE7eB359F354F816c9a9",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://github.com/scroll-tech/scroll-prover/blob/main/release-v0.12.0/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8759E83b6570A0bA46c3CE7eB359F354F816c9a9#code"
},
{
"name": "PlonkVerifierV2-1",
"isVerified": true,
"address": "eth:0x8c1b52757b5c571ADcB5572E992679d4D48e30f7",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"references": [
{
"title": "Source Code",
"url": "https://github.com/scroll-tech/scroll-prover/blob/main/release-v0.13.0/evm_verifier.yul"
}
],
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x8c1b52757b5c571ADcB5572E992679d4D48e30f7#code"
},
{
"name": "ZkEvmVerifierPostFeynman",
"isVerified": true,
"address": "eth:0xa8d4702Aa5c09AF5dD1323E1842a43789021F485",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa8d4702Aa5c09AF5dD1323E1842a43789021F485#code"
},
{
"name": "PauseController",
"isVerified": true,
"address": "eth:0xb8f7eA9998530833Cbb7E0EF4f0D945957229D8b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x57e26d997852e7e94915e250446C3bf43F41d98D"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1753067003,
"transactionHash": "0x3decf466a6c0dfc015f7496b5737f597ae7f90073bce2e83a5660b5de64ffe4b",
"implementations": [
"eth:0x57e26d997852e7e94915e250446C3bf43F41d98D"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb8f7eA9998530833Cbb7E0EF4f0D945957229D8b#code"
},
{
"name": "L1USDCGateway",
"isVerified": true,
"address": "eth:0xbc4b3d9A89F187dBaA0D2E60985Ea1FFFa5247d2",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x4a5810F71B6836027c26C25bFF9708dFcD2B5432"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1770271583,
"transactionHash": "0x12105e604379a7b159368733c02a2186001c80c95599fb07c6e2cd36169baf70",
"implementations": [
"eth:0xFAf8f72e54d1089fa1882b6f597BfDFF59a8AFca"
]
},
{
"timestamp": 1770271919,
"transactionHash": "0x70c181a1601d8143c2cc34fe05dde3cf82acf27bf22173b08d58d93c7cd1190b",
"implementations": [
"eth:0x4a5810F71B6836027c26C25bFF9708dFcD2B5432"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xbc4b3d9A89F187dBaA0D2E60985Ea1FFFa5247d2#code"
},
{
"name": "ZkEvmVerifierPostEuclid-2",
"isVerified": true,
"address": "eth:0xc084a6De8b0F2742396572d6f110eC87ca9329bA",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xc084a6De8b0F2742396572d6f110eC87ca9329bA#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xEB803eb3F501998126bf37bB823646Ed3D59d072#code"
}
],
"scroll": [
{
"name": "ScrollOwner",
"isVerified": true,
"address": "scr:0x13D24a7Ff6F5ec5ff0e9C40Fc3B8C9c01c65437B",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Owner of all contracts in the system. It implements an extension of AccessControl that manages roles and functions allowed to be called by each role.\n* Roles:\n * **scNoDelay**: TimelockSCEmergencyScroll; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x13D24a7Ff6F5ec5ff0e9C40Fc3B8C9c01c65437B#code"
},
{
"name": "L2GatewayRouter",
"isVerified": true,
"address": "scr:0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x3ffe801a43D25d0288683237A848e14f73a226f0"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xaac223f86591581be57fc2296c6895a55d4f5488340e63577fa0b909e950747d",
"implementations": [
"scr:0xCaa86d504B7670f4BCe0B323c2AaF7002CF6C478"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x3ffe801a43D25d0288683237A848e14f73a226f0"
]
}
],
"description": "Contract used to withdraw ERC20 tokens on L2 and finalize deposit the tokens from L1.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A#code"
},
{
"name": "TimelockSCEmergencyScroll",
"isVerified": true,
"address": "scr:0x1f807E2E8ab2e61230a0A9C271F90242831278b4",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Security Council\n * **executor**: Scroll Multisig 1, Scroll Security Council; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Security Council\n * **timelockAdmin**: Scroll Security Council, TimelockSCEmergencyScroll; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x1f807E2E8ab2e61230a0A9C271F90242831278b4#code"
},
{
"name": "TimelockFast",
"isVerified": true,
"address": "scr:0x2b14d0E4b042d11C7e3Fc653132a2c82EFa7d376",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 1d. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 3\n * **executor**: Scroll Multisig 1; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Multisig 3\n * **timelockAdmin**: Scroll Multisig 3, TimelockFast; ultimately Scroll Multisig 3",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x2b14d0E4b042d11C7e3Fc653132a2c82EFa7d376#code"
},
{
"name": "AgoraGovernor",
"isVerified": true,
"address": "scr:0x2f3F2054776bd3C2fc30d750734A8F539Bb214f0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81"
],
"implementations": [
"scr:0xd74aD535faE370Ec0762ECe045EeB8970Be378F7"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1725377334,
"transactionHash": "0xb450d90f0a2025a932ff6a536cd7a0b30ce3c20e150b1f15d5f0216dd7824998",
"implementations": [
"scr:0x4dCEC34886014C1a2E1Ca742B5Bd7B9952B7f4A2"
]
},
{
"timestamp": 1729119781,
"transactionHash": "0x8a9a791104181ad063e9b300950ae9bff21d152e544c0313650398ab672db5ba",
"implementations": [
"scr:0xd74aD535faE370Ec0762ECe045EeB8970Be378F7"
]
}
],
"description": "Used to propose and manage onchain governance proposals.\n* Roles:\n * **admin**: ProxyAdmin\n * **manager**: GnosisSafeL2\n * **timelock**: TimelockSCSlow; ultimately Scroll Security Council",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x2f3F2054776bd3C2fc30d750734A8F539Bb214f0#code"
},
{
"name": "TimelockEmergency",
"isVerified": true,
"address": "scr:0xA77D19C1F2B06C9aeA9bE88C17B771a33892734f",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "A timelock with access control. The current minimum delay is 0s. Proposals that passed their minimum delay can be executed by the anyone.\n* Roles:\n * **canceller**: Scroll Multisig 2\n * **executor**: Scroll Multisig 1; ultimately EOA 5, EOA 6, EOA 7, EOA 8\n * **proposer**: Scroll Multisig 2\n * **timelockAdmin**: Scroll Multisig 2, TimelockEmergency; ultimately Scroll Multisig 2",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xA77D19C1F2B06C9aeA9bE88C17B771a33892734f#code"
},
{
"name": "Scroll USDC",
"isVerified": true,
"address": "scr:0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x72e2451a2da1535DBf0E7CB1e8C69F56E00A7B7b"
],
"immutable": false
},
"chain": "scroll",
"pastUpgrades": [],
"description": "Contract of the USDC token on Scroll.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4#code"
},
{
"name": "L2USDCGateway",
"isVerified": true,
"address": "scr:0x33B60d5Dd260d453cAC3782b0bDC01ce84672142",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x6E0618d128d2d861994DF7a725743F69b53C2804"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696919404,
"transactionHash": "0x53dca8476e9bb314c9ac8008f2e33460eea3cde5798aeaf1327feba43f2af2ee",
"implementations": [
"scr:0x02812d966B5cdeeb9aCBbBae51cA2d5d0f86A086"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x6E0618d128d2d861994DF7a725743F69b53C2804"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x33B60d5Dd260d453cAC3782b0bDC01ce84672142#code"
},
{
"name": "L2GatewayRouter",
"isVerified": true,
"address": "scr:0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x3808d0F2F25839E73e0Fbf711368fC4aE80c7763"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xa2062a4530b194a438bb9f9e87cdce59f70775a52e8336892364445847c43ca2",
"implementations": [
"scr:0x3808d0F2F25839E73e0Fbf711368fC4aE80c7763"
]
}
],
"description": "Counterpart to the L1GatewayRouter contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79#code"
},
{
"name": "L2MessageQueue",
"isVerified": true,
"address": "scr:0x5300000000000000000000000000000000000000",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Used to append messages to the L2MessageQueue from the L2ScrollMessenger.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x5300000000000000000000000000000000000000#code"
},
{
"name": "L2ERC1155Gateway",
"isVerified": true,
"address": "scr:0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0xAc92E88bAc1848A5FeEA5cf5A60e0abc3bD5Df94"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0x81ea4d0324828c7bd1a25754601e471f5707cf09af3f267fabf1aa43f2c45907",
"implementations": [
"scr:0x4a1b3D103801F0E1400046aE1948B9808e9b043b"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0xAc92E88bAc1848A5FeEA5cf5A60e0abc3bD5Df94"
]
}
],
"description": "Counterpart to the L1ERC1155Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc#code"
},
{
"name": "L2CustomERC20Gateway",
"isVerified": true,
"address": "scr:0x64CCBE37c9A82D85A1F2E74649b7A42923067988",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x1D40306EEfCF6EBd496d6048F6edf8892346e558"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0xcfb787fe58eeb8a0f1d7ebb1360968111e84cd6f64d929a3277a1fb5e232ccd3",
"implementations": [
"scr:0xc568B5dcCeBE52073Fa783EAdacDE0a30fA4c2c9"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x1D40306EEfCF6EBd496d6048F6edf8892346e558"
]
}
],
"description": "Counterpart to the L1CustomERC20Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x64CCBE37c9A82D85A1F2E74649b7A42923067988#code"
},
{
"name": "ScrollStandardERC20Factory",
"isVerified": true,
"address": "scr:0x66e5312EDeEAef6e80759A0F789e7914Fb401484",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Contract used to deploy ScrollStandardERC20 tokens for L2StandardERC20Gateway.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x66e5312EDeEAef6e80759A0F789e7914Fb401484#code"
},
{
"name": "L2ETHGateway",
"isVerified": true,
"address": "scr:0x6EA73e05AdC79974B931123675ea8F78FfdacDF0",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x191770c52309dff2c52FfEcf059ECC3862f5D721"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xf1505df71efbf7c12e1f48f4d17675e39d9797b1cac73ccbc6b610481313e750",
"implementations": [
"scr:0xE0a0509a66C509f55c85A20EB8c60676135081f7"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x191770c52309dff2c52FfEcf059ECC3862f5D721"
]
}
],
"description": "Contract of the L2ScrollMessenger contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x6EA73e05AdC79974B931123675ea8F78FfdacDF0#code"
},
{
"name": "L2WETHGateway",
"isVerified": true,
"address": "scr:0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x86c5CBfC03ffFC7faf5dfC7D781A9adfA9f47dD1"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0x9021d0900bd824774d2fa08d23a47d61a94d83563cfc81ca834b54bd690e0539",
"implementations": [
"scr:0x4966c037D653E31dB2c1F9727dd50dC679d51d65"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x86c5CBfC03ffFC7faf5dfC7D781A9adfA9f47dD1"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9#code"
},
{
"name": "L2ScrollMessenger",
"isVerified": true,
"address": "scr:0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x6fa66EeD8e8086f4c77204B5484D26F4e9AB7772"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917917,
"transactionHash": "0xced82475ea905f72d0cb7ed5731aa1c801d62249a92fbad6724dd3f223b83e96",
"implementations": [
"scr:0x485149079c421f9e4c465276BbaBB2fE0748d138"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x6fa66EeD8e8086f4c77204B5484D26F4e9AB7772"
]
}
],
"description": "ETH is pre-minted to this contract in the genesis block and released on Scroll whenever corresponding deposits are made on Ethereum.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC#code"
},
{
"name": "TimelockSCSlow",
"isVerified": true,
"address": "scr:0x79D83D1518e2eAA64cdc0631df01b06e2762CC14",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **timelockAdmin**: Scroll Security Council, TimelockSCSlow",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x79D83D1518e2eAA64cdc0631df01b06e2762CC14#code"
},
{
"name": "L2ERC721Gateway",
"isVerified": true,
"address": "scr:0x7bC08E1c04fb41d75F1410363F0c5746Eae80582",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x0894150DB82B912105F6D0907B5c69E72F1Df279"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696917920,
"transactionHash": "0x56af44f6a76a5788776564b7d36720e0e9f5cd4695653d0f83871259c1480325",
"implementations": [
"scr:0x71d7F43617CEaE99A43B7727151267A9919288F6"
]
},
{
"timestamp": 1708589325,
"transactionHash": "0x92f480d8c9796a31dbe6bcf1be126d1d2cd44d43b3672d578b21c9412a36e3d9",
"implementations": [
"scr:0x0894150DB82B912105F6D0907B5c69E72F1Df279"
]
}
],
"description": "Counterpart to the L1ERC721Gateway contract.\n* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x7bC08E1c04fb41d75F1410363F0c5746Eae80582#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x82e58e20Da6ecF4B07649C9B2237FAf27f02bC81#code"
},
{
"name": "L2LidoGateway",
"isVerified": true,
"address": "scr:0x8aE8f22226B9d789A36AC81474e633f8bE2856c9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0x8e34D07Eb348716a1f0a48A507A9de8a3A6DcE45"
],
"implementations": [
"scr:0x2B9beB2890DBeFC7cA25Af3164100d139B623C24"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1696920429,
"transactionHash": "0x516429c9961880b285703de647f4f884068a31be7341f8ed54b799d0a1fb3e7b",
"implementations": [
"scr:0xc568B5dcCeBE52073Fa783EAdacDE0a30fA4c2c9"
]
},
{
"timestamp": 1709625145,
"transactionHash": "0x64c28a89bdfa47a14998cdaaa4d85113e72c451e817a294930f93bdee4a3d598",
"implementations": [
"scr:0x2B9beB2890DBeFC7cA25Af3164100d139B623C24"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"upgradableBy": [
{
"name": "ProxyAdmin",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0x8aE8f22226B9d789A36AC81474e633f8bE2856c9#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xA76acF000C890b0DD7AEEf57627d9899F955d026#code"
},
{
"name": "L2PauseController",
"isVerified": true,
"address": "scr:0xAf9a61Aa21aB4a2fdbc88e81363D2e3D359749dd",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xA76acF000C890b0DD7AEEf57627d9899F955d026"
],
"implementations": [
"scr:0x105B9baaF75dA556c0206159481243163fAea1c9"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1753067278,
"transactionHash": "0x00b655406a3deb852f16f951030e57119d4b49d018f61718f4784f7fdc325880",
"implementations": [
"scr:0x105B9baaF75dA556c0206159481243163fAea1c9"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xAf9a61Aa21aB4a2fdbc88e81363D2e3D359749dd#code"
},
{
"name": "MasterMinter",
"isVerified": true,
"address": "scr:0xb5cE5F2277CFc547F48aA8263838FAEd424ae4BE",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": " Contract that uses controllers to manage minters for USDC on Scroll.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xb5cE5F2277CFc547F48aA8263838FAEd424ae4BE#code"
},
{
"name": "ScrollStandardERC20",
"isVerified": true,
"address": "scr:0xC7d86908ccf644Db7C69437D5852CedBC1aD3f69",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "Contract of the ERC20 standard token used by the ERC20 factory.\n",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xC7d86908ccf644Db7C69437D5852CedBC1aD3f69#code"
},
{
"name": "SCRToken",
"isVerified": true,
"address": "scr:0xd29687c813D741E2F938F4aC377128810E217b1b",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e"
],
"implementations": [
"scr:0x7600174E2a730a05da046fFA8Fc32DEC27FfdDC8"
]
},
"chain": "scroll",
"pastUpgrades": [
{
"timestamp": 1725336741,
"transactionHash": "0xeef949ed328baf69a9b8cb4e33f652f4f5047ef736aa53324acf6a00c8b64b31",
"implementations": [
"scr:0x7600174E2a730a05da046fFA8Fc32DEC27FfdDC8"
]
}
],
"description": "* Roles:\n * **admin**: ProxyAdmin",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xd29687c813D741E2F938F4aC377128810E217b1b#code"
},
{
"name": "ProxyAdmin",
"isVerified": true,
"address": "scr:0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "scroll",
"description": "* Roles:\n * **owner**: ScrollOwner",
"discoveryDrivenData": true,
"url": "https://scrollscan.com/address/0xde4972789EA56c4e7ac7Ba655EaFe73a30155F1e#code"
}
]
},
"escrows": [
{
"address": "0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"sinceTimestamp": 1696782323,
"tokens": "*",
"excludedTokens": [
"rsETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x85d366c40632340d9e835fdd0a1646909a56d60c680373f15f9d36878ff13029",
"implementations": [
"eth:0x9218732389D80f9b8723C3f32a38865B7a63564A"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x4015Fc868C06689ABEba4a9dC8FA43B804F6239c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0xfF8238be22cC583b3d69A76da9d84Da7788c0ee9"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"sinceTimestamp": 1696782323,
"tokens": [
"ETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0xcad9f31340db6aca3a5da0d704ee33a9b6c43a5b1be4406cc0ed33edbdd7c92e",
"implementations": [
"eth:0xAf2F898a8680cb52766ABE0588ebe6b9bFe37845"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x72981fD00087fF4F60aBFdE9f353cB1912A37fb6"
]
},
{
"timestamp": 1745301695,
"transactionHash": "0x2c09704f5717cd65e31ea854b8c6a5229b841fcabc5bcbbbb1117f13b9f60d21",
"implementations": [
"eth:0xc6326109E33465d6d61e4Cb7AFCe7B1bE7cfF868"
]
},
{
"timestamp": 1745564819,
"transactionHash": "0x783703d4e94de48edb75261149a540cbf7abb7ef077865c11080e622a508ab86",
"implementations": [
"eth:0x84791281EF5cb8Af5dCd4c122f7A42FeD38Fef5b"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x79b6eAbfFAa958FDF2Aa2Bf632878bD323DCbF69"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"sinceTimestamp": 1696782323,
"tokens": "*",
"contract": {
"isVerified": true,
"address": "eth:0xb2b10a289A229415a124EFDeF310C10cb004B6ff",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696782323,
"transactionHash": "0x12f874f5ca5a8dbdc5162db5179a4e4b753f4fcff8dab3f416bd1ce707ecb9ff",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x7F512E2E9dfC4552941D99A5b2405BBcF5781C2c"
]
},
{
"timestamp": 1755485183,
"transactionHash": "0x0b3de25cab280b3e304b63e11cde6b04ef75023d89bb08d0cb6d743e055daa7c",
"implementations": [
"eth:0x40c3C3dEa3B7D6d117E6713377144fD8EE6D6c97"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xb2b10a289A229415a124EFDeF310C10cb004B6ff#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"sinceTimestamp": 1696919351,
"tokens": [
"USDC"
],
"contract": {
"isVerified": true,
"address": "eth:0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696919351,
"transactionHash": "0x394b36151c614a7dfd048ddc1085046d2a50e5fd54af4c335d4a08aa79dd773d",
"implementations": [
"eth:0x6667123b5017AAB9945F73345848B82D7A953AA8"
]
},
{
"timestamp": 1708590023,
"transactionHash": "0xe378370b6bbc3d7f7278df88aa0e233b8f0fea3d77bef04593919b29d0094826",
"implementations": [
"eth:0x56ce8A8E8399f6cD5e7e4f549E8BfD673f2AfF5e"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0xf1AF3b23DE0A5Ca3CAb7261cb0061C0D779A5c7B#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"sinceTimestamp": 1696920095,
"tokens": [
"DAI"
],
"contract": {
"isVerified": true,
"address": "eth:0x67260A8B73C5B77B55c1805218A42A7A6F98F515",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xEB803eb3F501998126bf37bB823646Ed3D59d072"
],
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920095,
"transactionHash": "0x9776779beb429ea826a81a8c1c5f782933bfc8ce568afa1c6f2c2b866be2a3a5",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
}
],
"upgradableBy": [
{
"name": "Scroll Security Council",
"delay": "no"
}
],
"url": "https://etherscan.io/address/0x67260A8B73C5B77B55c1805218A42A7A6F98F515#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"sinceTimestamp": 1696920503,
"tokens": [
"wstETH"
],
"contract": {
"isVerified": true,
"address": "eth:0x6625C6332c9F91F2D27c304E729B86db87A3f504",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0xCC2C53556Bc75217cf698721b29071d6f12628A9"
],
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1696920503,
"transactionHash": "0xec5c25ea4b3e6d1dc9fa4cb7b7dd37a7a245a171cd3d16fb312628b5ecc9e841",
"implementations": [
"eth:0xBAd002fB13adFfcbCba57a4d4a43886f3F4C56cb"
]
},
{
"timestamp": 1709624939,
"transactionHash": "0xd755174ba6bacec85b68b77c9ec2a8b966955746be59a6efa932f47c37dda482",
"implementations": [
"eth:0xF4f2066EE72D62e3caF9678459149BA7FCf2262F"
]
}
],
"description": "Custom token escrow governed by Lido, using the canonical bridge for messaging.",
"url": "https://etherscan.io/address/0x6625C6332c9F91F2D27c304E729B86db87A3f504#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
},
{
"address": "0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"sinceTimestamp": 1713173507,
"tokens": [
"pufETH"
],
"contract": {
"isVerified": true,
"address": "eth:0xA033Ff09f2da45f0e9ae495f525363722Df42b2a",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x9eBf2f33526CD571f8b2ad312492cb650870CFd6"
],
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1713173507,
"transactionHash": "0xa2ff9275d6280e3cc298653463c5d8423c44cfbc66a52a9a138becbb106dc0f8",
"implementations": [
"eth:0xc4d46E8402F476F269c379677C99F18E22Ea030e"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xe03abd155a10591ed1fa4a1e2ad0d6042549bfd67769dbf6bd66d25743950905",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
},
{
"timestamp": 1713173507,
"transactionHash": "0xb367f770c26a72ea837a51c2c1fc84a3396914db1d58c020177b207e0f876a79",
"implementations": [
"eth:0x08D77Ea90DB9BF6c0d3f66E6b8394DA2E81B9a03"
]
}
],
"description": "Custom token escrow governed by puffer.fi, using the canonical bridge for messaging.",
"url": "https://etherscan.io/address/0xA033Ff09f2da45f0e9ae495f525363722Df42b2a#code"
},
"chain": "ethereum",
"includeInTotal": true,
"chainId": 1
}
],
"programHashes": [
{
"title": "Executable of the Scroll bundle program v0.5.2",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1’s perspective.",
"proverSystemProject": "openvmprover",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/0.5.2/crates/circuits/bundle-circuit",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.5.2` Commit hash should be `8f29f60cc73495e8586338a67433a812097427c4`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `bundle_exe_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x003ac2e012d8a7fb1495d94839fe36559b52fd6d60a532884c7558de2b88bf72"
},
{
"title": "Config of the Scroll bundle program v0.5.2",
"description": "This is not a ZK program, but a commitment to the config of Scroll bundle program (bundle leaf commitment). It also needs to be checked to verify the expected ZK verification.",
"proverSystemProject": "openvmprover",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/0.5.2/crates/circuits/bundle-circuit",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\n1. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.5.2` Commit hash should be `8f29f60cc73495e8586338a67433a812097427c4`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `circuits/bundle-circuit/bundle_leaf_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x009305f0762291e3cdd805ff6d6e81f1d135dbfdeb3ecf30ad82c3855dde7909"
},
{
"title": "Executable of the Scroll bundle program v0.7.1",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1’s perspective.",
"proverSystemProject": "openvmprover",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/v0.7.1/crates/circuits/bundle-circuit",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174).\n\nAlthough the guide below uses docker for reproducable builds, we failed to obtain the correct program hash on a MacOS machine. \nThe steps below work only for a Linux OS (e.g. Ubuntu).\n\n1. On a Linux machine, install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.7.1` Commit hash should be `85dc6bc56728b8eef22281fdb215c136d7b5bbda`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `circuits/bundle-circuit/bundle_leaf_commit.rs`. \n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x0062333dc88631be7af046cc8d3c24f346de172aa2030a28b445ab500889d297"
},
{
"title": "Executable of the Scroll bundle program v0.7.2",
"description": "Proves the correct execution of a bundle of Scroll L2 blocks, which is the unit of L2 state finalisation from L1’s perspective.",
"proverSystemProject": "openvmprover",
"programUrl": "https://github.com/scroll-tech/zkvm-prover/tree/v0.7.2/crates/circuits/bundle-circuit",
"verificationStatus": "successful",
"verificationSteps": "\nSteps due to the guide here: [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174). Although the guide below uses docker for reproducable builds, we failed to obtain the correct program hash on a MacOS machine. \nThe steps below work only for a Linux OS (e.g. Ubuntu).\n\n1. On a Linux machine, install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) and make sure it is running `docker ps`.\n2. Checkout the correct branch in [zkvm-prover](https://github.com/scroll-tech/zkvm-prover/tree/master) repo: `git checkout 0.7.2` Commit hash should be `3d7f13148dc99a84333c0ddc5cbcb16379ab9fb1`.\n3. Build the guest programs from the root repo dir: `make build-guest`. It will regenerate `circuits/bundle-circuit/bundle_exe_commit.rs`.\n4. Run `compress_commitment` function from [https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174](https://scrollzkp.notion.site/Prover-Architecture-Post-Euclid-1de7792d22af80e3a8ecdd03b5f02174) on the `COMMIT` array from the previous step to generate `digest_2` value. A sample rust implementation is: \n ```\nuse openvm_stark_sdk::p3_baby_bear::BabyBear;\nuse openvm_stark_sdk::p3_bn254_fr::Bn254Fr;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::FieldAlgebra;\nuse openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32;\n\nfn compress_commitment(commitment: &[u32; 8]) -> Bn254Fr {\n let order = Bn254Fr::from_canonical_u64(BabyBear::ORDER_U32 as u64);\n\n let mut base = Bn254Fr::ONE; // from PrimeCharacteristicRing\n let mut compressed = Bn254Fr::ZERO; // from PrimeCharacteristicRing\n\n for val in commitment {\n compressed += Bn254Fr::from_canonical_u64(*val as u64) * base;\n base *= order;\n }\n\n compressed\n} \n```\n ",
"hash": "0x0091609acb607118f47f756c0f4db9aad227420326cbda96f0303384e0bbf8e3"
}
],
"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:0x39854DF30b3482Ef546F68B8981Fae5A2C426eA4",
"eth:0x749fC77A1a131632a8b88e8703E489557660C75e"
]
}
+1 -1
{
"baseTimestamp": 1773160450,
"baseTimestamp": 1774953745,
"contractsDiscoDriven": true,
"hasDiscoUi": true,
"isDiscoDriven": true,
"permissionsDiscoDriven": true
}