Arbitrage board · How it works
Cross-exchange crypto arbitrage, after fees
The Arbitrage board finds price gaps between the spot markets of the oracle's venues. For each one, it answers three questions: does it pay after fees, at what size, and when to stop. An estimate, not advice.
NowThe board counts the routes that pay after fees every second.
What the board finds
The same coin can trade at different prices on two exchanges at the same moment. The board finds these gaps between the spot markets of the oracle's venues, and ranks them by the gain after taker fees.
A route is a cycle of 2 or 3 trades that ends in the currency it starts with, such as USDT → ETH → USDT. A route of 2 trades buys a coin on one venue and sells it on another. A route of 3 trades also goes through a second coin.
The board has three views. Live routes: the best 50 routes of 2 trades and the best 50 of 3, each second, losing ones too. Hot pairs: the coins that gained most after fees in the last day or week, with where and when. History: each minute, every route that showed a gap before fees.
- 01
Two trades at once
- Buythe coin on the venue whose ask is lower
- Sellthe same coin on the venue whose bid is higher
Gains the gap, less the taker fee of each trade. Each trade uses the balance already on its venue.
- 02
The refill, later
The coin goes to the venue that sells it, and the money comes back. It is paid once per rebalance, so it is not in the gain.
Three questions, answered with numbers
- 01
Does it pay after fees?
On paper, when the gap is larger than the taker fees of all the trades. In fact, only when the route is “Actionable”.
How the board computes it
- The gain. A buy pays the ask and a sell gets the bid, less the venue's base-tier taker fee. The gain after fees is what is left of the gap, in dollars and in percent.
- The same moment. A gap is real only if the prices are from the same moment. A route counts only when its legs' prices are at most 1 s apart, one venue report interval, and the data of each leg is at most 3 s old.
- From the books. Each leg costs its live best price, plus the cost past it in the last read of its order book. “From the books” gives the largest gain after fees in dollars, and the size that it needs.
- Marked legs. A price more than 10 bp from the other venues' median is marked “off the median” and still counts, because you trade at that venue's own book. A leg of a feed that the oracle halted is marked, and its route counts in no total.
- Actionable. A live route that gains after fees is actionable when its transfers are open, the order books show $10 or more of gain after fees, and every price is normal.
- On paper. Otherwise the board says “On paper” and names each reason: transfers closed or not known, too thin or no book read, a price off the median, a halted feed or no USDT/USD price. What is not known counts against the route.
- Transfers closed. Then a gain needs the coin and the money on both venues before the trade. The coins bought stay on the venue that bought them, at its lower price, until it reopens transfers. The gain is paid then.
- History. The history and the hot pairs are on paper: the archive keeps the best prices of each minute, not the depth or the transfers of that minute.
- 02
At what size?
At the size with the largest gain after fees in the order books.
How the board computes it
- At the best price. The size at the best price is the most that every trade's best price takes, in dollars. It is often small.
- The books. The proxy reads each order book about every 10 minutes. Past the size with the largest gain, each further dollar loses after fees.
- The end of the reads. A + after the size means that the gain still grows where the read books end, so a larger size can gain more.
- No read. A leg on a market without a read, such as a market quoted in BTC or ETH, has only the size at the best price.
- History. The history and the hot pairs count each gain at the size at the best price.
- 03
When to stop, and can you refill?
Stop when the gap falls below the break-even. Refill when the transfers are open.
How the board computes it
- Stop below. The gap before fees at which the gain after taker fees is 0: about the sum of the legs' taker fees. Below it, the route loses.
- The refill. After trades, the coin must go from the venue that buys it to the venue that sells it, and the money must come back. The board shows the refill's fee in dollars first, then its time.
- Transfers closed. When a venue closes withdrawals or deposits on every network that both venues use, the board says “Transfers closed”. A balance spent there cannot be refilled now.
- Not in the gain. A refill is paid once per rebalance, not per trade, so the board shows it beside the gain, not in it.
- Bridged tokens. For a pair of venues with a bridged token, the board gives the share of openings whose profitable time outlasts the refill.
What the numbers do not know
- Bridged tokens
Some Hyperliquid spot pairs trade a bridged token, such as UZEC, Unit's bridged ZEC, not ZEC itself. Its price can leave the coin's price when the bridge is slow. A balance there refills only through the Unit bridge, which can take hours.
The board marks such a leg with the token's name, such as “UZEC (bridged)”.
- Transfer status not known on some venues
Bybit, MEXC and Bitfinex have no public source of transfer data, so their moves show as not known. OKX gives its fees from a snapshot, with no status, and Unit and Hyperliquid state no status. Coinbase and Bitstamp set a network fee at each withdrawal.
A refill time adds only the times that a source states, so a move can take longer.
- Depth reads
A book changes by the second, and the read behind a size can be up to 30 minutes old. The size from the books shows what the books could take, not what one order gets now.
Each venue gives a limited number of levels, as few as 20 on Hyperliquid, so a read can end before a large size.
- The 1-second rule
A route counts only when its legs' prices are at most 1 s apart: one venue report interval, so that two feeds that report at different times still meet.
A venue report has no time of its own for the top of the book, and its newest data can be a trade. So a book top that stopped while trades still arrive is not caught. Look at the books before you trade.
- Fees and balances
The taker fees are each venue's base tier. A higher volume tier costs less. Withdrawals and their fees are not in any gain.
Each route needs a balance on every venue it trades on. The numbers are an estimate, not advice.
Questions, answered
- What is cross-exchange crypto arbitrage?
Buying a coin on one exchange and selling it on another at a higher price, at the same moment. The board also finds routes of 3 trades that go through a second coin and end in the currency they start with.
- Why do most price gaps not pay?
Each trade pays a taker fee. A gap pays only when it is larger than the sum of the fees: with taker fees of 0.05% and 0.10%, the gap must pass about 0.15% before fees. The board shows this break-even as “Stop below”.
- Do I move coins between exchanges for each trade?
No. You keep a balance on each venue and trade from it. After trades, a refill moves the coin and the money back. It is paid once per rebalance, so the board shows it beside the gain, not in it.
- How fresh are the prices?
The proxy writes the board every second. The data of each leg is at most 3 s old, and the legs' prices are at most 1 s apart. The order book reads come about every 10 minutes and can be up to 30 minutes old.
- What does “off the median” mean?
The price of a leg is more than 10 bp from the other venues' median. A gap that pays after two taker fees nearly always has such a leg. It counts like any other, because you trade at that venue's own book, but look at the book before you trade.
- Can I read the data from my own code?
Yes. The web proxy serves the live routes, and what the board found over the last day or week, as JSON over HTTPS. The API docs describe each field.
Web proxy API
Go further
- Live · ArbitrageArbitrage boardThe live routes, the hot pairs and the history of the last day or week.
- Integrate · APIWeb proxy APIThe routes and their history as JSON, for your own code.
- Data · OracleThe oracleSigned prices from independent nodes, checked by quorum. The web proxy behind the boards is a client of these nodes.
- Board · FundingDelta-neutral fundingPositions that earn funding, net of costs, with the largest profitable size and the rules to close.