How to use
A full swap, start to finish. No account, no wallet connection, no JavaScript — you paste an address and send one deposit.
1Quote
- pick pair
- on /swap choose amount and the two coins, hit Quote. We ask every live line and show the best output on top, the rest as alternatives.
- read it
- the big number is what you receive after all fees — our 0.50% margin is already inside it. Protocol total and the min-in are printed under it. Every protocol quote is protected: it carries an on-chain minimum, and anything below it the protocol refunds instead of executing.
- changed the pair?
- there is no JavaScript here, so numbers don't recalculate as you click — after changing coins or amount, hit ↻ get new quote and the same page reloads with fresh protocol answers. One request, nothing tracking your keystrokes.
2Pick a route
- best vs alt
- the top line wins on output. Want a different one? Click any alternative — the page re-quotes on that line and marks it your pick.
- quiet lines
- a line that can't serve the pair right now is listed as quiet with the reason. That's protocol state, not an error on your end.
3Deposit
- paste address
- enter the address that receives the output. We checksum-validate it before creating the swap — a typo is caught here, not after you send.
- chainflip refund
- on Chainflip you also give a refund address on the source chain — the protocol returns funds there if the swap can't execute (fill-or-kill).
- old addresses die
- After a new quote or a new swap, every earlier deposit address is void. Protocol vaults rotate; a deposit sent to yesterday's address can be unrecoverable. Send only to the address on your current /s/ page.
- minimums
- each line has a minimum per swap — below it the deposit can be eaten by network fees. Live minimums for every coin we carry: /assets; your exact min-in is printed on every quote.
- send once
- you get a deposit address and, on THORChain/Maya, a memo. Send the exact amount with the exact memo, once. The address is valid for a short window shown on the page — never reuse an old one.
4Track & verify
- track
- your swap page is
/s/SP-XXXXX. Find it any time on /track by reference, deposit txid or deposit address. Keep the reference. - receipt
- each swap ships a PGP-signed receipt tied to our signing key. Check it against the key on /verify — the fingerprint there matches the one that signed your receipt.
Before a large swap — look at the depth
A quote answers one question: what you get for this amount. /depth answers the next one: how much size the route takes before it starts costing you. Every number there is a live quote we asked for at a fixed size — nothing is modelled from pool depth, nothing is extrapolated past the last measurement.
What the depth page tells you
- why look first
- price impact grows with size, and it grows differently on each line. The depth page compares them at the same sizes, so you pick the route before you send, not after
- measured, not modelled
- a ladder of live quotes at fixed sizes on every line that carries the pair. A pair nobody has looked at recently has no snapshot until it is measured — that takes about 30 seconds
- minimum and ceiling
- below the minimum the line refuses; above the ceiling it stops quoting, runs past 10%, or stretches past an hour. Both are measured on the route, not assumed
- the snapshot is frozen on your swap
- the depth you were shown at creation is stored with the swap and printed on your /s/ page, so what you decided on stays readable afterwards
Five states — and none of them is an empty screen
- curve drawn
- a snapshot exists. It says Fresh snapshot, or names its age and that a refresh is already queued — a stale number is shown as measured, never as current
- measuring
- Measuring — takes about 30 seconds. Your visit queued it; reload and it is there. Nothing is drawn from estimates in the meantime
- no curve, reason named
- the floor, ceiling and fee breakdown still stand on their own, and the reason is printed: no dollar reference price for the axis, only one size measured, or every route that carries the pair is halted right now
- no line carries the pair
- that is coverage, not a failed measurement — there is nothing to measure. Coverage by line is on /lines
- partner gate (XMR pairs)
- Partner rate · ≈0.5% embedded · no depth to measure. The gate quotes one rate with its margin already inside; there is no pool behind it, so a curve would be invented
Memos — read before you send
On THORChain and Maya the memo is the swap: destination, limits and our route live in that one string. Chainflip, Relay and the XMR partner gate don't use memos — their deposit address alone carries the intent.
Refunds return to the sender.On UTXO chains the refund goes to the first input address — never send from an exchange or shared wallet, and don't use HD wallets that move change to a new address.
Memo rules on memo routes (THORChain · Maya)
- when it's required
- every deposit on a THORChain or Maya route. Your /s/ page prints the exact string next to the deposit address — paste it byte-exact, an edited memo can send funds elsewhere
- btc · bch · ltc · doge · dash
- attach as an OP_RETURN output in the deposit transaction — 80-byte limit on these chains. Most exchange withdrawals and many mobile wallets cannot do this
- eth & erc-20 · avax · bnb
- the memo travels in the transaction data of the protocol router deposit call
- atom · xrp · rune · cacao
- the native memo field of the transaction (XRP: Payment type only)
- skipped or broken memo
- the protocol automatically refunds an invalid deposit to the sending address, minus the source-chain fee (fact: dev docs, verified 2026-07-19). Worse cases: memo over 250 bytes or an amount at/below the dust threshold — the network ignores such transactions entirely
- wallet can't attach a memo?
- Do not send. Use a wallet with memo / OP_RETURN support, or pick a route that needs none (Chainflip, Relay, XMR gate)
Lost or wrong? Wrong memo or a deposit after the window can be unrecoverable — quote again rather than reusing an address. Stuck swap with a valid deposit → /contact with your SP-reference.