Arbitrage gets called "risk-free" because you are not betting on a coin going up. True, as far as it goes: you have removed directional risk and nothing else. Seven other things remain, each a way people lose real money on a trade that looked like free arithmetic.
Here they are, ranked by how often they actually bite.
| Risk | When you are exposed | First defence |
|---|---|---|
| Spread closes in transit | Any trade with a transfer in it | Pre-fund both exchanges |
| Book thinner than the spread suggests | Thin books, mostly small-cap rows | Size to the liquidity, not the percentage |
| Deposits or withdrawals shut | Per token, without notice | Check both legs before you buy |
| Same ticker, different token | Unfamiliar or recently migrated listings | Compare contract addresses |
| Wrong network | Any coin that travels on several chains | Confirm the network name on both sides |
| Exchange freeze or failure | Every balance you leave sitting | Pass through, do not store |
| Tax and record-keeping | Every trade, months later | Export your history monthly |
1. The spread closes while your coins are in transit
You buy on exchange A, withdraw, wait for confirmations, deposit on exchange B, sell. That round trip takes minutes at best, and ArbiHunt's opportunity screen says spreads are time-sensitive and typically last no more than a few minutes. If the transfer outlives the gap, you arrive holding a coin you never wanted at a price you never agreed to.
Run the arithmetic. Put $2,000 into a 2.4% spread with 0.1% taker fees on both legs and a $1 withdrawal fee and you clear about $43. Let the spread decay to 0.6% while you wait for confirmations and the same trade clears about $7: $2,000 tied up, three fees paid, the whole wait carried as directional exposure, for seven dollars. Breakeven at those inputs is a 0.25% spread: plenty of trades are technically wins and not worth doing.
Transfer time is the whole risk
The clock starts when you click buy, not when you click withdraw: confirmation counts, congestion and the receiving exchange's crediting policy all sit inside that window. Deposit and withdrawal times covers what is actually fast.
The fix is structural, not tactical. Keep balances on both exchanges (USDT on the venue you sell into, the coin on the venue you buy from) so you fill both legs seconds apart and rebalance on your own schedule, not the market's. That is not speed, it is taking the transfer out of the critical path.
2. The order book is thinner than the spread makes it look
A spread percentage is a headline about the best ask and the best bid, not about the size sitting at those prices. On low-cap listings there is often almost none of it: push a real order in and you walk the book, and the spread you were trading disappears into your own fills. That is slippage, and the fattest spreads are where it lives.

