We recommend checking back regularly for the most up-to-date information.
Interoperability predeploys
The following predeploys have been added to enable interoperability. Predeployed smart contracts exist at predetermined addresses, coming from the genesis state. They're similar to precompiles (opens in a new tab) but run directly in the EVM instead of running as native code.
CrossL2Inbox
The CrossL2Inbox
is the system predeploy for cross chain messaging.
Anyone can trigger the execution or validation of cross chain messages, on behalf of any user.
- Address:
0x4200000000000000000000000000000000000022
- Specs:
CrossL2Inbox
(opens in a new tab) - Source code:
CrossL2Inbox
(opens in a new tab)
L2ToL2CrossDomainMessenger
The L2ToL2CrossDomainMessenger
is a higher level abstraction on top of the CrossL2Inbox
that provides general message passing.
It's utilized for secure ERC20 token transfers between L2 chains.
Messages sent through the L2ToL2CrossDomainMessenger
on the source chain receive both replay protection and domain binding (the executing transaction can only be valid on a single chain).
- Address:
0x4200000000000000000000000000000000000023
- Specs:
L2ToL2CrossDomainMessenger
(opens in a new tab) - Source code:
L2ToL2CrossDomainMessenger
(opens in a new tab)
SuperchainTokenBridge
The SuperchainTokenBridge
is an abstraction on top of the L2toL2CrossDomainMessenger
that facilitates token bridging using interop. It has mint and burn rights over OptimismSuperchainERC20
tokens, as described in the token bridging spec (opens in a new tab).
- Address:
0x4200000000000000000000000000000000000028
- Specs:
SuperchainTokenBridge
(opens in a new tab) - Source code:
SuperchainTokenBridge
(opens in a new tab)