> ## Documentation Index
> Fetch the complete documentation index at: https://docs-d0.donutbrowser.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-Chain Swap — Bridge v1

> Moving tokens between blockchains used to mean finding a bridge, connecting your wallet, approving transactions, checking gas on the other side, and hoping noth

Moving tokens between blockchains used to mean finding a bridge, connecting your wallet, approving transactions, checking gas on the other side, and hoping nothing fails halfway through.

With D0 you just say what you want and it handles the routing, the gas check, and the execution.

<Frame caption="Cross-chain swap end-to-end inside D0.">
  <video controls playsInline muted preload="metadata" className="w-full rounded-xl" src="https://static.donutbrowser.ai/docs/features/cross-chain-swap-demo.mp4" />
</Frame>

## How It Works

Type what you want in plain language. D0 figures out the rest.

[Swap 5 SOL to USDC on Arbitrum](https://t.me/donut_d0_agent_bot?text=Swap%205%20SOL%20to%20USDC%20on%20Arbitrum)

> **D0:** "Here are your options:
>
> * **Relay**: 5 SOL → 742.30 USDC | Fee: \$1.20 | ETA: \~25 sec
> * **DeBridge**: 5 SOL → 739.80 USDC | Fee: \$0.90 | ETA: \~45 sec
>
> Recommended: Relay (better rate)"

D0 automatically compares two routing providers — **Relay** and **DeBridge** — and shows you both options side by side. You see the rate, fee, estimated time, and slippage for each before you commit to anything.

<Frame>
  <img src="https://static.donutbrowser.ai/docs/features/cross-chain-quote.webp" alt="Cross-chain quote comparison in D0" />
</Frame>

## Supported Chains

Five chains, both directions.

| From     | To                               |
| -------- | -------------------------------- |
| Solana   | Ethereum, Arbitrum, BSC, Polygon |
| Ethereum | Solana                           |
| Arbitrum | Solana                           |
| BSC      | Solana                           |
| Polygon  | Solana                           |

## Gas Detection

Before D0 executes any swap it checks whether you have enough gas on the destination chain. If you don't, it tells you before the transaction goes out — not after it fails.

> **D0:** "You don't have enough ETH on Arbitrum to cover gas. You'll need at least 0.003 ETH before this swap can go through."

## Fees and Gas: Two Cases

There are two different gas situations here, so they don't get confused:

* **Stablecoin transfer (USDC via CCTP):** the protocol fee is about 0.14% (proportionally cheaper on larger amounts), and D0 fronts the small gas needed to receive on the destination chain, deducting it from your principal. That fronted gas is capped at about \$15 on Ethereum and about \$0.50 on Arbitrum, BSC, and Polygon, so you don't pre-fund anything.
* **Cross-chain swap (via Relay or DeBridge):** you need a little of the destination chain's native token for gas. The gas check above is exactly this case: it tells you the shortfall before anything goes out.

Either way, D0 queries several bridge providers and picks the route that lands you the most.

## Things to Know

* D0 handles two transactions for every bridge — one on the source chain and one on the destination chain. There is a brief wait between them, that is normal.
* For EVM→EVM swaps Relay is usually faster. For Solana→EVM it is worth comparing both — DeBridge sometimes wins on cost.
* Every bridge transaction shows up in **Dashboard → Trade History** under the **Bridge** filter so you can audit all your cross-chain activity in one place.
* If a swap seems stuck, check the source chain explorer first. Most delays happen on the source chain, not the bridge itself.
