Bridging to Blast
Bridge to Blast
Last updated
Bridge to Blast
Last updated
Bridging from the official Blast UI is the recommended and quickest way to get started.
Click on "Deposit" and choose ETH/USDC/USDT/DAI
Enter the amount you wish to bridge
Click on submit and sign the transaction in your Web3 wallet (MetaMask, Rabby, Trust Wallet, etc.)
Add the Blast network to your Web3 wallet by clicking on "ADD BLAST TO WALLET"
Wait 5-10 minutes for your funds to arrive on Blast L2
Send ETH to the L1StandardBridge. This is a normal transaction with no data, just sending value to the L1StandardBridgeProxy address: 0x697402166Fbf2F22E970df8a6486Ef171dbfc524
WETH must be unwrapped before depositing and rewrapping on the L2.
This guide will only cover bridging to/from EOAs. Using this guide to bridge from a smart contract will result in the funds being locked in an inaccessible address on the L2 (similar to Optimism). We’ll provide instructions on how to safely bridge from smart contracts in the near future.
Do NOT attempt to bridge stablecoins through the L1StandardBridge to the USDB address. Stablecoin deposits should go through the L1BlastBridge contract
The L1BlastBridgeProxy address that USD deposits should go to is: 0x3a05E5d33d7Ab3864D53aaEc93c8301C1Fa49115
The general steps to bridge supported USD stablecoins are:
Approve the L1BlastBridgeProxy to transfer the stablecoin you’d like to bridge over.
Call the bridgeERC20
function on the L1BlastBridge to bridge to the msg.sender
on the L2. It’s important that the msg.sender
is an EOA for the funds to be accessible on the other side.
“_local token” is DAI, USDC, or USDT, depending on what you’re bridging.
USDC 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
USDT 0xdac17f958d2ee523a2206206994597c13d831ec7
DAI 0x6B175474E89094C44Da98b954EedeAC495271d0F
“_remote token” is USDB in every case, which is at: 0x4300000000000000000000000000000000000003
Enter the USDT/USDC/DAI amount and add 6 zeros for USDT/USD and 18 zeros for DAI
"_minGasLimit" set as 500000
The extra data should be encoded as a uint256 USDB amount, and USDB has 18 decimals. This means the USDB value will look a lot larger than the USDC amount, which only has 6 decimals. Encoding 9.5 USDB as a uint256 gives you 0x00000000000000000000000000000000000000000000000083d6c7aab6360000
The USDC token address is 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
, and it has 6 decimals.
First, approve the L1BlastBridgeProxy to transfer your USDC. In this example, we’ll approve 9.5 USDC:
Go to the USDC contract
Click on "Contract"
Click on "Connect to Web3"
Click approve
Set the "spender" address to the L1BlastBridge contract 0x3a05E5d33d7Ab3864D53aaEc93c8301C1Fa49115
Set the value (add 6 zeros for USDC and USDT, and 18 zeros for DAI)
Click "Write" and approve the transaction in your Web3 wallet
Next, call the bridgeERC20
function. Critically, and in contrast to testnet, bridging USDC and USDT (but not DAI) requires specifying the minimum amount of USDB you’re willing to receive in the extra data field. This is because the conversion process for USDT is subject to slippage, so to protect yourself from MEV, you must specify how much slippage you’re willing to tolerate.
The extra data should be encoded as a uint256 USDB amount, and USDB has 18 decimals. This means the USDB value will look a lot larger than the USDC amount, which only has 6 decimals. Encoding 9.5 USDB as a uint256 gives you 0x00000000000000000000000000000000000000000000000083d6c7aab6360000
The localToken
address here is USDC.
Example function call bridgeERC20
Once you have successfully bridged to Blast, you can start trading at bfx.trade.