Whitechain settles on Ethereum via the OP Stack canonical bridge. Assets and arbitrary messages move between L1 (Ethereum) and L2 (Whitechain) through Optimism-standard bridge contracts. It is usable only for L1-origin ERC-20 and ERC-721 tokens (NFTs). Whitechain runs in OP Stack custom gas token mode, where the native token is WBT instead of ETH, and the canonical bridge has no deposit or withdrawal path for the native token in that mode, on Testnet or Mainnet. That means you cannot transfer WBT or ETH using the canonical bridge.
Please note that there is no UI for the OP Stack canonical bridge. You can make a transfer using the contracts that are mentioned in this article.
The contract addresses below are for the testnet only. Mainnet addresses will be added once mainnet is live.
| Contract | L1 | L2 |
| L1StandardBridge | 0x0c50be539ab5d72d226038928f2eb25100899ded | n/a |
| OptimismPortal | 0xff9b597b0781457ae6aa7256ca5ed5839bf7d0c3 | n/a |
| DisputeGameFactoryProxy | 0xfaa2faa8912c069c01abc169c33713c79027c833 | n/a |
| L1CrossDomainMessengerProxy | 0x547967f45d19dc4ca0a056ba525afe99bda18a88 | n/a |
| L1Erc721BridgeProxy | 0x1e419fc5575bbd6d352582e9d8073918d79f0c5b | n/a |
| SystemConfigProxy | 0x9328ea869949f33c57b7b680b6edb58769e2181c | n/a |
| OptimismMintableERC20FactoryProxy | 0x5898f6c319842a379799d634c6ed2da960a42b9b | n/a |
| AnchorStateRegistryProxy | 0x4da165963420deeb0788f338b7a1df41e535a32c | n/a |
| EthLockboxProxy | 0x7becd75f3e1ce952cb63fd7ef5220f205a6e1469 | n/a |
| SuperchainConfigProxy | 0x11854d3146a460d095943c3231f2755ba342426e | n/a |
| L2StandardBridge | n/a | 0x4200000000000000000000000000000000000010 |
| L2CrossDomainMessenger | n/a | 0x4200000000000000000000000000000000000007 |
| OptimismMintableERC20Factory | n/a | 0x4200000000000000000000000000000000000012 |
| L2ERC721Bridge | n/a | 0x4200000000000000000000000000000000000014 |
| OptimismMintableERC721Factory | n/a | 0x4200000000000000000000000000000000000017 |
Deposits (L1 to L2)
A deposit takes about 2 minutes. You initiate the deposit on L1, and the op-node automatically finalizes it on L2. No further action is required on L2 once the deposit is confirmed. ERC-20 tokens use the L1StandardBridge.depositERC20 function. Please make sure that the token is already deployed on L2. To transfer NFTs, you should use L1Erc721BridgeProxy.bridgeERC721 function.
When you should NOT use the canonical bridge
The canonical bridge is the safest and most trust-minimized path between L1 and L2, but it does not fit every use case.
- Need to exit to L1 quickly (mainnet). The dispute-resolution period (minimum 7 days on mainnet) is mandatory and cannot be skipped. The Portal bridge offers a faster, centralized transfer;
- Bridging USDC. Whitechain already has a canonical USDC.e representation; a second wrapped pairing created via the factory would fragment liquidity;
- Bridging ETH. Whitechain runs in custom gas token mode, so ETH is not a supported deposit asset;
- Token has transfer fees or rebasing logic. The standard bridge does not account for balance changes during transfer. In this case, we recommend using a custom bridge designed for your token;
- Token has a blocklist or pausable transfer. Finalization may revert permanently, leaving funds stuck. You should also use the custom bridge;
- L2-native NFTs going to L1. The standard L2ERC721Bridge only supports L1-origin NFTs;
- Very large amounts with time sensitivity. Funds are locked for the entire dispute-resolution period. You can use a third-party bridge.