Crypto arbitrage - 139 million trades, 69 cents each
One Ethereum contract appears to earn several hundred thousand dollars a trade. It moved close to half a billion dollars worth of ether through a single month. When we checked what it actually had at the end, the answer was about $1,700. We went looking for how much of on-chain arbitrage is like that.
01 — The machineThe wallet that moved half a billion and kept nothing
On Ethereum there is a contract that looks like the most profitable trading operation on the chain. Its trades run in pairs. It hands over a fraction of an ether, receives a couple of million units of an obscure token, sells them straight back, and finishes holding four hundred and thirty-five ether. On paper that is roughly nine hundred thousand dollars, from a starting stake of about two hundred and sixty.
It did this twenty-nine times in a month. Those twenty-nine transactions account for more than half of the raw, unfiltered profit our scan recorded in that one month across five blockchains, before any of the checking described below.
So we looked at what the contract actually held. Every token that moved in or out of it, for thirty days.
| The contract's own balance sheet, 30 days | Ether |
|---|---|
| Received | 220,644.816 |
| Sent | 220,643.980 |
| Net position at the end of the month | 0.836 — about $1,700 |
| Transfers involved | 9,802 |
It moved close to half a billion dollars worth of ether through the month and finished with roughly the price of a used laptop. The pool it traded against tells the same story from the other side: 873.26 ether went in over the month, 873.23 came out. Nothing was drained. The money went round in a circle and came back.
What happened here has a name, and nothing about it is fraudulent. The numbers look the way they do because of how arbitrage gets counted. Bitquery indexes trades across the major blockchains, so we went looking for how much of the reported total behaves like this one. We examined a full year across Ethereum, BNB Chain, Base, Arbitrum and Polygon, plus six years of Ethereum history, and applied one test to every trade: did the profit exceed the money the trade itself put at risk. This article is about what survived that test, what the surviving business actually earns, who takes a cut before the trader sees it, and why the figure most often quoted for on-chain arbitrage is far larger than the money anyone keeps.
One limitation belongs at the top rather than the bottom. Our totals are floors. Some trading venues publish their trades in a format that standard datasets do not read, and a trade we cannot see is a trade we cannot count.
02 — The premiseWhat arbitrage actually is, and why software does it
If a currency costs slightly more in one place than another, you can buy it cheaply and sell it dear, and the difference is yours. That is arbitrage. It is one of the oldest trades there is, and in ordinary markets it is over in the time it takes a computer to notice.
Blockchains made it unusually easy. Anyone can create a trading pool, so the same pair of tokens is quoted in dozens of places at once, and those quotes drift apart every time somebody trades. They also made it unusually safe. On these chains a trade can be built so that every step happens together or none of them do. A trader can buy in one pool and sell in another inside a single transaction, and if the second half fails the first half never happened. The trade cannot go half-finished, which removes the risk that makes arbitrage dangerous elsewhere.
That combination gave crypto arbitrage its reputation as the closest thing to free money in the market. The catch is that it is free for everybody. Nothing stops a second operator from writing the same software, and nothing stops a hundredth.
The trade cannot go half-finished. That is what made it attractive, and it is also why the edge did not survive.
03 — The countWhy the headline figure is too big
Detecting arbitrage looks simple. Take a transaction, add up every token that moved, and if nothing came out negative and something came out positive, the trader ended ahead. Across the year that test flags around 160 million transactions and about $762 million of profit.
That figure is wrong, and the contract in section one shows why. Its trades pass the test. The tokens balance and the ether comes out positive, so a counter records several hundred thousand dollars of profit and moves on. What the counter cannot see is that the operator gives the ether back in a different transaction, hours or days later. The returning trade is in our data. It fails the arbitrage test, because in that one the trader ends down, so it is discarded. The profitable half is counted and the offsetting half is thrown away.
We applied a second test to every trade: the profit is only credible if it did not exceed the money that same transaction put in. A trade that turns $260 into $900,000 in one step did not earn that from a price difference.
| Twelve months, five chains | Detected → credible |
|---|---|
| Arbitrage transactions | 160,635,133 → 139,058,209 |
| Reported profit | $762,540,067 → $100,530,164 |
| Share of the reported figure that survives | 13.2% |
| After fees | $95,805,553 |
Roughly seven eighths of the headline number comes from trades where the profit is larger than the stake. This is not a flaw in the data. Every leg of those trades is present in the data. It is a limit of counting one transaction at a time, and any figure produced that way carries it.
Counting one transaction at a time has a second consequence, and it runs the other way. A trade only registers as arbitrage when every one of its steps is visible. Miss one step and the tokens stop balancing, something appears to have gone missing, and the whole transaction is filed as an ordinary swap. A venue that publishes its trades in a format a dataset does not read does not make arbitrage look smaller. It makes it disappear. We found one such class of pool on these chains, reconstructed the format from the raw records and folded it back in, which returned about eighty thousand cycles to the year that were otherwise invisible. Three more venues on Ethereum are still only partly readable, and whatever they hold is not in any number here.
04 — The declineSix years, and the money went out of it
Ethereum is the only chain with a long enough record to show the whole arc, and it is worth measuring in ether rather than dollars. Ether's own price swung by a factor of ten across these years, and a dollar chart mostly plots that. Counted in the currency the traders actually received, 2021 was the peak. The first eight months of 2026 came to under three percent of it.
A collapse like that usually means people left. Here the opposite happened. Every measure of activity grew while the money shrank.
| Ethereum arbitrage | 2021 peak → 2026 |
|---|---|
| Trades per year | 2.0 million → 2.5 million |
| Distinct executor contracts running them, peak month | 592 → 919, an all-time high |
| Profit per trade | $315.08 → $7.61 |
| Return on the capital committed | 1.75% → 0.75% |
One operator can run several of these contracts and one contract can serve many keys, so this counts machines rather than people. More of them, more trades, thinner spreads, and a fortieth of the money per attempt. The opportunity was competed away rather than displaced, which is what markets are supposed to do to easy profits, and it took about five years.
05 — The spreadFive chains running the same business
Blockchains differ in ways that ought to matter to a trader. Fees vary by a factor of a thousand. Blocks arrive every couple of seconds on one chain and every twelve on another. Some have a private market where traders pay to have their transaction placed; others have nothing of the kind.
None of it shows up in the margin.
Five different fee structures, five different block schedules, and a spread of three tenths of a percentage point between the best and the worst. Robinhood Chain, open to trading for only two months, clears a similar rate, though we measured it before applying the credibility test, so it is an indication rather than a like-for-like comparison.
Where the chains genuinely differ is size. Ethereum's arbitrage trades are ten times larger than anybody else's and it does very few of them. BNB Chain does seven out of every ten trades on these five chains and earns about sixty cents on each.
06 — The dustHalf of these trades book less than a penny
Sorting every credible trade by what it booked produces the least glamorous finding in the dataset. Just under half of them earn less than a penny, and after fees that group is collectively in the red.
Millions of transactions close loops worth fractions of a cent, run by software for which one more attempt costs almost nothing. At the other end, fewer than three thousand trades in the whole month earn a third of all the profit. The business is a very small number of worthwhile trades hiding inside an enormous amount of noise.
07 — The cutWho actually keeps the money
The operator who finds the trade is rarely the only one paid. On chains where transaction ordering is bought and sold, most of the profit is handed on for the privilege of going first.
| Where a dollar of Ethereum arbitrage profit ends up, 30 days | Share |
|---|---|
| Paid to the party that assembles the block | 49.3% |
| Burnt as network fees | 9.4% |
| Kept by the operator | 41.3% |
On BNB Chain the toll is heavier still. Payments from the busiest operators to a single relay address run to roughly the same size as their entire measured profit, in millions of separate payments with a median value near one and a quarter cents. That figure is an upper bound rather than a measurement, because those operators send other transactions too and we cannot separate every one.
Base, Arbitrum and Polygon pay their block producers nothing inside the arbitrage transaction itself. We found no bribe market on those chains, so the operator keeps everything after fees. Where ordering is auctioned off to one side of the trade, this measurement does not reach it. The absence of that market is the clearest structural difference we found between the chains, and it does not show up in their margins.
Sandwiching, the practice of surrounding somebody else's trade to move the price against them, turns out to be a smaller business than its reputation suggests. On Ethereum, forty-five addresses account for essentially all of it, earning about a fifth of what arbitrage earns on the same chain in the same month. On Base and BNB Chain the practice lost money over our window. Arbitrum recorded none.
08 — The concentrationThe days that carry the year
Averages hide the shape of this business. On BNB Chain, three days in December account for close to a quarter of the entire year's profit. On the largest of them, a hundred transactions out of nearly two hundred and sixty-five thousand hold almost all of the day's money.
| BNB Chain, 19 December 2025 | Value |
|---|---|
| Credible arbitrage trades that day | 264,969 |
| Profit | $7.1 million |
| Share held by the top 100 trades | 99.5% |
| Average for the other 264,869 trades | 13 cents |
We traced those trades leg by leg. They are real. An operator was buying a thinly traded token on one venue and selling it on another, settling in dollars, over and over. The returns are enormous because almost nobody else trades that token, which is the same reason the opportunity existed at all. Remove that one month and BNB Chain's margin for the year drops by a third.
This is why an arbitrage total quoted on its own is close to meaningless. On both chains where the headline is large, the headline is a handful of trades.
09 — The venuesWhere the trades actually happen
Across the five chains our scan covers twenty-one distinct exchange protocols and just under two hundred thousand individual pools. Uniswap is on every chain and dominates all of them, running from about half of trades on Arbitrum to nearly all of them on Polygon.
| The most common trade routes, 30 days (7 days for BNB Chain) | Share |
|---|---|
| Base — Uniswap against PancakeSwap | 48.6% |
| Base — inside Uniswap alone | 46.3% |
| BNB Chain — Uniswap against PancakeSwap | 41.9% |
| Ethereum — inside Uniswap alone | 78.0% |
| Polygon — inside Uniswap alone | 92.8% |
Base makes a useful point about which routes pay. Its two dominant routes are almost the same size by trade count, and one earns nearly six times the margin of the other. The profitable one stays inside a single exchange and moves between its own pools. Crossing between exchanges moves more money and keeps less of it.
10 — The limitsWhat this does not show
Every figure here is a floor. Three further Ethereum venues are between forty-five and sixty percent invisible to standard decoding, and we have not yet recovered them. Whatever they hold would add to these totals.
Polygon is missing two months. In January the raw blocks were recorded but the trades were never decoded from them, and seventeen days of December are absent entirely. Its annual figure covers about ten months of the year and should not be scaled up to twelve.
Credible profit measures capital that was put at risk and came back with a surplus. It is a ceiling on what could have been earned rather than a record of what anyone banked. Someone who reconciled every operator's wallet individually would arrive at a smaller number again. We did that for the largest operators on each chain, which is how we know the contract in section one ended its month with less than one ether.
| The record | Address or transaction |
|---|---|
| The Ethereum contract in section one | 0xa462d9ac…8c27a1 |
| The pool it traded against | 0x3187feb2…63c30f |
| One of its 435-ether trades | 0x5d815346…3114ad |
| The second-largest Ethereum operator, which ended the month down 59.5 ether | 0x1f2f10d1…6df387 |
| The BNB Chain token behind the December concentration | 0x586a74a6c7375a507e3e3ddfef891cb9d2477777 |
| The BNB Chain relay that collects the ordering toll | 0x4848489f0b2bedd788c696e2d79b6b69d7484848 |
This analysis covers Ethereum, BNB Chain, Base, Arbitrum and Polygon for the twelve months to 29 August 2026, plus Ethereum history from 2020. Optimism was measured and then excluded from the published totals. Solana and other non-EVM chains are out of scope and these figures are not a cross-chain total.
All profit figures are restricted to trades whose surplus did not exceed the capital the same transaction committed. That test is arithmetic and needs no outside data, but it measures capital at risk rather than money banked. Wallet-level reconciliation of the largest operators on each chain returns smaller numbers again.
Native tokens are converted at a fixed reference rate for the twelve-month window rather than at spot on each day, so that month-to-month movement reflects trading activity rather than token prices. The six-year Ethereum series uses per-month prices instead, because a fixed rate cannot describe six years.
Polygon excludes Polymarket, which is a prediction market rather than an exchange pool. Base fee data for June 2026 is excluded because the source figures for that month are inflated by a factor we have reported upstream. BNB Chain coverage of the specialist pools in section ten reaches back about twenty-five days, so no trend should be read from that chain's figure.
Payments to block builders and relays are attributed to the addresses that received them. They are not statements about the conduct of any named company.
Run this kind of analysis on your own data
Every figure in this investigation came from Bitquery's multi-chain archive: trades, transfers and pools across 40+ networks, with the raw event records behind them. The same data powers trading desks, risk teams and on-chain research.