What eight swap providers charge

Every provider this site talks to, asked for a price on the same transfer at the same moment. What each pays out, what it keeps against the open market, the smallest and largest it will accept — and, further down, what each one says when a transfer is below its floor, which turns out to be eight different sentences for the same word.

0.05 BTC into USDT (TRC-20)

ProviderPays outKeepsTakes fromUp to
Changelly4,140.0878010.80%0.00035943539.13036778
LetsExchange4,130.9192241.02%0.00100000510.00
StealthEX4,129.6219931.05%0.00014790no stated limit
SimpleSwap4,126.0620411.13%0.00015910no stated limit
ChangeNOW4,119.3008611.30%0.00015610no stated limit
GhostSwap4,116.2055521.37%0.00035943539.13036778
SideShift4,074.252458142.38%0.000342170.71883612

“Keeps” is the gap between what a provider pays and what the same amount is worth at mid-market, taken from the public ticker endpoints of several large exchanges. Every provider builds a margin into its rate; none of them states it. The point of this column is that it is stated.

Would not price it at all

  • fixedfloatFixedFloat price: HTTP 401 {"code":"501","msg":"Not have permission","data":null}

A provider refusing a perfectly ordinary transfer is worth publishing rather than quietly dropping. It is the difference between a list of who is available and a list of who answers.

The same refusal, in eight vocabularies

The same request again at 0.00002 BTC — far below every provider’s minimum. Each one refuses, and no two refuse alike. Some name the floor, some name the pair, one answers with a JSON-RPC error code and one with a status that has nothing to do with amounts.

  • fixedfloatFixedFloat price: HTTP 401 {"code":"501","msg":"Not have permission","data":null}
  • ghostswapGhostSwap quote: HTTP 400 Amount is below the minimum for btc → usdtrx. Minimum: 0.00035943 btc.
  • changellyChangelly getExchangeAmount [-32602]: Invalid amount for pair btc->usdtrx. Minimal amount is 0.00035943 btc
  • changenowChangeNOW estimate: HTTP 400 Out of min amount
  • simpleswapSimpleSwap /estimates?tickerFrom=btc&networkFrom=btc&tickerTo=usdt&networkTo=trx&amount=0.00002&fixed=false: HTTP 422 Amount does not fall within the range. Min: 0.0001591, max: null — Unprocessable Entity
  • stealthexStealthEX /rates/estimated-amount: HTTP 400 InvalidAmount: Amount is out of range
  • letsexchangeLetsExchange estimate: amount below the pair's floor. Minimum: 0.001

This matters to anybody integrating more than one of them. A router has to tell “too small” apart from “wrong coin” apart from “not authorised”, and these eight give it no common shape to work from — no shared code, no shared status, and in one case a success status carrying a failure in prose. The network names page is the same problem in a different register.

How to read these numbers

The table shows what answered, which is not the same as what exists. A provider can be absent from it for three quite different reasons, and they are kept apart above: it refused the request, it has no key configured here, or it quoted and simply sits lower down. Only the first is a statement about the provider.

They are a reading rather than a constant. Minimums here are recalculated by each provider continuously and drift between one request and the next — the same pair measured twice in an hour returned floors differing in the fourth decimal. Margins move with the market. What holds across readings is the shape: which providers are cheap, which are dear, which state a ceiling and which do not, and which cannot be relied on to answer at all.

Nothing here is an endorsement or a partnership. These are the services this router queries, priced against each other because that is the only way to know what any of them costs. Checked 28 September 2026.

Price this transfer live or see what splitting it costs.