Bridging to Blast

Bridge to Blast

Bridging from the official Blast UI is the recommended and quickest way to get started.

  1. Click on "Deposit" and choose ETH/USDC/USDT/DAI

  2. Enter in the amount you wish to bridge

  3. Click on submit and sign the transaction in your Web3 wallet (MetaMask, Rabby, Trust Wallet etc.)

  4. Add the Blast network to your Web3 wallet by clicking on "ADD BLAST TO WALLET"

  5. Wait 5-10mins for your funds to arrive on Blast L2

Bridging ETH (Ethereum) -> ETH (Blast)

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 rewrapped on the L2.

Bridging USD Stablecoins (DAI, USDC, USDT) with Contract Calls

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 are:

  1. Approve the L1BlastBridgeProxy to transfer the stablecoin you’d like to bridge over.

  2. 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.

    1. “_local token” is DAI, USDC, or USDT, depending on what you’re bridging.

      1. USDC 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48

      2. USDT 0xdac17f958d2ee523a2206206994597c13d831ec7

      3. DAI 0x6B175474E89094C44Da98b954EedeAC495271d0F

    2. “_remote token” is USDB in every case, which is at: 0x4300000000000000000000000000000000000003

    3. Enter the USDT/USDC/DAI amount and add 6 zeros for USDT/USD and 18 zeros for DAI

    4. "_minGasLimit" set as 500000

    5. 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

Concrete example: depositing USDC

The USDC token address is 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 , and it has 6 decimals.

  1. First, approve the L1BlastBridgeProxy to transfer your USDC. In this example we’ll approve 9.5 USDC:

    1. Go to the USDC contract

    2. Click on "Contract"

    3. Click on "Connect to Web3"

    4. Click approve

    5. Set the "spender" address to the L1BlastBridge contract 0x3a05E5d33d7Ab3864D53aaEc93c8301C1Fa49115

    6. Set the value (add 6 zeros for USDC and USDT, and 18 zeros for DAI)

    7. Click "Write" and approve the transaction in your Web3 wallet

  2. 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.

  3. 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

  4. The localToken address here is USDC.

  • Example function call bridgeERC20

Once you have successfully bridged to Blast, you can start trading at bfx.trade.

Last updated