What is a cross-chain swap?

How to trade native coins across blockchains — without wrapped tokens, bridge hacks, or handing your funds to an exchange.

A cross-chain swap trades a native coin on one blockchain for a native coin on another — real BTC for real ETH — without wrapping either asset, without a bridge, and without depositing funds on an exchange. You send one transaction on the source chain; a settlement protocol delivers the destination coin to your wallet on the other chain.

That one sentence hides most of what matters: who holds the funds mid-flight, what "native" buys you, and what happens when a swap can't complete. This guide walks through the mechanics we see operating a router over these protocols every day.

  • Native means native. You receive the actual coin on its own chain — not an IOU like wBTC that depends on a custodian staying solvent.
  • No accounts. The swap is addressed to your wallet. There is nothing to sign up for, so there is nothing to freeze or phish.
  • Settlement is enforced by a protocol, not a company: validator sets and market makers move the funds, with refunds built into the rules.
  • Speed is set by the source chain. Most swaps settle in 5–20 minutes; Bitcoin's block time dominates anything that starts with BTC.

Why not just use a bridge or a wrapped token?

Bridges don't move coins between chains — nothing can. They lock the original asset in a contract and mint a synthetic copy on the other side. The copy is only as good as the lock: bridge contracts have been the single most-hacked category in crypto, with over $2.8 billion drained from them, including Ronin ($624M) and Wormhole ($326M).

A cross-chain swap avoids the synthetic step entirely. Liquidity already sits on both chains — in protocol vaults or market-maker inventory — so the swap is really two independent, native transfers: yours in on chain A, theirs out on chain B. There is no wrapped token to depeg and no bridge contract to drain.

How a cross-chain swap works, step by step

Modern swap rails converge on the same UX: the deposit address. You request a quote, the protocol opens a unique one-time address on the source chain, you send your coins there, and settlement happens automatically. Under the hood, three different designs deliver that promise:

  • Vault-based (THORChain, Maya): validators collectively control vaults on each chain. Your deposit goes into the BTC vault; the ETH vault pays you out. Prices come from on-chain liquidity pools.
  • JIT auction (Chainflip): a validator network opens your deposit channel, and market makers compete in a just-in-time auction to fill the order, with an on-chain minimum-price guarantee.
  • Intent-based (NEAR Intents): you state the outcome you want; competing market makers race to fulfil it from their own inventory and settle against your deposit.

As a user you don't pick the architecture — a router compares live quotes across rails and routes to whichever returns the most output for your exact amount. The differences reappear only in edge cases: depth on a given pair, refund behavior, and how large a trade one route can absorb. We compared the three rails in detail in THORChain vs Chainflip vs NEAR Intents.

What does a cross-chain swap cost?

Expect three layers, usually quoted as a single net number: network fees on both chains (you pay the source transaction; the protocol pays the outbound one and prices it in), liquidity cost — the pool spread or market-maker margin, typically 0.1–0.5% on liquid pairs — and the interface fee of whichever app you use (Moss adds 0.3%, already inside the quoted output).

The honest way to compare venues is to ignore fee breakdowns entirely and compare one number: how much of the destination coin arrives for the same input. Any fee that matters is already inside it.

What can go wrong — and what actually happens

The two real risks are price movement and stuck liquidity, and both have defined outcomes. Every serious rail attaches price protection to the swap: if the rate slips past your tolerance before execution, the protocol refunds the deposit to your refund address instead of filling you at a bad price. That's why a refund address is required before a deposit address is issued — the failure path is planned, not improvised.

What a cross-chain swap can never do is lose your coins to a frozen account: there is no account. Funds are either delivered, or returned on-chain. Both outcomes are publicly verifiable — every Moss swap can be tracked by its deposit address in the explorer.

How long does a cross-chain swap take?

Confirmation time on the source chain plus a few minutes of settlement. ETH, SOL or TRON deposits usually finish in 2–10 minutes end to end; anything starting from BTC needs at least one Bitcoin block (~10 minutes), so 15–30 minutes is normal.

Is there a minimum or maximum amount?

Minimums exist because outbound network fees must be covered — typically a few dollars' worth. Maximums are set by live liquidity: a good router shows how much a route can absorb and splits or re-routes what doesn't fit.

Do I need two wallets?

You need an address on the destination chain, which any multi-chain wallet provides. The swap itself is a plain transfer — no contract approvals, no signatures beyond sending your own transaction.

Is a cross-chain swap the same as a DEX trade?

No. A DEX like Uniswap trades tokens within one chain. A cross-chain swap settles across two chains with independent finality — which is why it needs vaults, auctions or market makers instead of a single pool contract.

All guides