📋

Contract Registry

 
1) Bedrock Contracts
TitleAddressEtherscan (L1)Source Code
L2OutputOracleㅤㅤGitHub Link
ㅤㅤㅤㅤ
 
 
 
2) Current Contract Use
Ethereum EOAs
TitleAddressEtherscan (L1)
Optimism:Sequencer0x6887246668a3b87f54deb3b94ba47a6f63f32985Etherscan Link
Optimism:StateRootProposer0x473300df21d047806a082244b417f96b32f13a33Etherscan Link
Contract Deployer 10x9996571372066a1545d3435c6935e3f9593a7ef5Etherscan Link
Ethereum Contracts
L1 ContractAddressEtherscan (L1)Source CodeABI Link
Bond Manager (verification) (not fully used yet)0xcd626E1328b41fCF24737F137BcD4CE0c32bc8d1Etherscan LinkGitHub Linkã…¤
Canonical Transaction ChaIn0x5e4e65926ba27467555eb562121fac00d24e9dd2Etherscan LinkGitHub Linkã…¤
ChainStorageContainer-CTC-batches0xD16463EF9b0338CE3D73309028ef1714D220c024Etherscan LinkGitHub Linkã…¤
ChainStorageContainer-SCC-batches (its the same contract as above except deployed as a different contract)0xb0ddFf09c4019e31960de11bD845E836078E8EbEEtherscan LinkGitHub Linkã…¤
Lib_AddressManager (library)0xdE1FCfB0851916CA5101820A69b13a4E276bd81FEtherscan LinkGitHub Linkã…¤
Proxy__OVM_L1CrossDomainMessenger (proxy to messaging contract)0x25ace71c97b33cc4729cf772ae268934f7ab5fa1Etherscan LinkGitHub Link to contract proxied toã…¤
Proxy_OVM_L1StandardBridge (proxy to messaging contract) (holds all the bridge assets)0x99c9fc46f92e8a1c0dec1b1747d010903e884be1Etherscan LinkGitHub Link to contract proxied toã…¤
State Commitment Chain0xbe5dab4a2e9cd0f27300db4ab94bee3a233aeb19Etherscan LinkGitHub Linkã…¤
TeleportrDeposit0x52ec2f3d7c5977a8e558c8d9c6000b615098e8fcEtherscan LinkGitHub 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:
      1. Stores transaction batches for the Canonical Transaction Chain.
      1. Stores queued transactions for the Canonical Transaction Chain.
      1. 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 ContractAddressEtherscan (L2)Source Code
Gas Price Oracle (predeploy)0x4200000000000000000000000000000000000002Etherscan LinkGitHub Link
L2 to L1 Message Parser (predeploy)0x4200000000000000000000000000000000000000Etherscan LinkGitHub Link
L2 Cross Domain Messenger (messaging)0x4200000000000000000000000000000000000007Etherscan LinkGitHub Link
L2 Standard Bridge (messaging) (works together with an L1 bridge contract)0x4200000000000000000000000000000000000010Etherscan LinkGitHub Link
OVM Sequencer Fee Vault (predeploy)0x4200000000000000000000000000000000000011Etherscan LinkGitHub Link
L2 Standard Token Factory (messaging)0x4200000000000000000000000000000000000012Etherscan LinkGitHub Link
OVM ETH (predeploy)0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000Etherscan LinkGitHub Link
WETH9 (predeploy)0x4200000000000000000000000000000000000006Etherscan LinkGitHub Link
ㅤDeprecated/Retired Contractsㅤㅤ
Deployer Whitelist (predeploy used long ago)0x4200000000000000000000000000000000000002Etherscan LinkGitHub Link
OVM L1 Block Number (?)0x4200000000000000000000000000000000000013Etherscan LinkNone?
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.
 
References
 
📋

Contract Registry

 
1) Bedrock Contracts
TitleAddressEtherscan (L1)Source Code
L2OutputOracleㅤㅤGitHub Link
ㅤㅤㅤㅤ
 
 
 
2) Current Contract Use
Ethereum EOAs
TitleAddressEtherscan (L1)
Optimism:Sequencer0x6887246668a3b87f54deb3b94ba47a6f63f32985Etherscan Link
Optimism:StateRootProposer0x473300df21d047806a082244b417f96b32f13a33Etherscan Link
Contract Deployer 10x9996571372066a1545d3435c6935e3f9593a7ef5Etherscan Link
Ethereum Contracts
L1 ContractAddressEtherscan (L1)Source CodeABI Link
Bond Manager (verification) (not fully used yet)0xcd626E1328b41fCF24737F137BcD4CE0c32bc8d1Etherscan LinkGitHub Linkã…¤
Canonical Transaction ChaIn0x5e4e65926ba27467555eb562121fac00d24e9dd2Etherscan LinkGitHub Linkã…¤
ChainStorageContainer-CTC-batches0xD16463EF9b0338CE3D73309028ef1714D220c024Etherscan LinkGitHub Linkã…¤
ChainStorageContainer-SCC-batches (its the same contract as above except deployed as a different contract)0xb0ddFf09c4019e31960de11bD845E836078E8EbEEtherscan LinkGitHub Linkã…¤
Lib_AddressManager (library)0xdE1FCfB0851916CA5101820A69b13a4E276bd81FEtherscan LinkGitHub Linkã…¤
Proxy__OVM_L1CrossDomainMessenger (proxy to messaging contract)0x25ace71c97b33cc4729cf772ae268934f7ab5fa1Etherscan LinkGitHub Link to contract proxied toã…¤
Proxy_OVM_L1StandardBridge (proxy to messaging contract) (holds all the bridge assets)0x99c9fc46f92e8a1c0dec1b1747d010903e884be1Etherscan LinkGitHub Link to contract proxied toã…¤
State Commitment Chain0xbe5dab4a2e9cd0f27300db4ab94bee3a233aeb19Etherscan LinkGitHub Linkã…¤
TeleportrDeposit0x52ec2f3d7c5977a8e558c8d9c6000b615098e8fcEtherscan LinkGitHub 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:
      1. Stores transaction batches for the Canonical Transaction Chain.
      1. Stores queued transactions for the Canonical Transaction Chain.
      1. 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 ContractAddressEtherscan (L2)Source Code
Gas Price Oracle (predeploy)0x4200000000000000000000000000000000000002Etherscan LinkGitHub Link
L2 to L1 Message Parser (predeploy)0x4200000000000000000000000000000000000000Etherscan LinkGitHub Link
L2 Cross Domain Messenger (messaging)0x4200000000000000000000000000000000000007Etherscan LinkGitHub Link
L2 Standard Bridge (messaging) (works together with an L1 bridge contract)0x4200000000000000000000000000000000000010Etherscan LinkGitHub Link
OVM Sequencer Fee Vault (predeploy)0x4200000000000000000000000000000000000011Etherscan LinkGitHub Link
L2 Standard Token Factory (messaging)0x4200000000000000000000000000000000000012Etherscan LinkGitHub Link
OVM ETH (predeploy)0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000Etherscan LinkGitHub Link
WETH9 (predeploy)0x4200000000000000000000000000000000000006Etherscan LinkGitHub Link
ㅤDeprecated/Retired Contractsㅤㅤ
Deployer Whitelist (predeploy used long ago)0x4200000000000000000000000000000000000002Etherscan LinkGitHub Link
OVM L1 Block Number (?)0x4200000000000000000000000000000000000013Etherscan LinkNone?
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.
 
References
Â