Methodology

How every fee on this site is collected, normalised, priced in USD, checked and dated — including what we throw away and what we still do not cover.

The two kinds of fee data

They come from different places and are refreshed on different clocks, so we label them differently everywhere on the site.

Withdrawal rows59,680from 76 exchanges
Curated fee rows2,479123 exchanges, each row sourced
Coins priced5,212of 8,083 in the directory
Chains normalised201from 514 spellings seen in the wild

Where a number comes from

For each exchange we take the first source on this ladder that actually works, and we record which one it was:

  1. The exchange’s public API. Preferred, because it is the same data the exchange serves its own users and it can be re-pulled cleanly.
  2. The JSON endpoint behind the exchange’s own fee page. Used when the public API omits fees or covers only a fraction of the listed coins. This is still the exchange’s own data, read the way its own web page reads it.
  3. The official fee page, read by a person. Used for trading fees, VIP ladders and one-off fees. Someone reads the exchange’s published schedule, records the numbers and stores the source URL and the date.

Coverage is deliberately exhaustive per exchange: if an exchange lists 9,000 coins, we want all 9,000 rows, not the top hundred. A missing coin looks identical to a free withdrawal on a comparison table, and that is exactly the kind of error this site exists to avoid.

Normalising what exchanges publish

Matching a ticker to a coin

Tickers collide — several different projects ship under the same symbol, and the one an exchange means is not always the famous one. Every symbol is resolved to a specific asset by its CoinMarketCap identifier, with a manual override table for the collisions that automated matching gets wrong. When a symbol cannot be resolved with confidence, we still publish the exchange’s fee, but we leave it unattached to any coin page rather than attach it to the wrong coin.

Naming the network

The same chain appears as “Bitcoin”, “BTC”, “btc”, “BTC (SegWit)” or “Mainnet” depending on who wrote the exchange’s integration. We map 514 observed spellings onto 201 named chains so that a comparison across exchanges is a comparison of the same route. The mapping happens when we render, never by rewriting what the exchange said: the exchange spelling stays visible on detail pages. Ambiguous bare tickers that different exchanges use for different chains are deliberately left unmerged instead of being guessed.

Turning a fee into money

A withdrawal fee is quoted in the coin. The USD figure you see is fee in coin × the coin’s live price at page load, recomputed on every refresh rather than frozen at sync time. Percentage fees stay percentages — there is no honest fixed USD value for them. Trading fee percentages are stored as published (0.1 means 0.1%), and a trade’s cost is computed from the tier your 30-day volume actually puts you in, not from the headline rate.

What we exclude, and why we still show it

Verification

Before a newly collected exchange goes live, its numbers are spot-checked by hand against the exchange’s own fee page — our rule is at least five coins across three exchanges per batch, chosen to include both major coins and long-tail ones, since collection bugs usually show up in the tail. Curated trading fees are re-read at the source and re-dated rather than silently carried forward, so an old verified date is visible to you rather than hidden from you.

Automated checks run alongside the human ones: rows whose USD value is implausible, exchanges whose row count collapses between syncs, coins that resolve to two different assets on the same exchange, and chains that split into two spellings after a mapping change.

Refresh cadence

Known limits

Corrections

If a number here disagrees with the exchange, the exchange is right and we want to know. Send the exchange, the fee, what we show, what they show and a link to [email protected]. Fixes are made in the underlying data, so they propagate to every page that uses the number, and the row’s verification date moves with them.

Methodology — FAQ

How often is the fee data updated?

Withdrawal fees are re-synced from each exchange and every row carries the timestamp of its last sync, shown on the page. Coin prices are polled continuously, so the USD value of a fee is computed from a fresh price at page load. Trading fees and VIP ladders are curated by hand and carry the date we last verified them against the exchange's own fee schedule.

Why does a fee here differ from what my exchange shows?

Four common reasons: your VIP tier or a token-fee discount changes your personal rate; the exchange changed the fee after our last check, which the timestamp on the page will show; the exchange charges different fees per region or account type; or the fee is a percentage that depends on the amount you withdraw. Always confirm on the exchange's own screen before you transact.

Why do some cells show a dash instead of zero?

A dash means we have no verified number, not that the fee is zero. We never publish a zero we did not read from the exchange, because on a fee site 'unknown' and 'free' being confused is the worst mistake we could make.

How do you convert a withdrawal fee into USD?

USD = fee in coin × the live price of that coin at the moment the page renders. We do not display the USD value that was true at sync time, because for a volatile coin that number is wrong within minutes. Percentage-based fees have no fixed USD value and are shown as a percentage.

Do exchanges pay to appear or to rank higher?

No. Being listed, being compared and the fee numbers themselves are not for sale. Some outbound buttons are referral links, marked “Referral” on the exchange’s own page, as are the occasional exchange banners we place ourselves, and may earn us a commission, but they feed into no calculation: every comparison and cheapest-route verdict comes from the fee data alone. The single hand-set thing is the default order of the exchange directory on the home page, which is editorial and not for sale.

Related: about this site · general FAQ · disclaimer.