Someone in a Telegram channel posts "route ABC Gate → MEXC +6.4%" and your pulse jumps. Six percent on a $2,000 trade is $128 for two clicks. You open both exchanges, you buy on Gate, and then withdrawal is greyed out. The coin is stuck, the spread was never real, and the only thing you traded was your taker fee. That gap between a number on a screen and a profit in your account is the entire subject of this guide. A crypto arbitrage route (or "bundle") is the concrete path of a single trade: an asset, a buy venue, a sell venue, and the way the asset moves between them. The visible spread is a raw number before costs. A real, executable route only exists when profit survives fees, transfer cost, and open deposit/withdrawal. Below: the anatomy of a route, how to read each component, the route types, where routes hide traps, a worked example with real figures, and an FAQ.

What an arbitrage route is

When you read "found a route BTC Kraken → MEXC +2.3%", that sentence already contains everything. Buy BTC on Kraken, transfer it, sell on MEXC, pocket the difference. Every route, no matter how exotic, breaks down into the same five required parts:

  1. Asset - what you trade (BTC, a fresh alt, a memecoin on Solana).
  2. Buy leg - the exchange and order book where it's cheaper (ask). Think Gate, MEXC, Kucoin, the venues that list early.
  3. Sell leg - the exchange and order book where it's dearer (bid). Often a deeper venue like Binance, Bybit, or OKX.
  4. Transfer - how the asset gets from buy leg to sell leg: the blockchain network, its fee and time, or no transfer at all (for a futures-vs-spot basis on one exchange).
  5. Spread - the price gap (sell_bid − buy_ask) / buy_ask, in %.

A route is executable only when every condition holds at once. The spread covers total fees plus transfer cost. Both legs have liquidity for your size. Deposit is open on the sell leg and withdrawal is open on the buy leg. A single "no" turns a pretty spread into a phantom, and most of the fat numbers you will see are exactly that.

Beginner tip: when you hear "route" or "bundle" (Russian traders say "связка"), picture those five slots. If you cannot name all five for a spread you are looking at, you are not looking at a route yet, you are looking at half of one.

How to read a route

The raw spread tells you almost nothing on its own. A 6% headline can net you $120 or strand your capital, and the difference is invisible until you read the route layer by layer, top to bottom. This is the skill that separates people who keep their deposit from people who feed it to fees.

1. Gross spread. The base (bid − ask) / ask. It's the ceiling, and everything else is subtracted from it. A scanner that quotes you 6% gross is quoting the best case, before reality.

2. Exchange fees. Taker fee on both legs, typically 0.1% on Binance/Bybit/Gate, often a touch less with a fee-token discount or VIP tier. Two takers is 0.2% round trip. A 0.25% gross route leaves 0.05% after fees, basically zero. This is why sub-0.3% spreads are almost never worth chasing on liquid pairs.

3. Transfer cost and time. The network decides everything. An ERC-20 withdrawal on Ethereum can cost $3 to $25 and take 2 to 5 minutes. The same coin over Solana, BSC, Base, Arbitrum, or TON costs cents and lands in roughly 30 seconds. While the asset is in transit the two legs converge toward each other, so the slower the network, the higher the chance the spread collapses before your coins arrive. We break this down in withdrawal windows and network fees and the cheapest transfer network guide.

4. D/W status (deposit/withdraw). The most underrated component, and the one that burned you in the intro. If withdrawal of the asset on the buy leg is closed, you can buy but you cannot move it out. If deposit on the sell leg is closed, you cannot bring it in to sell. An honest scanner shows this explicitly with 🟢 open, 🔴 closed, ❔ unknown, and it never guesses, because a fake 🟢 means stuck capital. If a tool shows green and the withdrawal is actually paused for maintenance, you find out only after you have bought.

5. Liquidity / executable size. A top-of-book spread may exist for $200, but at $2,000 slippage already eats the gap, and at $10,000 there may be no gap left at all. A real route is computed against order-book depth, not a single best price. The headline percent is for one small lot. Your size is what matters.

Reading rule, in order: gross spread → minus fees → minus transfer → check D/W → check depth. A route is tradeable only if a profit survives every single step. Skip one and you are guessing.

Route types

Routes differ by what they connect, and the type changes how it works and what it costs you. Here are the three you will meet most often, side by side.

