The sandwich attack vector built to be missed.
部分视频或图片暂未收录,已在正文保留提示;需要时可查看原文。查看原文 ↗
**Twenty wallet trios funded through a privacy pool have turned 78 SOL into 6,500, about $690K, since late September. Each one buys pump.fun tokens a beat ahead of the crowd and sells into it a second later from a different wallet, a split that standard sandwich detectors miss. Their buys land in Harmonic-led slots more than twice as often as chance would predict.
Abstract
**I traced 20 wallet trios on, each with a buy wallet, a sell wallet and a treasury, running the same pump.fun trade.
(1) One design, repeated in every trio. The buy wallet buys a token and, in the same transaction, approves the sell wallet to spend it without limit. A few slots later the sell wallet sells the exact amount. Every buy carrying this approval in two samples of live traffic came from flagged wallets.
(2) Funded through a privacy pool. Every buy wallet's first SOL was a Privacy Cash withdrawal.
(3) Large and still running. The treasuries held 6,214 SOL on 15 October, and every trio was still trading.
(4) Built to slip past detectors. Buy and sell come from different wallets, a few slots apart. Solscan's sandwich detector flags nothing.
(5) It prefers Harmonic slots. their validators led 25.9% of slots and 57.6% of the bot's buys.
(6) It sits right behind other buyers. A third of its buys land in the very next spot after another buy of the same token, against 9% for ordinary traders.
(7) It stamps its own traffic. About one in five of its transactions carries the same marker account.
I. Introduction:
A classic sandwich attack fits inside one block. The bot buys right before the victim, the victim's trade pushes the price up, and the bot sells right after. That makes it easy to spot: a buy and a sell from the same wallet, with someone else's trade in between, all in the same block.
The trade in this report runs on the same idea with the pieces pulled apart.
On pump.fun, a token's price comes from a bonding curve. Every buy moves the price up and every sell moves it down. If a burst of buying is about to hit a token, buying first and selling into the burst is close to free money, and the people buying in that burst pay more because someone got there first.
This operation spreads that across wallets and across time. One wallet buys. A different wallet sells a few slots later, which on Solana's 200ms slots is about a second. Look at either transaction alone and nothing seems wrong.
II. How the Trio works:
This is trio 1's most profitable round in the sample.
Slot 457,296,934, position 111. A wallet starting 7epqKc4V buys about 0.67 SOL of the token 43P33…pump.
Position 112. The buy wallet buys 2.82 SOL of the same token and, in the same transaction, approves the sell wallet to spend its tokens without limit.
buy leg
Coinbase validator running agave harmonic
The next five slots. At least 30 other wallets make 34 buys worth at least 19.3 SOL. One of them, in the bot's own slot, is another trio's buy wallet.
Slot 457,296,936. The sell wallet tries to sell and fails.
Slot 457,296,939. The sell wallet sells the exact same 34,425,874.714972 tokens for 4.18 SOL, taking them straight out of the buy wallet's account. Profit on the round: 1.32 SOL.
sell leg
Afterward the sell wallet sends SOL back to the buy wallet to fund the next one, and every 6 to 12 hours it sweeps the rest to the treasury.
sweeps from sell wallet
The approval is the part that matters most. The buy wallet never sends its tokens anywhere. It gives the sell wallet permission to sell them on its behalf, so on a block explorer the sell shows up as a transaction signed by a wallet that never held the token.
III. Scale
| Trios | 20 |
|---|---|
| First treasury sweep | 27 to 30 September 2026 |
| Combined treasury balance, 15 Oct | 6,214 SOL |
| Starting capital, from Privacy Cash | 77.6 SOL |
| Still in the trading wallets, 15 Oct | 323 SOL |
Every treasury started within the same three days and has filled at a similar rate. That alone points to one operator.
The funding follows the same pattern. The first SOL each buy wallet received was a withdrawal from Privacy Cash, a privacy pool on Solana: between 1.4 and 6.0 SOL each, 77.6 SOL in total, all between 27 and 29 September. A privacy pool exists to break the link between where money comes from and where it goes, and whoever set this up used one before making a single trade. All 20 withdrawals were submitted by the same relayer, but that relayer handles withdrawals for plenty of unrelated users, so it doesn't identify anyone.
The setup was fast. Trio 1's buy wallet received its 4.87 SOL at 20:23 UTC on 27 September. A minute later it sent 0.1 SOL to the sell wallet. Three minutes after that it made its first buy, already using the approval.
The growth since then is steep. 77.6 SOL went in at the start. By 15 October the treasuries held 6,214 SOL and the trading wallets another 323 SOL. In under three weeks, roughly 78 SOL became 6,500, worth about $690K at 15 October prices.
One more thread ties the wallets together. Since 22:15 UTC on 28 September, part of the operation’s traffic has carried a marker: an instruction that calls Solana’s Noop program, a program that does nothing, with a single account attached, 5XKMLY…h5VCf. The account holds no SOL and no code. Its only effect is that every transaction carrying it shows up under its address.
Between 12:53 and 17:05 UTC on 15 October, the window behind every other figure here, the 20 trios sent 10,353 transactions and 2,179 of them carried the marker, about one in five. Every one of the 20 used it, each at least 57 times.
The marked transactions also behave differently. 43% of them succeeded, against 70% of the unmarked ones.
IV. Where The Trades Land
**During this window, validators on the above list led 18,077 of 69,821 slots, or 25.9%. A bot that didn't care whose slot it traded in would land in their slots about a quarter of the time. This one landed there 57.6% of the time: 532 of 924 buys. That gap is about 22 standard errors wide, and it holds for every trio on the list, from 43% at the low end to 71% at the high end.
The placement is not random. In one window, Harmonic-listed validators led 18,077 of 69,821 slots (25.9%), yet the bots’ buys landed in their slots 57.6% of the time (532 of 924), more than double the baseline and about 22 standard errors from chance. All 20 trios beat the baseline (43% to 71%), and profitable rounds were more concentrated than losing ones (61.6% versus 54.4%), though the overall gap is the stronger signal. The pattern held across a larger sample of 4,413 buys from September 29 to October 12: the same validators held about 25% of slots but took 59% of front legs. Of the buys that missed their slots, 49% landed in the leader window immediately before one of theirs, against roughly 26% under random placement, inside the fanout range where the packet is already visible to the next leader’s pipeline. In total, about 79% of front legs landed either with a listed validator or one leader ahead of it. Some of these validators rank among the larger names on the list. Slot leadership alone does not prove validator knowledge or participation, but the concentration is extreme. Both sets stopped trading around 20:17 UTC on October 12. The first set’s treasury received 232.41 SOL and has never sent any out, and its three wallets held 246.8 SOL against 4.72 SOL of starting capital, a net gain of roughly 242 SOL in 14 days.
The rounds that made money leaned on Harmonic slots a little more than the ones that didn't: 61.6% of the 404 profitable rounds, against 54.4% of the losing ones. That difference is real but small next to the headline gap.
Some of the leaders in this data are among the largest validators on their list. Leading a slot where this bot traded says nothing about whether that validator knew or took part.
V. Who Pays
The people who lose money here are the ones who buy after the bot and before it sells. They pay a higher price because the bot bought first, and the bot's sell then pushes the price down on them.
That's why the bot's position in the block matters. Across 919 rounds, its buy landed directly behind another trade on the same token 33.2% of the time, and almost always that trade was a buy. To see whether that's unusual, we ran the same test on 15,994 ordinary trades on the same tokens, taken from the moments just before each of the bot's buys.
| Directly behind another trade on the same token | Ordinary trades | This bot |
|---|---|---|
| Harmonic-led slots | 11.8% | 39.7% |
| Other slots | 8.0% | 24.4% |
| All slots | 9.2% | 33.2% |
The bot lands right behind another buyer about three times as often as everyone else, in every kind of slot. That's hard to do without seeing the other buy before it lands. The bot does land like this more often in their slots, but ordinary trades do too, and by a similar proportion, so that part reflects how they orders its blocks rather than anything about this bot.
So the picture is a bot that consistently gets in just ahead of the crowd, often by placing itself immediately behind the first buyer. Whose orderflow that first buyer belongs to is still an open question.
How the Bot Could Know When to Buy:
There are at least four ways the bot could know when to buy:
-
The leader leaks it. The slot's validator, or its software, shares incoming transactions.
-
The block-building pipeline leaks it. Someone in the auction or bundle flow trades on what they see.
-
The sending path leaks it. A landing service, RPC or trading bot passes the first buyer's transaction on.
A Harmonic-heavy pattern points toward the first two without settling between them.
here's a list of all wallet trios I've found so far:
https://drive.proton.me/urls/QX2SG6699M#SfDimVoGBrEV
The people who lose are the ones who buy after the bot and before it sells. They pay more because someone got there first, then the sell pushes the price down on them. This taxes every KOL and every retail buyer on a new launch. Fewer launches means less fee and tip revenue for the validators whose slots are being used this way. The trade is built so no single transaction looks like an attack. Detectors that look for one wallet on both sides of a victim inside one block will keep missing it. Following the unlimited approval instead of the signer catches every one of these trios.