LVVA-USDT shows a 3.90% spread, but only $174 of liquidity behind it, for $4.56 of profit. Bitget has $174 of depth on the buy side, Gate.io $410 on the sell side: the trade is only as big as the smaller leg. A few dollars is not a rounding error here, it is the trade. And the walk down the book is already in it: Bitget's lowest ask reads $0.8812, but buying $168 of LVVA averages $0.882742.
Note the Costs card too: the profit already has the two taker fees and the 0.97 LVVA withdrawal fee on ERC20 taken off, and a trade that would lose money after that fee is never listed. What is not in it is your own size. The fee is flat, so a trade much smaller than the row keeps far less than a proportional share, and on an ERC-20 withdrawal during a busy hour the fee can exceed the whole gap at a small size. Spread vs. net profit walks the full cost stack, and the free arbitrage calculator gives you a breakeven spread before you commit.
The fix: treat the liquidity figure as your position size, not a footnote. Take the smaller leg, trade a fraction of it, and open the real order book before you fill. Limit orders cost you the occasional missed trade and save you the bad ones.
3. Deposits or withdrawals are shut for exactly the token you need
Exchanges suspend transfers per token and per network constantly: wallet maintenance, chain upgrades, congestion, a risk-team decision. Nothing announces it on the trading screen: you find out at the withdrawal page, after you have bought.
The status page at the top of this article is the evidence: those bars show the share of tracked tokens on each exchange whose transfers are currently open. In that capture Binance reads 77% deposits and 82% withdrawals; BingX 31% and 49%. Both are green and healthy, and between a fifth and half of their tokens still cannot move.
Check the exit before you pay for the entrance
Before you buy, open the withdrawal page for that exact token on the buy exchange and the deposit page on the sell exchange, and confirm both are open for the network you plan to use. A spread you cannot withdraw into is not an opportunity, it is an unplanned purchase.
Your own account is the other half: unverified accounts hit daily withdrawal caps, holds on fresh deposits and region blocks, discovered mid-trade with capital already committed. Finish KYC and read your limits in advance: setting up your exchange accounts.
4. Same ticker, different token
Rarer than the first three, and far worse, because the money does not come back.
Ticker symbols are not unique. Two exchanges can list unrelated projects under the same three letters, a project can migrate to a new contract while one venue still lists the old, and a wrapped version can trade under the parent's symbol. In each case the "spread" is two different assets, and the coin you send arrives somewhere that will never credit it.
ArbiHunt shows the token's contract address on each leg, and the opportunity page carries the check as a standing warning: compare that contract against the one on the token's deposit page at each exchange. Where ArbiHunt has no contract for a leg the field reads "Check on exchange" rather than guessing; understanding the opportunity details shows where each field lives.
See the contract on both legs
ArbiHunt shows the coin's contract address on the buy and the sell exchange, alongside the transfer networks for each side, so you can verify the token is the same token before you move anything. Contract addresses are a PRO feature.
5. You send over a network the other side does not credit
Same permanent-loss category, and the most preventable item on the list. One coin can travel over several chains, and the network you withdraw on must be one the receiving exchange credits for that token. Send USDT over BEP-20 to an address that only accepts TRC-20 and the funds are, for practical purposes, gone. Some exchanges recover a mis-sent transfer for a fee; many will not.
The opportunity page gives you three things to check: the withdrawal network(s) and fees on the buy leg, the deposit network(s) on the sell leg, and a "networks match" tick when both venues share one. Use those as a shortlist, then confirm the name in both exchange interfaces, because the same chain is labelled differently across venues: BSC, BEP20 and BNB Smart Chain are one network with three names. Choosing the right network covers the naming traps.
Send a test transfer the first time you use a new coin-and-network pair, and check whether the coin needs a memo or destination tag, because the right network with a missing memo is the same lost deposit.
6. The exchange freezes, delists or fails
Every coin sitting on an exchange is an IOU from that exchange, and arbitrage makes that worse than ordinary trading: chasing spreads means holding balances on several venues at once, including small ones you would never otherwise touch.
ArbiHunt's status page is the receipt: four venues are paused there as this is written, each with the reason spelled out: AscendEX after members reported delayed withdrawals, LATOKEN after repeated reports of problems, HTX after regulatory developments and a reported withdrawal restriction, and BitMart because it announced it is shutting down. Paused venues drop out of the feed entirely: one fewer exchange on the board beats one that cannot be relied on to release your funds.
The fix: treat an exchange as somewhere you pass through, not somewhere you keep wealth. Hold working capital only, sweep profits out on a schedule, use fewer venues rather than more, and check /status before you fund a new one.
7. The tax and record-keeping bill arrives months later
In most jurisdictions each leg of an arbitrage trade is a taxable disposal (stablecoin into coin, then coin back into stablecoin), so a strategy built on volume creates a filing burden proportional to how active you are. Exchanges also cap how far back a history export reaches, and a venue that shuts down takes its records with it.
So export trade and withdrawal history from every exchange monthly and keep the raw files. Rules differ by country and this is not tax advice; if the volume is meaningful, talk to a professional in your jurisdiction before the year ends rather than after.
What ArbiHunt can and cannot do about any of this
ArbiHunt measures what can be measured: executable prices, the depth behind them, transfer networks and their fees, contract addresses and live exchange health. It never connects to your exchange accounts, never asks for API keys, never holds your money and never places a trade, so anyone claiming to be ArbiHunt and asking you to connect a wallet or send crypto is a scam. What it cannot do is promise a spread will still be there when you arrive, or make an exchange release your funds. For what the work pays once all seven are priced in, read is crypto arbitrage profitable.
None of this is financial advice. Crypto trading carries real risk, spreads close before people fill them, and not every opportunity on any scanner is executable. Verify both legs yourself, and trade only what you can afford to lose.
See it live
ArbiHunt scans 26 exchanges in real time and ranks every spread by true net profit, after fees, withdrawals and live liquidity.



