How Pump.fun Volume Bots Work and How to Detect Wash Trading
Volume bots cycle SOL between controlled wallets to inflate pump.fun token rankings. We reverse-engineer the common patterns — wallet clustering, inter-transaction timing, and fee signatures — that identify wash activity on-chain.
Pump.fun's bonding curve mechanic creates a direct incentive to manufacture volume: higher trade counts push a token up the trending leaderboard, which draws organic buyers, which — for the bot operator — is the entire point. The mechanism is simple, the execution is not. Understanding how these systems are built is the fastest way to understand how they break.
The Basic Loop
A wash-trading volume bot on pump.fun is, at its core, a wallet fan-out controller. The operator funds a "mother" wallet with SOL, derives a set of ephemeral keypairs — typically 20 to 100 — and scripts a cycle: mother distributes SOL to children, children buy the target token in staggered transactions, children sell back into the curve, SOL is swept to mother, repeat.
The buy and sell sides are usually separated by 30–180 seconds per wallet to avoid the most naive pattern matching. Some implementations randomize trade sizes between 0.05 SOL and 0.4 SOL per leg. The net cost per cycle is the bonding curve's buy-sell spread (which widens as supply increases) plus two sets of transaction fees. On a low-liquidity token near the start of the curve, expect to burn 2–6% of cycled capital per round trip.
Wallet Clustering Signatures
The clearest fingerprint is funding lineage. Every child wallet in a volume bot cluster traces its SOL balance to a single source transaction within the same epoch — often within the same block. On-chain, this looks like one wallet sending 0.1–0.5 SOL to 30 addresses in a single batch transaction or a tight burst of sequential ones.
Graph analysis closes the loop. If you build a directed graph of SOL transfers for all wallets that touched a given token in its first six hours, a wash cluster appears as a near-complete bipartite subgraph: mother → children on the left, children → mother on the right, with no meaningful edges to the broader ecosystem. Organic retail wallets have heterogeneous inbound edges — Phantom top-ups from Coinbase, bridged funds from Wormhole, prior DEX activity across multiple tokens.
A useful heuristic: if more than 40% of a token's volume wallets share a funding ancestor within two hops, treat it as a strong wash signal.
Transaction Timing Patterns
Even randomized delays leave timing artifacts. Volume bots are scheduled software; they produce inter-transaction intervals that are uniform in distribution — not in value. Real traders cluster around news events, have long idle periods, and generate fat-tailed interval distributions. A bot running randomized 30–120 second delays produces a near-uniform distribution across that band.
The more sophisticated implementations add Gaussian noise to their timing, but the standard deviation is usually too tight. Pull the timestamp delta between consecutive buys from the same cluster across multiple cycles and plot the distribution. Authentic long-tail behavior is hard to fake at scale without also losing the throughput that makes the bot economically worthwhile.
Also watch for slot-level synchronization: when two or more child wallets land transactions in the same slot (or consecutive slots), that indicates a coordinated submission from a single RPC caller batching requests — not two independent humans hitting buy at the same millisecond.
Fee and Priority Fee Signatures
Compute unit prices are a surprisingly stable fingerprint. A bot that was written once and deployed many times will use the same hardcoded setComputeUnitPrice value — often a round number like 100,000 or 500,000 microlamports — across every wallet it controls. Real users have wildly varying priority fees depending on when they configured their wallet client, which client they use, and what network congestion looked like at the time.
Cross-referencing compute unit price against wallet funding lineage tightens the signal dramatically. If 28 out of 30 wallets with a shared funding ancestor all submitted transactions at exactly 200,000 microlamports, that is not a coincidence — it is a config file.
Why Detection is Not Prevention
Knowing these patterns does not let you front-run the exit cleanly. By the time a token's wash volume is detectable through statistical analysis, the operator is often already in the sell cycle. The bonding curve's price impact also means that a large holder exiting triggers slippage that punishes any organic buyer who got in mid-cycle.
The practical use of these detection methods is portfolio-level filtering: before entering any pump.fun token, run a quick funding-graph check and inter-transaction interval test on the top 20 volume wallets from the first two hours. Tools like Helius's enhanced transaction API and custom RPC indexers make this tractable in under a second per token with a pre-built pipeline. This is the kind of infrastructure that separates systematic trading from guessing — the same philosophy behind the automated strategies we build and run at TierZero.
Reading the Bonding Curve Against the Volume
One signal that cuts through noise entirely: compare cumulative volume against the bonding curve's current supply position. On a genuine organic run, volume and supply grow in rough proportion. A wash-heavy token will show volume numbers wildly out of proportion to actual token distribution — the same SOL is cycling through the curve repeatedly, buying and selling the same supply, so reported volume balloons while real holders remain thin.
Pull the token's mint account, enumerate all current holders by balance, and calculate the Gini coefficient. Wash-traded tokens near the start of their life typically have Gini above 0.92 — a handful of bot-controlled wallets hold nearly all supply. Organic tokens with 300+ trades in the first hour tend to sit in the 0.70–0.85 range as retail distributes.
If you're building detection pipelines, execution strategies, or want to understand how production-grade Solana bots are actually structured, reach out to the TierZero team — we've shipped this infrastructure and can cut your build time significantly.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article