Bridge Tools

Bridge ETH and wstETH from L2 to Ethereum L1

Bridge tools only work on mainnet. They use the LI.FI protocol to route cross-chain transfers. Testnets are not supported.

get_l2_balance

Returns ETH and wstETH balances on an L2 chain. Use this before bridging to check available funds.

Parameters
{
  "source_chain": "base",
  "address": "0x..."
}
Response
{
  "address": "0x...",
  "chain": "Base",
  "chainId": 8453,
  "balances": { "ETH": "0.5", "wstETH": "1.2" }
}

get_bridge_quote

Gets a quote for bridging tokens from an L2 to Ethereum L1. Requires a configured wallet address for routing.

Parameters
{
  "source_chain": "arbitrum",
  "token": "wstETH",
  "amount": "0.5",
  "to_token": "ETH"
}
Response
{
  "sourceChain": "Arbitrum One",
  "token": "wstETH",
  "amount": "0.5",
  "toToken": "ETH",
  "toAmount": "0.5742",
  "estimatedDuration": "3 min",
  "tool": "across"
}

bridge_to_ethereum

Executes a bridge transaction from Base or Arbitrum to Ethereum L1. Requires a private key. In simulation mode, returns a quote without broadcasting.

Parameters
{
  "source_chain": "base",
  "token": "ETH",
  "amount": "0.1",
  "dry_run": true
}
For wstETH bridging, the tool handles ERC-20 approval automatically before sending the bridge transaction.

get_bridge_status

Checks the status of an in-progress bridge transaction. Use the tx hash returned by bridge_to_ethereum.

Parameters
{
  "tx_hash": "0xabc...",
  "source_chain": "base"
}
Response
{
  "txHash": "0xabc...",
  "sourceChain": "Base",
  "status": "DONE",
  "sending": { "txHash": "0xabc...", "amount": "100000000000000000" },
  "receiving": { "txHash": "0xdef...", "amount": "99500000000000000" }
}
💡
Bridges typically take 1-20 minutes. Poll with get_bridge_status until status is DONE.