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)
SuperchainETHBridge
The SuperchainETHBridge
is a predeploy contract that facilitates cross-chain ETH bridging within the Superchain interop cluster. It serves as an abstraction layer on top of the L2toL2CrossDomainMessenger
specifically designed for native ETH transfers between chains. The contract integrates with the ETHLiquidity
contract to manage native ETH liquidity across chains, ensuring seamless cross-chain transfers of native ETH.
- Address:
0x4200000000000000000000000000000000000024
- Specs:
SuperchainETHBridge
(opens in a new tab) - Source code:
SuperchainETHBridge
(opens in a new tab)
ETHLiquidity
The ETHLiquidity
contract is a predeploy that manages native ETH liquidity for cross-chain transfers within the Superchain interop set. It works in conjunction with the SuperchainETHBridge
to facilitate the movement of ETH between chains without requiring modifications to the EVM to generate new ETH.
The contract is initialized with a very large balance (type(uint248).max wei) to ensure it can handle all legitimate minting operations. This design allows the SuperchainETHBridge
to have a guaranteed source of ETH liquidity on each chain, which is essential for the cross-chain ETH transfer mechanism.
- Address:
0x4200000000000000000000000000000000000025
- Specs:
ETHLiquidity
(opens in a new tab) - Source code:
ETHLiquidity
(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 SuperchainERC20
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)
Next steps
- Build a revolutionary app that uses multiple blockchains within the Superchain
- Deploy a SuperchainERC20 to the Superchain
- Learn how messages get from one chain to another chain