CEX-CEX CEX-DEX TRIANGULAR BUY Kraken SELL MEXC BSC ~30s coin moves on-chain CEX ask DEX pool / bid + gas on-chain swap USDT BTC ETH one venue, no transfer
Three route types: CEX-CEX transfers a coin over a network, CEX-DEX swaps against an on-chain pool, triangular loops through three pairs on one venue.
  • Spot-Spot (CEX-CEX) - one exchange's spot vs another's, moving the coin over a network. This is the everyday baseline: buy on MEXC, withdraw over BSC, sell on Binance. Most of your routes will be this shape. Full guide: spot arbitrage and the cross-exchange arbitrage walkthrough.
  • CEX-DEX - a centralized exchange vs a DEX pool on a chain like BSC, Base, or Solana. Often wider spreads, because fewer players run on-chain execution, but it needs gas accounting and a wallet. See on-chain DEX dumps.
  • Futures / Funding - a perpetual vs spot (basis), or perp vs perp across venues like Bybit and OKX (funding-rate divergence). There is no cross-exchange coin transfer here, it closes through price and funding convergence. See funding arbitrage.
  • Listing / one-off - a fresh-listing route against the older venue, with its own separate mechanics, covered in new-listing arbitrage.

Why a route closes

A route is a market inefficiency, and the market exists to close it. Who closes it, specifically: arbitrage bots that see the same spread and execute faster than you can switch tabs, and market makers who pull liquidity onto the lagging leg the instant it drifts. On liquid assets like BTC and ETH the window lives for seconds. On illiquid alts and unusual networks it can live for minutes, because fewer players are willing to carry the transfer risk while the coin is in flight.

The takeaway is uncomfortable but it will save you money. Most "fat" spreads above 5% are phantoms. They look like routes but are not tradeable, for one of these reasons: withdrawal is closed, the liquidity is dead, the order-book price is stale, or there is a contract or network mismatch. The real work of an arbitrageur is not "find a big percent". It is filter out the phantoms and keep the executable ones, and a 1% route you can actually fill beats a 30% route you cannot. More failure modes are catalogued in arbitrage mistakes.

How to build routes

By hand. Open two exchanges' order books side by side, line up the prices, compute the two taker fees and the transfer cost, check D/W status in each exchange's withdraw and deposit panel, and estimate depth from the book. That is a couple of minutes per asset if you are quick. The problem is scale: there are dozens of exchanges and thousands of pairs, and monitoring all of them by hand is simply impossible. By the time you have checked the fifth pair, the first one has moved.

With a scanner. A real-time tool reads the order books of 20+ exchanges at once, computes the spread with fees and network math already subtracted, pulls live D/W statuses, and flags the phantoms before you waste a click. You see a finished list of executable routes, not raw percentages you still have to vet. That is what the Finder web dashboard does: spread net of fee and network, honest D/W flags, real book depth, and a spam-route filter, across 20+ CEXs, DEXs, and perp venues. If you want to read the alerts it sends, the arbitrage signal guide takes one apart field by field.

A worked route, step by step

Let's run a concrete one. Hypothetical alt ABC. The scanner shows a Gate → MEXC spread of +2.6% gross, and you want to put $2,000 through it. Here is the entire decision and the math, the way you should do it every time.

0% net % -> break-even ~0.2% GROSS +2.60% - fees/net -0.21% NET +2.39% executable PHANTOM 0.00% net withdrawal closed, same +2.6% gross
The same +2.6% gross: net +2.39% when D/W is open, but 0% the moment withdrawal is closed - identical raw percent, phantom route.
  1. Read the gross. Gate ask $1.000, MEXC bid $1.026. That is +2.6% gross, your ceiling.
  2. Subtract two takers. Gate taker 0.1% and MEXC taker 0.1% is 0.2% round trip, roughly $4 on $2,000.
  3. Pick the network and subtract its fee. ABC moves over BSC for about $0.20 and lands in ~30 seconds. Cheap and fast, so transfer risk is low.
  4. Check D/W on both legs. Gate withdrawal 🟢 open, MEXC deposit 🟢 open. Both rails clear, so the route can actually complete.
  5. Check depth for your size. Gate book shows ~$4,000 of liquidity near the ask, so $2,000 fills without meaningful slippage. Good.
  6. Execute and net it out. Buy $2,000 on Gate, withdraw over BSC, deposit and sell on MEXC.
Buy leg:   Gate, ask $1.000, book liquidity ~$4k
Sell leg:  MEXC, bid $1.026  (+2.6% gross)
Transfer:  BSC, ~$0.20, ~30s, withdrawal 🟢 open, MEXC deposit 🟢 open

