LESSON 7 OF 10·Expert10 min

Sniper & Bundle Forensics: See the Launch Behind the Launch

Most 'organic' Pump.fun launches are bundled. Learn to read the first block on-chain — cluster first-buyers by funding source, measure bundle supply %, and know the real float before you ape.

Before you buy anything, one question decides your risk: how much of the supply did the team quietly grab in the first block? A “bundle” is a coordinated first-block buy that looks like organic demand but is one entity holding the float — and the wallets that can dump on you. It’s all readable on-chain.

What a bundle actually is

A bundle uses an atomic transaction group (typically a Jito bundle — see Transaction Landing) so the creator and a set of buy wallets land in the same block, before the public. The chart looks like instant organic interest; in reality a handful of related wallets own a large slice of supply at the floor.

Step 1 — Pull the first trades

Get the earliest signatures on the token’s bonding curve account (paginate to the oldest). The creation tx plus the first cluster of buys is your evidence set.

EARLIEST ACTIVITY
const [bc] = PublicKey.findProgramAddressSync(
  [Buffer.from("bonding-curve"), mint.toBuffer()],
  new PublicKey("6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P")
);
// paginate getSignaturesForAddress(bc, { before }) back to the oldest page
// the first block of buys after creation = your candidate bundle

Step 2 — Cluster by funding source

For each first-block buyer, trace the incoming SOL that funded it. Wallets funded from a common source (or in a fan-out pattern from one wallet) are almost certainly one operator. This funding graph is the single most powerful de-anonymizing tool on Solana.

FUNDING TRACE
async function funder(wallet: string): Promise<string | null> {
  const sigs = await conn.getSignaturesForAddress(new PublicKey(wallet), { limit: 1000 });
  const oldest = sigs.at(-1)?.signature;              // first thing that ever touched it
  const tx = await conn.getParsedTransaction(oldest!, { maxSupportedTransactionVersion: 0 });
  // find the SystemProgram.transfer that first funded this wallet → return its source
}
// Group first-block buyers by funder(). Same funder = same entity.

Step 3 — Measure the bundle

Sum the token balances of the clustered wallets and divide by supply. That percentage is the number that matters:

Bundle % of supplyRead
< 5%Low pre-load. Float is mostly public.
5–15%Typical. Watch the cluster for early sells.
15–30%Heavy. They can move the chart at will.
> 30%You are exit liquidity. Assume a coordinated dump.
Bundle % is simultaneously a rug-risk signal, a real-float measure, and a dump-pressure gauge. A token can have a beautiful chart and a 40% bundle — the chart is the bait.

Using it live

  • Automate the check into a pre-buy gate: reject anything over your bundle-% threshold.
  • Watch the clustered wallets after entry — the first coordinated sell from the cluster is your exit signal.
  • Cross-reference the dev wallet’s history (next lesson): serial bundlers repeat the pattern.

FAQ

Is every bundle a scam?
No. Some teams bundle a modest amount to seed the chart and defend against snipers. The danger is size and intent — a small, transparent bundle is different from 35% of supply hidden across 20 wallets.
Can operators defeat funding-graph clustering?
They try — routing through CEX withdrawals or fresh intermediaries. It raises the cost but rarely fully hides a same-block bundle, because the timing correlation itself is a signal even without a shared funder.
What tools already do this?
Several public analytics products surface bundle % automatically. Building it yourself is the point of this lesson — you understand exactly what the number means and can tune the clustering.