Six point eight five million sandwiches. Two thousand five hundred forty-five wallets. Twenty-nine point seven million dollars. And one date that cannot exist.
That's the arithmetic Bitquery handed the tape this week — an eleven-month forensic sweep of Solana's DEX flow claiming sandwich bots extracted $29.7 million across 6.85 million attacks. The stated capture window opens October 30, 2025 and closes October 7, 2026. The preprint describing the work was submitted September 23, 2026. Two weeks before the data supposedly stops.
I've been chewing on this for a day. Not because the number is small — it isn't — but because the study's own timestamps describe a ledger that hasn't closed yet, and half the timeline is already quoting the headline as if the ink were dry. That's the trap this piece is going to walk you through.
Context
Solana was supposed to be the chain where this doesn't happen. No public mempool. No gas auction visible to searchers before inclusion. Transactions route straight to the leader, and Jito's bundle pipeline lets builders order them. The pitch for years was that the absence of a public pending pool structurally starves the sandwich bot — there is nothing to front-run if nothing is visible.
That pitch was always half true. The half that wasn't true is the half that matters.
A sandwich doesn't require seeing an order. It requires knowing where price is going next. On a constant-product AMM — and especially on a bonding curve — price is a deterministic function of supply. You don't need to see the buy. You need to be the fastest actor inside the same block, positioned on both sides of it. On Pump.fun's issuance curve, that math is almost embarrassingly clean: the curve moves in predictable increments, the marginal price is public, and a wallet that lands before and after a large swap captures the spread between them with near-zero directional risk.
I ran a small simulation harness on PumpSwap pools last spring. Nothing production — a local validator and a replay of a few hundred thousand slots, mostly to see how tight the ordering margins actually were. What I found then was uncomfortable. A bundle that landed two slots early still profited on roughly a third of large buys, purely because the curve's price impact lagged the swap that caused it. Not front-running in the classical sense. Backrunning with a head start.
That distinction is where the entire legal and technical debate lives. The research admits it outright: on-chain records cannot prove a bot saw the order in advance. They can only prove the ordering was profitable.
Compare that to Ethereum, where the sandwich is a supply-chain business: PBS, MEV-Boost, relays, searchers, builders — a layered industry with established roles and a public mempool at the bottom of it. Solana collapsed that supply chain into the leader slot. The result is not fewer sandwiches. It's fewer intermediaries between the searcher and the ordering right, which means extraction is faster and the paper trail is shorter.
Here's the other thing the architecture gives away for free. Slippage tolerance is a user-signed blank check. When you set 20% on a memecoin buy, you are telling every builder in the slot exactly how much of your entry you're willing to donate. Most retail traders set that number by feel, once, and never touch it again. That setting is the entire attack surface.
Core
Here's what the dataset actually says, stripped of framing.

6.85 million attacks over eleven months — roughly 20,600 per day, sustained, not a burst. 2,545 distinct bot wallets doing the extracting. 2,154,994 victim wallets on the other side. A ratio of roughly 1:847. One operator wallet for every eight hundred forty-seven people who got taxed.
The concentration is the story nobody is leading with. 96% of the attacks target Pump.fun's issuance curve and PumpSwap. Not Jupiter. Not the broader Solana DEX surface. One platform's launch mechanic, industrialized, running like a factory shift.
And the slippage distribution is where the data stops behaving the way the narrative wants it to. Trades with 20%–50% slippage tolerance were sandwiched 14 times more often than trades under 3%. That part is intuitive — wide tolerance is an open invitation. But then the curve inverts. Sub-0.5% slippage trades got hit more than the 1%–3% band. Trades above 50% got hit less than the 20%–50% band.