Buy Gate $2000 → 2000 ABC
Gate taker 0.1%            −$2.00
BSC withdrawal            −$0.20
Sell MEXC at $1.026       → $2052
MEXC taker 0.1%            −$2.05
──────────────────────────────────
Net ≈ +$47.75 (~2.39% net) - route is executable

Now flip one variable. Same route, but ABC withdrawal on Gate is 🔴 closed for maintenance. Gross is still 2.6%, the screen still shows a juicy number, but net is zero, because there is nothing to move out of Gate. Identical raw percent, phantom route. That single flipped flag is the whole difference between "I saw a spread" and "I read a route", and it is why the D/W check is non-negotiable.

How to start practicing

You do not learn this on a 30% memecoin with your rent money. You learn it small, in three phases.

  1. Study, no money down. Watch a scanner for a few days. For every route that catches your eye, run the five-step read above on paper. Notice how many "fat" spreads die at the D/W check or the depth check. This is the cheapest tuition you will ever pay.
  2. Small live trades, $50 to $200. Pick liquid pairs on fast networks (BSC, Solana, Base). Take the small, boring 0.8% to 1.5% routes, not the exciting ones. The goal here is reps and a clean process, not profit.
  3. Scale what works. Once your process is automatic and your fills match your estimates, size up gradually. Keep a log of what closed early and why, because that log is your real edge.

If you are completely new to the strategy, start with getting started with arbitrage and the pillar crypto arbitrage guide before you risk a cent.

Realistic expectations

Your first weeks will be mostly learning, and the profit will be small, sometimes negative after a stuck transfer or a missed fill. That is normal and it is not a sign you are doing it wrong. Spreads move between the moment the scanner sees the gap and the moment your sell order fills, so treat every number as the best estimate at its timestamp, not a locked-in payout. Experienced arbitrageurs pass on the large majority of routes they see, and that selectivity, reading D/W and depth before getting excited about the percent, is exactly what keeps a deposit alive. Anyone promising you guaranteed daily returns from "secret bundles" is selling something. The edge is real, but it is thin and heavily contested, and it pays out to process, not greed. For an honest look at the numbers, see is crypto arbitrage profitable.

FAQ - arbitrage routes

What is an arbitrage route in simple terms?

It is the path of a single arbitrage trade: which asset, where to buy it, where to sell it, and how to move it between exchanges. "Route Kraken → MEXC on BTC" means buy BTC on Kraken, transfer it, sell it on MEXC, and keep the difference after costs.

Why is the route's spread big but I can't make money?

Because a big gross spread is almost always a phantom: withdrawal or deposit is closed, the liquidity is dead, the price is stale, or there is a network or contract mismatch. Real profit is gross minus fees minus transfer, and only with open D/W and enough depth for your size.

What spread counts as a workable route?

After two takers (about 0.2%) and the transfer, roughly 0.5% to 1% net is workable on liquid assets like BTC and ETH. On illiquid alts the windows are wider, often 2% to 10% or more, but the transfer and slippage risk is higher to match, so the bigger number is not free.

How fast does a route close?

On BTC and ETH it is seconds, because bots compete for it. On illiquid alts and rare networks it can be minutes. The fewer players willing to carry the transfer risk on that specific network, the longer the window stays open.

Which network is best for the transfer leg?

The fastest and cheapest one both exchanges support for that asset, usually BSC, Solana, Base, Arbitrum, or TON, where fees are cents and arrival is around 30 seconds. Avoid Ethereum ERC-20 for time-sensitive routes unless the spread is wide enough to absorb a slower, pricier transfer. See the cheapest transfer network.

Can I build routes by hand?

For one asset, yes, in a couple of minutes. Monitoring the whole market by hand, no, because you would need to read dozens of order books, D/W statuses, and depth all at once and they all move. That is what a scanner is for.

This is not investment advice. A route's visible spread is a raw number. Real profit depends on fees, network, open deposit and withdrawal, and book depth. Any route can collapse during the transfer, so never commit size you cannot afford to have stuck mid-transit.


Related: the pillar crypto arbitrage guide, the cross-exchange arbitrage and spot arbitrage walkthroughs, withdrawal windows and network fees, and how to read an arbitrage signal. One-off windows are in new-listing arbitrage. Live routes across 20+ exchanges, net of network and D/W, are in the web dashboard.