Contract Registry
Â
1) Bedrock Contracts
Â
Â
Â
2) Current Contract Use
Ethereum EOAs
Title | Address | Etherscan (L1) |
Optimism:Sequencer | 0x6887246668a3b87f54deb3b94ba47a6f63f32985 | Etherscan Link |
Optimism:StateRootProposer | 0x473300df21d047806a082244b417f96b32f13a33 | Etherscan Link |
Contract Deployer 1 | 0x9996571372066a1545d3435c6935e3f9593a7ef5 | Etherscan Link |
Ethereum Contracts
L1 Contract | Address | Etherscan (L1) | Source Code | ABI Link |
Bond Manager (verification) (not fully used yet) | 0xcd626E1328b41fCF24737F137BcD4CE0c32bc8d1 | Etherscan Link | GitHub Link | ã…¤ |
Canonical Transaction ChaIn | 0x5e4e65926ba27467555eb562121fac00d24e9dd2 | Etherscan Link | GitHub Link | ã…¤ |
ChainStorageContainer-CTC-batches | 0xD16463EF9b0338CE3D73309028ef1714D220c024 | Etherscan Link | GitHub Link | ã…¤ |
ChainStorageContainer-SCC-batches (its the same contract as above except deployed as a different contract) | 0xb0ddFf09c4019e31960de11bD845E836078E8EbE | Etherscan Link | GitHub Link | ã…¤ |
Lib_AddressManager (library) | 0xdE1FCfB0851916CA5101820A69b13a4E276bd81F | Etherscan Link | GitHub Link | ã…¤ |
Proxy__OVM_L1CrossDomainMessenger (proxy to messaging contract) | 0x25ace71c97b33cc4729cf772ae268934f7ab5fa1 | Etherscan Link | GitHub Link to contract proxied to | ã…¤ |
Proxy_OVM_L1StandardBridge (proxy to messaging contract) (holds all the bridge assets) | 0x99c9fc46f92e8a1c0dec1b1747d010903e884be1 | Etherscan Link | GitHub Link to contract proxied to | ã…¤ |
State Commitment Chain | 0xbe5dab4a2e9cd0f27300db4ab94bee3a233aeb19 | Etherscan Link | GitHub Link | ã…¤ |
TeleportrDeposit | 0x52ec2f3d7c5977a8e558c8d9c6000b615098e8fc | Etherscan Link | GitHub Link | ã…¤ |
Bond Manager Contract
- This contract currently is a stub of the real BondManager that does nothing but allow the OVM Proposer to submit state root batches.
See the only function of the contract:
function isCollateralized(address _who) public view returns (bool) {
// Only authenticate sequencer to submit state root batches.
Â
Canonical Transaction Chain Contract
- The CTC contract is an append-only log of transactions which must be applied to the rollup state.
- It defines the ordering of rollup transactions by writing them to the ‘CTC:batches’ instance of the Chain Storage Container.
- The CTC also allows any account to
enqueue
an L2 transaction, which will require that the Sequencer will eventually append it to the rollup state.
ChainStorageContainer Contract (CTC-batches)
ChainStorageContainer Contract (SCC-batches)
- The Chain Storage Container provides its owner contract with read, write and delete functionality. This provides gas efficiency gains by enabling it to overwrite storage slots which can no longer be used in a fraud proof due to the fraud window having passed, and the associated chain state or transactions being finalised
- 3 distinct Chain Storage Containers will be deployed on Layer 1:
- Stores transaction batches for the Canonical Transaction Chain.
- Stores queued transactions for the Canonical Transaction Chain.
- Stores chain state batches for the State Commitment Chain.
Â
Lib Address Manager Contract
- Retrieve or change the address associated with a particular name
Â
OVM L1 Cross Domain Messenger Contract
- The L1 Cross Domain Messenger contract sends messages from L1 to L2 and relays messages from L2 onto L1.
- In the event that a message sent from L1 to L2 is rejected for exceeding the L2 epoch gas limit, it can be resubmitted via this contract’s
replay
function.
L1 Standard Bridge Contract
- The L1 ETH and ERC20 Bridge is a contract which stores deposited L1 funds and standard tokens that are in use on L2.
- It synchronises a corresponding L2 bridge, informing it of deposits and listening to it for newly finalised deposits.
State Commitment Chain Contract
- The SCC contract contains a list of proposed state roots which Proposers assert to be a result of each transaction in the CTC.
- Elements here have a 1:1 correspondence with transactions in the CTC, and should be the unique state root calculated off-chain by applying the canonical transactions one by one.
TeleportrDeposit Contract
- Accepts deposits that will be disbursed to the sender’s address on L2.
Â
Optimism (Layer 2 Contracts)
L2 Contract | Address | Etherscan (L2) | Source Code |
Gas Price Oracle (predeploy) | 0x4200000000000000000000000000000000000002 | Etherscan Link | GitHub Link |
L2 to L1 Message Parser (predeploy) | 0x4200000000000000000000000000000000000000 | Etherscan Link | GitHub Link |
L2 Cross Domain Messenger (messaging) | 0x4200000000000000000000000000000000000007 | Etherscan Link | GitHub Link |
L2 Standard Bridge (messaging) (works together with an L1 bridge contract) | 0x4200000000000000000000000000000000000010 | Etherscan Link | GitHub Link |
OVM Sequencer Fee Vault (predeploy) | 0x4200000000000000000000000000000000000011 | Etherscan Link | GitHub Link |
L2 Standard Token Factory (messaging) | 0x4200000000000000000000000000000000000012 | Etherscan Link | GitHub Link |
OVM ETH (predeploy) | 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 | Etherscan Link | GitHub Link |
WETH9 (predeploy) | 0x4200000000000000000000000000000000000006 | Etherscan Link | GitHub Link |
ã…¤ | Deprecated/Retired Contracts | ã…¤ | ã…¤ |
Deployer Whitelist (predeploy used long ago) | 0x4200000000000000000000000000000000000002 | Etherscan Link | GitHub Link |
OVM L1 Block Number (?) | 0x4200000000000000000000000000000000000013 | Etherscan Link | None? |
L2 Cross Domain Messenger Contract
- Sends messages from L2 to L1, and is an entry point for L2 messages sent via the L1 Cross Domain Manager.
L2 Standard Bridge Contract
- This contract works together with the L1 Standard Bridge to enable ETH and ERC20 transfers between L1 and L2.
- This contract acts as a minter for new tokens when it hears about deposits into the L1 Standard Bridge.
- This contract acts as a burner of tokens intended for withdrawal, informing the L1 bridge to release L1 funds.
OVM Sequencer Fee Vault Contract
- This is a simple holding contract for fees paid to the permissioned Sequencer operated by Optimism.
- It will be replaced in the future (but since we are operating with a single centralised sequencer, it is okay for now)
L2 Standard Token Factory Contract
- This is a factory contract for creating standard L2 token representations of L1 ERC20s compatible with and working on the standard bridge.
OVM ETH Contract
- The ETH predeploy provides an ERC20 interface for ETH deposited to L2. Note that unlike on L1, L2 accounts do not have a balance field.
WETH9 Contract
- Looks like a custom wrapped Ether contract for L2. Not sure why the standard token factory could not be used for it?
OVM Deployer Whitelist Contract (deprecated)
- A temporary pre-deploy used to provide additional safety during the initial phases of Optimism mainnet rollout.
- The last transaction sent to it was to enable arbitrary contract deployment on Optimism mainnet thus making this whitelist contract obsolete.
OVM L1 Block Number Contract (deprecated)
- The contract code is simply a fallback method that reverts.
- Must have been just for testing deployment. Not used for anything and source code not available for it.
Â