This contract receives batches of transactions from the Sequencer on L1.
0xff00000000000000000000000000000000000000
batchSender
This contract is the authorized sender of batches to the batchInbox. It can be changed by the SystemConfig contract, which governs the parameters of the opBNB network
0xbbcc32ea49d9b6d44faf32e6b1bfc1a6c775163c
outputProposer
This contract proposes outputs for the opBNB nodes to execute. It receives inputs from the batchInbox and other sources, and generates outputs that are consistent with the opBNB protocol rules
0x39384d0d67aed93eb43dc091c81e707f55980ece
Contract Name
Proxy Type
Description
Important Variables
L1CrossDomainMessenger
ResolvedDelegateProxy
High-level interface for sending messages to and receiving messages from Optimism
PORTAL;Address of the OptimismPortal.Change via upgrade
L1StandardBridge
L1ChugSplashProxy
The standard bridges are responsible for allowing cross domain ETH and ERC20 token transfers.
1. MESSENGERMessenger contract on this domain.Change via upgrade 2.OTHER_BRIDGECorresponding bridge on the other domain.Change via upgrade.
The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism.
1. MESSENGERMessenger contract on this domain.Change via upgrade 2. OTHER_BRIDGECorresponding bridge on the other domain.Change via upgrade.
L2OutputOracle
Proxy
Stores commitments to the state of Optimism which can be used by contracts on L1 to access L2 state
1. SUBMISSION_INTERVAL The interval in L2 blocks at which checkpoints must be submittedChange via upgrade. 2. L2_BLOCK_TIMEThe time between L2 blocks in seconds.Change via upgrade. 3. CHALLENGERThe address of the challengerChange via upgrade. 4. PROPOSERThe address of the proposerChange via upgrade. 5. FINALIZATION_PERIOD_SECONDSMinimum time (in seconds) that must elapse before a withdrawal can be finalized.Change via upgrade.
AddressManager
-
AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.
1._owneropenzepplin standard ownable contact.Change via function(transferOwnership(address newOwner)
OptimismMintableERC20Factory
Proxy
OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20contracts on the network it's deployed to. Simplifies the deployment process for userswho may be less familiar with deploying smart contracts.
1.BRIDGEAddress of the StandardBridge on this chain.Change via upgrade.
OptimismPortal
Proxy
The OptimismPortal is a low-level contract responsible for passing messages between L1and L2.
1.L2_ORACLEAddress of the L2OutputOracle contract.Change via upgrade. 2.SYSTEM_CONFIGAddress of the SystemConfig contract.Change via upgrade. 3.GUARDIANAddress that has the ability to pause and unpause withdrawals.
The PortalSender is a simple intermediate contract that will transfer the balance of the L1StandardBridge to the OptimismPortal during the Bedrock migration.
1.PORTALAddress of the OptimismPortal contract.Change via upgrade.
ProxyAdmin
-
Contract that can upgrade L1 contracts. It has backwards compatibility logic to workwith the various types of proxies that have been deployed by Optimism in the past.
1._owneropenzepplin standard ownable contact.Change via function(transferOwnership(address newOwner)
The SystemConfig contract is used to manage configuration of an Optimism network. All configuration is stored on L1 and picked up by L2 as part of the derviation of the L2chain.
1._owneropenzepplin standard OwnableUpgradeable contact.Change via function(transferOwnership(address newOwner) 2.overheadFixed L2 gas overhead. Used as part of the L2 fee calculation.Change via function 3.scalarDynamic L2 gas overhead. Used as part of the L2 fee calculation.Change via function 4.batcherHashIdentifier for the batcher.Change via function 5.gasLimitL2 block gas limit. 6.*UNSAFE_BLOCK_SIGNER_SLOT*Storage slot that the unsafe block signer is stored at.Can't change via function, but the unsafe_block_singer can be updated via function(setUnsafeBlockSigner)
The SystemDictator is responsible for coordinating the deployment of a full Bedrocksystem. The SystemDictator is designed to support both fresh network deployments andupgrades to existing pre-Bedrock systems.
1._owneropenzepplin standard OwnableUpgradeable contact.Change via function(transferOwnership(address newOwner)
LegacyERC20ETH is a legacy contract that held ETH balances before the Bedrock upgrade. All ETH balances held within this contract were migrated to the state trie as part ofthe Bedrock upgrade.
The L2StandardBridge is a higher level API built on top of the L2CrossDomainMessenger that gives a standard interface for sending ETH or ERC20 tokens across domains.
The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism.
The L1BlockNumber returns the last known L1 block number. This contract was introduced in the legacy system and should be backwards compatible by calling out to the L1Block contract under the hood.
The L1Blockopen in new window was introduced in Bedrock and is responsible for maintaining L1 context in L2. This allows for L1 state to be accessed in L2.
The ProxyAdmin is the owner of all of the proxy contracts set at the predeploys. It is itself behind a proxy. The owner of the ProxyAdmin will have the ability to upgrade any of the other predeploy contracts.
1._owneropenzepplin standard ownable contact.Change via function(transferOwnership(address newOwner)
The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production.
1.MIN_WITHDRAWAL_AMOUNTMinimum balance before a withdrawal can be triggered.Change via upgrade. 2.RECIPIENTWallet that will receive the fees on L1.Change via upgrade.
The BaseFeeVault predeploy receives the basefees on L2. The basefee is not burnt on L2 like it is on L1. Once the contract has received a certain amount of fees, the ETH can be withdrawn to an immutable address on L1.
1.MIN_WITHDRAWAL_AMOUNTMinimum balance before a withdrawal can be triggered.Change via upgrade. 2.RECIPIENTWallet that will receive the fees on L1.Change via upgrade.
The L1FeeVault predeploy receives the L1 portion of the transaction fees. Once the contract has received a certain amount of fees, the ETH can be withdrawn to an immutable address on L1.
1.MIN_WITHDRAWAL_AMOUNTMinimum balance before a withdrawal can be triggered.Change via upgrade. 2.RECIPIENTWallet that will receive the fees on L1.Change via upgrade.