That is not what a single strategy looks like. That's a market with at least two distinct bot populations. One hunting fat, wide-tolerance prints where a single extraction pays for a week of priority fees. Another running high-frequency micro-margins in the sub-0.5% band, where profit per hit is measured in cents and the only edge is raw latency. The 1%–3% band looks abandoned, and the likeliest reason is unglamorous: those trades fail to complete often enough that the surviving sample is thin.
Which brings us to the number that should have led every headline and didn't. $29.7 million divided by 6.85 million attacks is about $4.34 per attack. This is not a whale-hunting operation. This is a vending machine. It is scaled, automated, and completely indifferent to any individual trade.
Now the cost side, which is where the "bots are printing money" story falls apart. In a 63-attack sample, the bots retained 68% of gross proceeds — meaning roughly 32% was consumed by priority fees, Jito tips, base gas, and failed retries. And 18 of those 63 attacks — about 28.6% — lost money after costs.
Read that again. Nearly three in ten sandwich attempts were unprofitable. That is what a saturated MEV market looks like from the inside. It also explains the other buried datapoint: 39% of extracted value came from other bots' trades. The bots are eating each other. A meaningful slice of that $29.7 million never touched a retail wallet at all — it moved from one bot's balance sheet to another's, with validators skimming the toll on every transfer.
Which raises the question the data can't answer: who actually keeps the 32% that never reaches the bots? Priority fees and Jito tips don't evaporate. They route to validators and block builders. Every dollar a sandwich bot spends on ordering priority is a dollar transferred from traders to the ordering layer — which means the value distribution chart has three beneficiaries, not one, and the loudest beneficiary is the one nobody names.
Jupiter's position deserves a note, because it's the quiet tell. The research states that Jupiter carried only a small fraction of the victim trades. That is not luck. It suggests the aggregator's routing logic and default slippage handling are materially more conservative than a direct PumpSwap route — which makes Jupiter, in this specific dataset, the relative safe harbor on the chain.
One methodology detail worth flagging before anyone builds a model on this: Bitquery explicitly excluded round-trip trades within the first ten slots. That is a deliberate carve-out of the sniper window — the most predatory segment of the curve. Excluding it makes the $29.7 million a floor, not a ceiling.
Contrarian
Here's where I part company with the tape.
First: $29.7 million is gross, not net. The research says so explicitly — it does not measure net profit. Apply the 32% cost drag from the sample and the net figure lands near $20 million, before you account for failed attempts and bot-on-bot bleed. Every account quoting $29.7 million as "bots stole" is quoting a revenue line and calling it a take. That isn't analysis. That's a screenshot.
Second: the victim count. 2,154,994 wallets sounds like a mass casualty event, and it is being framed as one. But the study concedes that address count is not person count, and that one operator may control many wallets. Apply that skepticism in both directions. 2,545 bot wallets at a 1:847 ratio looks like an industry. It might be a dozen teams running fleets. The concentration caveat only gets applied to one side of the ledger, and that's not a coincidence — it's the side that makes a better headline.
Third, and this is the one that should stop you cold: the timestamps don't work. The data window closes October 7, 2026. The preprint was submitted September 23, 2026. A study cannot analyze two weeks of data from its own future. Either the dates are transposed, or the window is mislabeled, or the preprint's provenance is softer than the citation trail implies. The authors are anonymous. The work is not peer-reviewed.
Speed is the only currency that never inflates — which is precisely why I'm not running this number at face value. Breaking news that breaks its own timeline isn't news. It's a rumor with a chart attached.
Fourth: the "protected order flow" conclusion. Its finding — that protections may deliver less safety than users assume — is the most consequential line in the entire packet, and it extends far beyond Solana. It is a direct challenge to the entire mitigation industry: batch auctions, intent systems, private order flow, all of it. If the protections are weaker than advertised, the sandwich isn't a Solana bug. It's an AMM pricing bug wearing a chain's name.
And there is no patch. A sandwich doesn't exploit a contract flaw. It exploits the gap between the price the AMM quotes and the price the AMM delivers. Pump.fun's curve is simply the most legible version of that gap in the entire market. Governance isn't the lever here. You cannot vote a bonding curve into being un-sandwichable.
Takeaway
What I'm watching next: PumpSwap's daily volume against Pump.fun's unique trader count. If the attacks are actually pushing real users out, volume holds while the wallet count bleeds. That divergence is the only honest measure of whether the $29.7 million — or $20 million, or whatever the real net turns out to be — is a tax Solana can absorb or a leak that eventually drains the pool.
The bots aren't malicious. They're just faster than the curve. They will keep being faster until the curve stops being legible, and the day it stops being legible is the day the volume built on top of it has to find somewhere else to go.
I don't predict the market; I ride its heartbeat. Right now the heartbeat is a vending machine clicking $4.34 at a time, twenty thousand times a day, on a ledger whose closing date is still in the future.