Overview

The Blast Bridge is a fork of the Optimism Bridge that intends to allow users to bridge yield-earning tokens onto the Blast L2. The bridge should safely custody the tokens on L1, coordinate the staking of the tokens into yield-bearing protocols, and report the yield on L2 to distribute to the users. The two yield bearing assets used will be ETH and USD stablecoins represented by rebasing ETH (native) and USDB (ERC20) tokens on L2. The protocol will need to be able to consider multiple yield sources per asset. Initially, Lido will be the yield source for ETH and the DAI Savings Rate Module will be the yield source for USD tokens. Later, we will add additional ETH and USD yield providers.

Deposits

Screenshot 2024-01-29 at 11.11.55 PM.png

The Optimism L1/L2StandardBridge will work the same for bridging non-yield-bearing ERC20s and ETH. For yield-bearing ERC20s, they must go through the BlastBridge. The L1/L2BlastBridge are based on the StandardBridge with small modifications. Only approved ethYieldTokens and usdYieldTokens are accepted and can only be bridged for ETH and USDB, respectively.

The approved ETH yield tokens are:

The approved USD yield tokens are:

USD yield tokens are sent through the L1BlastBridge to the USDYieldManager. ETH yield tokens are sent to the ETHYieldManager.

There’s special consideration when the deposited tokens are already staked funds, as in the stETH case. In order to maintain proper yield provider accounting, the staked deposit has to be directly reported to the ETHYieldManager. The provider accounting is discussed in more detail later.

| --- | --- | --- | --- | --- | --- | | (ETH, ETH) | | OP.depositTransaction with ETH | | | Transfer ETH to user | | (ETH, ETH) direct | 1. Send ETH to OP 2. OP sends ETH to ETHYieldManager | | | Mint ETH to user | | | (StETH, ETH) | | 1. transfer StETH to ETHYieldManager 2. record staked balance deposit 3. OP.depositTransaction | Request “unbacked” ETH mint on L2 | Mint ETH to user | | | (USDC/USDT/DAI, USDB) | | 1. Perform conversion to DAI if necessary 2. transfer DAI to USDYieldManager 3. OP.depositTransaction | | | Mint USDB to user | | (USDC, USDC) | Not allowed | | | | | | (WETH, ) | Not allowed | | | | | | (, WETH) | Not allowed | | | | |

Withdrawals

The biggest modification from the Optimism withdrawal protocol is that all withdrawals must go through a WithdrawalQueue where the sequencer operator can unstake the appropriate amount of funds before finalizing the requests.

The complete withdrawal steps for ETH are:

  1. User submits a withdrawal on L2.
  2. Withdrawal is proven on the OptimismPortal, a withdrawal is requested from the ETHYieldManager.
  3. Sequencer operator unstakes from a yield source (may be a multistep process).
  4. Sequencer operator finalizes the withdrawal requests using the unstaked funds.
  5. After the finalization delay, withdrawal is finalized on the OptimismPortal. The portal can claim the withdrawn funds and use them to execute the call.