Combo Protocol addresses
Combo Protocol addresses
Cross Chain Communication
Name | Description | Address |
---|---|---|
batchInbox | This contract receives batches of transactions from the Sequencer on L1. | 0xff00000000000000000000000000000000009980 |
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 | 0x6df30535bbe94A533d9F1600E69A642AbB3E063F |
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 | 0x2E18990C92168f994064adAAEEF7C1970f9db824 |
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. MESSENGER Messenger contract on this domain.Change via upgrade 2.OTHER_BRIDGE Corresponding bridge on the other domain.Change via upgrade. |
L1ERC721Bridge | Proxy | 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. MESSENGER Messenger contract on this domain.Change via upgrade 2. OTHER_BRIDGE Corresponding 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_TIME The time between L2 blocks in seconds.Change via upgrade. 3. CHALLENGER The address of the challengerChange via upgrade. 4. PROPOSER The address of the proposerChange via upgrade. 5. FINALIZATION_PERIOD_SECONDS Minimum 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._owner openzepplin 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.BRIDGE Address 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_ORACLE Address of the L2OutputOracle contract.Change via upgrade. 2.SYSTEM_CONFIG Address of the SystemConfig contract.Change via upgrade. 3.GUARDIANA ddress that has the ability to pause and unpause withdrawals. |
PortalSender | - | The PortalSender is a simple intermediate contract that will transfer the balance of the L1StandardBridge to the OptimismPortal during the Bedrock migration. | 1.PORTAL Address 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._owner openzepplin standard ownable contact.Change via function(transferOwnership(address newOwner) |
SystemConfig | Proxy | 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._owner openzepplin standard OwnableUpgradeable contact.Change via function(transferOwnership(address newOwner)2.overhead Fixed L2 gas overhead. Used as part of the L2 fee calculation.Change via function3.scalar Dynamic L2 gas overhead. Used as part of the L2 fee calculation.Change via function4.batcherHash Identifier for the batcher.Change via function5.gasLimit L2 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) |
SystemDictator | Proxy | 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._owner openzepplin standard OwnableUpgradeable contact.Change via function(transferOwnership(address newOwner) |
L1 Contract Addresses
Name | Description | Mainnet Address | Testnet Address |
---|---|---|---|
L1CrossDomainMessenger | responsible for facilitating cross-domain communication on Layer 1 (L1) | 0x160856C9D1e847CE5c61d9BD85413ed9076cd82d | 0xeAfF0C8F991A0C55aC391d67Fbe8fe6Ce8588908 |
L1ERC721Bridge | This contract is likely an ERC-721 bridge that enables the transfer of non-fungible tokens (NFTs) between L1 and L2 | 0x913EEd29773685AC0A82b3Db991ea19762BA887a | 0x5F77588b3270ecFd3E65C26b79f739b681768484 |
L1ERC721BridgeProxy | A proxy contract that may provide additional functionalities for the L1ERC721Bridge contract. | 0x8bCCb7aC53209858AEdff9B42e32987644eF5483 | 0xba597cd2806A3f0426D521d1727dA8c718ee8a44 |
L1StandardBridge | A standard bridge contract that enables the transfer of fungible tokens between L1 and L2. | 0xF707C93C646A3E7e74903EF7A4D44Fd32638E9A7 | 0x06c627755C0f9856829CdCb2D46c858aE7E4D140 |
L2OutputOracle | This contract is an oracle on Layer 2 that provides output data to be used in smart contracts and applications | 0x86d51c7B91d20Dc6Cf034050c6b8767560C0900C | 0xde091A65ca3D6Fd30C62088FD31078A0306fb586 |
L2OutputOracleProxy | A proxy contract related to the L2OutputOracle, providing an interface or additional functionality. | 0xaFe8f839886fd8630bF1E1aF426B2FBbDa2a5757 | 0x9DD772cC8ccBE71c769C98A8F1De1898BcF9E83b |
Lib_AddressManager | This contract is a library used to manage addresses for various contracts in the system. | 0x1379Ad9D7e30f607a092F1Db77856cB9a277BD2c | 0xd87e97aB06fC55bf1efD5EeBeA9b17932f12EAea |
OptimismMintableERC20Factory | This is a factory contract for creating mintable ERC-20 tokens on the Layer 2 network. | 0xC7780Dc42Be70f2dF69f07CCa7CC32a931A3dd85 | 0x8244d4Ddc313026663B847285eb12D0168b59C3d |
OptimismMintableERC20FactoryProxy | A proxy contract related to the OptimismMintableERC20Factory, providing an interface or additional functionality. | 0x896642E9cCCFCC83D12a2d0b6d12b59d72d2bE00 | 0xEe70EcB8BcA25a69c34E6139139e021E2Ee8A9ea |
OptimismPortal | This contract serves as a portal or gateway for interacting with the Optimism Layer 2 network. | 0x75Cc011950856e69D55B991dc398e237728D1734 | 0x05CaDAd5934B8a867B755Aa36fC1411D2601a47a |
OptimismPortalProxy | A proxy contract related to the OptimismPortal, providing an interface or additional functionality. | 0x419dF125e0A712Db4B10209aC3055b58b840f1f4 | 0x279986e2E26CEd9bf7bcF49282398e74142c3760 |
PortalSender | This contract is involved in sending data or messages to a portal or gateway on the L1. | 0x5542eF046C27AE7F656EEf5259Ee5f7Bf4574C96 | 0x44051D50c7aCaf9ef4D693F2a5ec3889EE3D96Fc |
ProxyAdmin | This contract is responsible for managing proxy contracts, allowing for upgrades and access control. | 0xc9171355AFE7d53d596cDBA4195Dbb4e2C1845eE | 0x53d613e993Ff29A9bC8383204Ca5348F60143a60 |
Proxy__OVM_L1CrossDomainMessenger | This contract is a proxy for the L1CrossDomainMessenger contract on the Layer 2, enabling interaction with the Layer 2 contract from Layer 1. | 0xE655A2f23E7D01400Dd1BCAd49a118dcc89D1e9D | 0x0cf9129cc088296A0401B6003cD7D3380d10dAaE |
Proxy__OVM_L1StandardBridge | This is a proxy for the L1StandardBridge contract on the Layer 2 network, allowing interaction with the Layer 2 bridge from Layer 1. | 0xAF0721ecf5B087eF67731188925C83DBC02f46Fb | 0x261436b25a95449350C1EB11882f46F4140Dbf74 |
SystemConfig | This contract is responsible for managing system configurations, settings, or parameters in the protocol. | 0x9f8845f126f24Ddf6113bAcb47612cbE1e66bF7b | 0x553b6de561A1Aaad22e995e863dB76FCb6e8f702 |
SystemConfigProxy | A proxy contract related to the SystemConfig contract, providing an interface or additional functionality. | 0x19D9791F6f5df45FB4cED2ea0904e48A6f9e545c | 0xf3Aa3804332c2673C3ce33bD26E51076B02e5ca2 |
SystemDictator | This contract has a role in managing or governing certain aspects of the system or protocol. | 0xc87177790198B0a69fa7f19f20da19B7f48cc42F | 0x627DcF6dB67AD48cfabBDf87431454aA8c2D5D30 |
SystemDictatorProxy | A proxy contract related to the SystemDictator contract, providing an interface or additional functionality. | 0x09E7cBE49bF121FC300Da9ac0fdB5f9dFd2F7304 | 0x27fBbaA2fA8a65a39BF62aFd2bFa8d72D165Df49 |
L2 Contract Addresses
Contract Name | Address | Description | Important Variables | Introduced | Deprecated | Proxied |
---|---|---|---|---|---|---|
LegacyMessagePasser | 0x4200000000000000000000000000000000000000 | The contract stores commitments to withdrawal transactions before the Bedrock upgrade. | Legacy | Yes | Yes | |
L2ToL1MessagePasser | 0x4200000000000000000000000000000000000016 | The L2ToL1MessagePasser stores commitments to withdrawal transactions. | Bedrock | No | Yes | |
DeployerWhitelist | 0x4200000000000000000000000000000000000002 | DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. | Legacy | Yes | Yes | |
LegacyERC20ETH | 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 | 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. | Legacy | Yes | NO | |
WBNB | 0x4200000000000000000000000000000000000006 | WETH9 is the standard implementation of Wrapped Ether on Optimism. | string public name = "Wrapped Ether";string public symbol = "WETH"; uint8 public decimals = 18; | Legacy | No | No |
L2CrossDomainMessenger | 0x4200000000000000000000000000000000000007 | The L2CrossDomainMessenger is a high-level interface for message passing between L1 and L2 on the L2 side. | Legacy | No | Yes | |
L2StandardBridge | 0x4200000000000000000000000000000000000010 | 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. | Legacy | No | Yes | |
L2ERC721Bridge | 0x4200000000000000000000000000000000000014 | 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. | Legacy | No | Yes | |
L1BlockNumber | 0x4200000000000000000000000000000000000013 | 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. | Legacy | Yes | Yes | |
GasPriceOracle | 0x420000000000000000000000000000000000000F | After Bedrock, this contract now simply proxies the L1Block contractwhich has the values used to compute the L1 portion of the fee in its state. | Legacy | No | Yes | |
L1Block | 0x4200000000000000000000000000000000000015 | The L1Block was introduced in Bedrock and is responsible for maintaining L1 context in L2. This allows for L1 state to be accessed in L2. | Bedrock | No | Yes | |
ProxyAdmin | 0x4200000000000000000000000000000000000018 | 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._owner openzepplin standard ownable contact.Change via function(transferOwnership(address newOwner) | Bedrock | No | Yes |
SequencerFeeVault | 0x4200000000000000000000000000000000000011 | The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production. | 1.MIN_WITHDRAWAL_AMOUNT Minimum balance before a withdrawal can be triggered.Change via upgrade.2.RECIPIENT Wallet that will receive the fees on L1.Change via upgrade. | Legacy | No | Yes |
OptimismMintableERC20Factory | 0x4200000000000000000000000000000000000012 | The OptimismMintableERC20Factory is responsible for creating ERC20 contracts on L2 that can be used for depositing native L1 tokens into. | 1.BRIDGE Address of the StandardBridge on this chain.Change via upgrade. | Legacy | No | Yes |
OptimismMintableERC721Factory | 0x4200000000000000000000000000000000000017 | The OptimismMintableERC721Factory is responsible for creating ERC721 contracts on L2 that can be used for depositing native L1 NFTs into. | 1.BRIDGE Address of the StandardBridge on this chain.Change via upgrade.2.REMOTE_CHAIN_ID Chain ID for the remote network.Change via upgrade. | Bedrock | No | Yes |
BaseFeeVault | 0x4200000000000000000000000000000000000019 | 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_AMOUNT Minimum balance before a withdrawal can be triggered.Change via upgrade.2.RECIPIENT Wallet that will receive the fees on L1.Change via upgrade. | Bedrock | No | Yes |
L1FeeVault | 0x420000000000000000000000000000000000001a | 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_AMOUNT Minimum balance before a withdrawal can be triggered.Change via upgrade.2.RECIPIENT Wallet that will receive the fees on L1.Change via upgrade. | Bedrock | No | Yes |
GovernanceToken | 0x4200000000000000000000000000000000000042 | Legacy | No | No |