How to deposit to Blast

Overview

To deposit ETH to Blast, simply transfer the ETH to the relevant Blast Bridge address on the L1.

After the deposit transaction is mined, the balance will be credited on the L2 as soon as the Blast Sequencer indexes the transaction.

ETH

Transfer ETH via the tool of your choice to the following bridge address on Ethereum Sepolia: 0xc644cc19d2A9388b71dd1dEde07cFFC73237Dca8. Do not transfer mainnet ETH to this address.

WETH, STETH, USDC, USDT, DAI

Depositing Ethereum Sepolia WETH, STETH, USDC, USDT, DAI will be supported in the future, but is currently not supported on the Blast Sepolia testnet.

Blast Sepolia ETH can be wrapped to WETH directly on the L2 (see Foundry example below).

Other tokens

Blast supports bridging arbitrary tokens in a similar manner to Optimism. Refer to the Optimism docs to learn how to bridge arbitrary tokens.

Note: this guide is for the Blast Sepolia Testnet. Do not bridge mainnet tokens to these addresses.

Bridge address for arbitrary ERC20 tokens (L1StandardBridge): 0xDeDa8D3CCf044fE2A16217846B6e1f1cfD8e122f

Bridge address for arbitrary ERC721 tokens (L1ERC721Bridge): 0x993385F8A2aD69dfa0884287801191DE9805Ff37

Deposit via UI

Coming soon

Deposit programmatically

You can use any tool/wallet to send the transfer transaction to the Blast Bridge address. Here are some examples:

Foundry

The following code snippet shows how to use Foundry’s cast tool to send ETH from Ethereum Sepolia to Blast Sepolia, and then convert that ETH to WETH.

# Depositing Sepolia ETH
cast send -i 0xc644cc19d2A9388b71dd1dEde07cFFC73237Dca8 --value 0.1ether --rpc-url https://sepolia.infura.io/v3/$INFURA_KEY

# Confirming the bridged Sepolia ETH on Blast
cast balance $YOUR_ADDRESS --rpc-url https://sepolia.blast.io

# Converting to WETH (Rebasing) on testnet; do not transfer mainnet ETH to this address
cast send -i 0x4200000000000000000000000000000000000023 --value 0.1ether --rpc-url https://sepolia.blast.io

ethers.js

The following code snips shows how to use ethers.js to send ETH from Ethereum Sepolia to Blast Sepolia.

const { ethers } = require("ethers");

const INFURA_KEY = "YOUR_INFURA_KEY";
const PRIVATE_KEY = "YOUR_PRIVATE_KEY";

// This is for Blast Sepolia Testnet, not Blast mainnet
const BlastBridgeAddress = "0xc644cc19d2A9388b71dd1dEde07cFFC73237Dca8";

// Providers for Sepolia and Blast networks
const sepoliaProvider = new ethers.providers.JsonRpcProvider(`https://sepolia.infura.io/v3/${INFURA_KEY}`);
const blastProvider = new ethers.providers.JsonRpcProvider("https://sepolia.blast.io");

// Wallet setup
const wallet = new ethers.Wallet(PRIVATE_KEY);
const sepoliaWallet = wallet.connect(sepoliaProvider);
const blastWallet = wallet.connect(blastProvider);

// Transaction to send 0.1 Sepolia ETH
const tx = {
    to: BlastBridgeAddress,
    value: ethers.utils.parseEther("0.1")
};

const transaction = await sepoliaWallet.sendTransaction(tx);
await transaction.wait();

// Confirm the bridged balance on Blast
const balance = await blastProvider.getBalance(wallet.address);
console.log(`Balance on Blast: ${ethers.utils.formatEther(balance)} ETH`);

How to withdraw from Blast

Withdrawals from Blast require multiple steps. The process is similar to withdrawing from Optimism. Withdrawals take approximately 7 days to complete. Detailed instructions/code samples coming soon.