Crypto Arbitrage Scanner
Compare spot prices across exchanges and net out fees
- ✓100% Free
- ✓No Sign-Up Required
- ✓Runs in Your Browser
- ✓Privacy-First
| Asset | Buy at (lowest) | Sell at (highest) | Gross spread | Net after fees | Signal |
|---|---|---|---|---|---|
| Loading live exchange prices… | |||||
Last-price comparison across three venues · net = gross spread minus the fee you set, charged on both the buy and the sell leg.
Binance prices are USDT-quoted; treat them as USD-equivalent and remember the stablecoin itself can trade at a premium. Sources: Binance, Coinbase and Kraken public APIs · information only, not trading advice.
Frequently Asked Questions
What is crypto arbitrage?
It is buying an asset on an exchange where it trades cheaper and selling the same asset where it trades dearer, ideally at the same moment. The textbook version is riskless; the real version carries fee, transfer and timing costs that eat most of the gap, which is why the spreads you can actually capture are small.
Why do exchange prices differ?
Each venue has its own order book, its own deposit flow and its own local demand, and moving coins between venues is slow enough that professional desks cannot close every gap instantly. Stablecoin pairs add another layer: a USDT premium on one venue shows up as a price difference with no USD arbitrage behind it.
How are net spreads calculated?
The scanner takes the highest and lowest price across the three venues, divides their difference by the lowest price to get the gross spread, then subtracts your fee-per-side percentage twice — once for the buy leg and once for the sell leg. Withdrawal and network costs are not included, so treat the result as an upper bound.
Why does Binance show USDT prices?
Binance spot markets are quoted in USDT rather than USD. The tether token itself trades at a small premium or discount to the dollar depending on market stress, so part of an apparent Binance spread can be stablecoin basis instead of a true cross-exchange gap.
Could I run this with a small account?
Usually not profitably. Fees, minimum sizes and withdrawal charges are relatively larger at small scale, and capturing a spread consistently means keeping pre-funded balances on every venue — capital that sits exposed in three places at once instead of earning anywhere.
How often do the prices refresh?
On load, every three minutes while the tab stays open, and whenever you press Refresh. Prices are last-trade tickers rather than executable quotes, so the moment you try to trade, the real spread will be whatever the order book shows then.
Related Tools
RELATED LIVE TOOLS
How cross-exchange spreads work
Where price gaps come from
In a frictionless market the same asset trades at the same price everywhere. Crypto markets are not frictionless: each exchange runs a separate order book, deposits and withdrawals clear on their own schedules, and arbitrage capital has to physically sit on each venue to act instantly. When news hits, demand can arrive on one venue seconds before another and the books diverge until someone bridges them. Regional payment rails and banking hours widen the effect for fiat pairs, and thin altcoin books exaggerate it further.
The stablecoin wrinkle deserves its own sentence. Binance quotes most pairs in USDT, so a dollar of premium inside tether shows up as a price gap against Coinbase's plain USD book even though nothing about the underlying asset changed. Read the widest rows on the chart with that in mind — part of what looks like free money is currency basis that will cost you to unwind.
Gross spread versus what you keep
Gross spread is the arithmetic gap: highest price minus lowest price, divided by the lowest price. What you keep subtracts everything the round trip charges. Taker fees on large venues typically run 0.10% per side, so a round trip costs about 0.20% before anyone moves a coin. Add the spread you cross inside each order book, roughly a tenth of a point on liquid pairs, and a network withdrawal fee measured in dollars rather than basis points. The fee box on this page models the first term so you can watch the sign flip as you change it.
There is also a timing cost that no fee input captures. Between deciding to trade and both legs filling, prices move. If the gap closes while your transfer is in the mempool, the spread you saw is the spread you paid to observe. Professional desks solve this with inventory pre-positioned on every venue and low-latency links; a retail account solves it by keeping balances parked everywhere, which is its own kind of risk.
Worked example
Take BTC at $84,650 on Kraken and $84,830 on Coinbase. The gross gap is $180, about 0.213%. Charge 0.10% on each leg and roughly 0.01% of slippage crossing each book: net about 0.01% remains, which is $1 on a $10,000 trade. A BTC withdrawal then costs more than the entire edge, so the trade only works if the balance already sits on the destination venue. Now look at a wider altcoin row where the scanner prints a 0.35% gross spread: after the same 0.20% in fees, 0.15% survives — $15 per $10,000, repeatable in principle only while both balances stay funded and the gap persists longer than your reaction time.
Risks and honest limits
Execution risk comes first: prices move mid-trade and one leg can fill while the other does not, leaving you holding inventory you did not plan to hold. Withdrawals get paused during congestion exactly when spreads are widest. Thin books can print a last trade that no size would ever fill, which is why the scanner compares last prices rather than pretending they are quotes. Add KYC limits, venue downtime, and the regulatory question of which entity serves which customer, and the picture is complete. Use this page to understand why the obvious trade is harder than it looks, not as a signal to place one.
Explore the network
Suggest a change
Spotted an error, an out-of-date number, or something we should improve? Tell us — the page title and address are attached to your email automatically.