Arb scanner results, explained
The scanner watched the same trade on multiple Solana venues and asked one question: could a normal person have captured these price gaps? Data below: 10 day-files, 56 candidates, 12 Aug, 5:16 am → 28 Aug, 5:06 am (Sydney). Everything is paper — no wallet was involved.
The verdict
56 of 56 candidates looked profitable at the moment the scanner saw them (+$1.7101 in total). Re-quoted a median of 12373ms later — roughly when your transaction would land — the same round trips total −$0.2239, and 30 of the winners had evaporated. That gap is the race you would be losing to co-located bots. This is why the experiment stays paper.
Same trades, two moments in time
Blue is the edge the instant it was spotted. Orange is the same round trip re-priced ~12373ms later — roughly when a transaction sent from your laptop over a public RPC would actually land. The difference between the rows is the latency race.
Total net P&L (after modeled fees)
Candidates that were profitable
By pair
Volatile pairs tend to show more (and bigger) edges — which also die faster. “Evaporated” counts instant winners that were losers by the re-check.
| Pair | Candidates | Median gross edge | Net $ at first sight | Net $ after re-check | Evaporated |
|---|---|---|---|---|---|
| SOL/USDC | 50 | 30.5 bps | +$1.4261 | +$0.0631 | 25/50 |
| JUP/USDC | 4 | 24.8 bps | +$0.1749 | −$0.1276 | 3/4 |
| BONK/USDC | 2 | 78.2 bps | +$0.1091 | −$0.1593 | 2/2 |
Which venue combinations
Where the price gaps showed up. A combo that appears constantly is usually a fee/liquidity quirk, not free money.
| Round trip | Candidates | Evaporated |
|---|---|---|
| buy Whirlpool → sell Meteora DLMM | 25 | 17/25 |
| buy Meteora DLMM → sell Whirlpool | 22 | 8/22 |
| buy Meteora DLMM → sell Raydium | 3 | 1/3 |
| buy Raydium → sell Meteora DLMM | 3 | 2/3 |
| buy Whirlpool → sell Raydium | 2 | 1/2 |
| buy Raydium → sell Whirlpool | 1 | 1/1 |
How big were the edges?
Gross edge size at first sight, before fees. 1 basis point (bp) = 0.01%. On a $10 notional, 20 bps gross is about 2 cents — fees and the race eat from there.
When edges appear (Sydney time)
Crypto never closes, but activity clusters — US hours (~11:30pm–6am Sydney) and news moments tend to produce the most dislocations.
What to do next
- Collect at least a few days, across different hours — the “when do edges appear” chart only gets honest with volume.
- Curious how the atomic transaction would be built anyway?
npm run exec:simbuilds the real two-leg transaction and simulates it against your RPC without ever sending. Readsrc/executor.tsalongside. - The honest conclusion to aim for: either edges do not survive the race (usual), or they seem to — in which case re-check every assumption (fees, slippage, rent) before even thinking about the $10 burner. Treat live mode as tuition, not income.