Pump.fun & PumpSwap

What is a pump.fun graduation, and why does it matter?

A pump.fun graduation is the moment a token fills its bonding curve and migrates to a live PumpSwap pool. Classic graduations seed roughly 85 SOL of liquidity; Mayhem-mode ones can seed single digits.

8 min readAnton Gilborn

A pump.fun graduation is the moment a token fills its bonding curve and migrates into a live PumpSwap pool. It ends the launch phase and opens real market trading. Classic graduations seed roughly 85 SOL of liquidity; Mayhem-mode graduations can seed single digits, which is why the amount matters as much as the event.

What is a pump.fun graduation?

Every pump.fun token launches onto a bonding curve: a formula that sets price purely as a function of how much of the supply has been bought. There is no order book and no counterparty. Buying pushes the price up the curve, selling slides it back down, and the curve itself holds the SOL.

That arrangement is deliberately temporary. The curve exists to bootstrap a token from zero without anyone having to seed a pool. Once enough of the supply has been bought - once the curve fills - the token has accumulated enough SOL to stand on its own, and pump.fun migrates it.

That migration is the graduation. The accumulated SOL and the remaining token supply are deposited into a PumpSwap liquidity pool, and the token starts trading on an automated market maker like any other Solana asset.

So graduation is not a price target being hit, and not a listing being granted by anyone. It is a mechanical consequence of the curve completing.

What actually happens at the moment of graduation?

Three things, effectively at once:

  1. The bonding curve retires. It is complete; no further curve trading occurs.
  2. A PumpSwap pool is created and seeded with the SOL the curve accumulated plus the token side of the pair.
  3. Price discovery changes hands. Price stops being a curve formula and starts being whatever the pool's ratio says, moved by real two-sided flow.

The clearest way to see it is to put the two bookends of a token's life side by side - the event when it was created, and the event when it graduated:

created - the token joins the curve

Emitted at launch. There is no pool yet, no liquidity, and no market price - only a curve.

{
"type": "created",
"source": "pump_fun",
"mint": "2ajrYELtYtvtJd8fQAGXpfQbgXXZe3YjPtNJ9K3bpump",
"name": "Pepe",
"symbol": "PEPE",
"creator": "7BvK3nF2HxR8mP5qW9tL4sY6jC1dA8eU3gN2fM5A1zXY",
"mayhemMode": false,
"slot": 309812345,
"timestamp": 1751004768000
}

graduated - the token gets a market

Emitted 75 minutes later. Two fields exist here that could not exist before: how deep the pool is, and how long the curve took to fill.

{
"type": "graduated",
"source": "pump_fun",
"mint": "2ajrYELtYtvtJd8fQAGXpfQbgXXZe3YjPtNJ9K3bpump",
"name": "Pepe",
"symbol": "PEPE",
"creator": "7BvK3nF2HxR8mP5qW9tL4sY6jC1dA8eU3gN2fM5A1zXY",
"mayhemMode": false,
"liquiditySol": 85.005,
"timeToGraduateSeconds": 4523,
"slot": 309845102,
"timestamp": 1751009291000
}
The same token at both ends of its launch phase. Graduation is the point where 'a token exists' becomes 'a token has a market' - and liquiditySol plus timeToGraduateSeconds are the two facts that only exist on the far side of it.

Note what is not in between: there is no per-tick curve-progress feed. A token is on the curve, and then it is graduated. The transition is the event.

Why does graduation matter?

Because it is the cheapest high-quality filter in the ecosystem.

Anyone can create a pump.fun token in seconds for almost nothing, which is exactly why a creation event tells you very little on its own. Graduation is different: it cannot be faked cheaply, because filling a curve requires other people to commit actual SOL. The token has passed a capital-weighted vote.

That makes the moment useful in a few concrete ways:

  • It is the first tradable moment on the open market. Before graduation there is no pool to route through. Sniper bots and market makers that want to be early to a PumpSwap pair are, by definition, waiting on this event.
  • It is a quality signal for discovery. Filtering a firehose of new launches down to graduations removes the overwhelming majority of noise without any modelling at all.
  • It is the anchor for measuring a launchpad. Graduation rate, time-to-graduate, and seeded liquidity are the three metrics that describe whether a launchpad is actually producing viable tokens or just producing tokens.

Catching it late is expensive, which is the practical reason it is usually consumed as a stream rather than a periodic query. If you need the implementation - subscribing, filtering, backfilling after a disconnect - that is covered in how to detect pump.fun graduations the moment they happen. This post is about reading the event, not receiving it.

How many pump.fun tokens actually graduate?

A small fraction - and the exact fraction moves constantly with market conditions, so any hardcoded number in a blog post is wrong within a week. Query it instead:

curl "https://api.anaxer.com/v1/launchpads/stats?windowHours=24" \
  -H "Authorization: Bearer YOUR_KEY"
{
  "windowHours": 24,
  "window": { "from": 1750922469000, "to": 1751008869000 },
  "sources": [
    {
      "source": "pump_fun",
      "creations": 738,
      "graduations": 25,
      "graduationRate": 0.0339
    }
  ]
}

In that particular 24-hour window, 738 launches produced 25 graduations - a rate of about 3.4%. Treat that as one sample, not a constant. The endpoint covers pump_fun, raydium_launchlab, and bonkfun, so the same call also tells you how the launchpads compare to each other on the only metric that matters. See the launchpad stats endpoint for parameters and the full response shape.

The useful reflex here is to stop treating the graduation rate as trivia and start treating it as a market-condition indicator. A rate that halves week-over-week is telling you something about risk appetite across the whole launchpad, not about any individual token.

Are all graduations equal? No - and this is the part that catches people

The word "graduation" implies a uniform standard. It is not one.

A classic pump.fun graduation seeds roughly 85 SOL into the PumpSwap pool. That is a meaningful amount of depth: the pool can absorb ordinary trade sizes without the price moving violently.

Mayhem-mode tokens use a different curve and can graduate with dramatically less - sometimes single-digit SOL. The event looks identical in shape. It says "type": "graduated". But a pool with a few SOL in it behaves nothing like a pool with 85: slippage is severe, the price is trivially pushed around, and an exit can be much harder than the entry.

'Graduated' is a state, not a quality score

If your bot or alert treats every graduated event as equivalent, Mayhem grads will dominate your signal count while being the least tradable tokens in the set. Read liquiditySol and mayhemMode on every event before acting - and note that liquiditySol can be null when the seeded amount is unknown, which you should treat as "unverified", not as "zero".

This is why the two enrichment fields matter more than the event itself:

FieldWhat it tells youHow to use it
liquiditySolHow much SOL actually entered the poolDepth check. A floor here is the single most effective quality filter available
timeToGraduateSecondsHow long the curve took to fillVelocity signal. A curve that filled in minutes had very different demand from one that took three days
mayhemModeWhich curve the token launched onContext for interpreting the other two - an 8 SOL grad is not an anomaly if it was Mayhem

Together they turn a binary event into something you can actually rank. "A token graduated" is a notification. "A non-Mayhem token graduated with 90 SOL of liquidity after filling its curve in 11 minutes" is a decision.

What can you build once you can read graduations properly?

  • Quality-filtered alerting. Telegram or Discord notifications that fire only above a liquidity floor, instead of firing on everything and training you to ignore them.
  • Entry automation. Bots that act at pool creation, where being early is the entire edge.
  • Launchpad analytics. Graduation rate and time-to-graduate tracked over time, across pump.fun, LaunchLab, and bonkfun.
  • Creator reputation. Graduation events carry creator, so you can measure which wallets repeatedly ship tokens that actually finish the curve - and which ship hundreds that never do.

Next steps

Now that the concept is clear, the implementation is short: detect graduations in real time walks through the stream, the excludeMayhem and minLiquiditySol filters, and backfilling after a disconnect. To follow a token across its whole life rather than just the finish line, pair it with tracking launches in real time. The pump.fun API covers the full picture - launches, graduations, PumpSwap trades, and prices - and graduations are included on the free plan, so you can measure all of this before spending anything. Grab a key in the console.

Frequently asked questions

How much SOL does a pump.fun token need to graduate?

A classic pump.fun graduation seeds roughly 85 SOL into the PumpSwap pool when the bonding curve completes. Mayhem-mode tokens use a different curve and can graduate with far less - sometimes single-digit SOL. Because the figure varies, every Anaxer graduation event carries the actual liquiditySol for that specific token rather than an assumed constant.

How long does a pump.fun token take to graduate?

There is no fixed duration. A token graduates whenever its bonding curve fills, which can take minutes or days, and most tokens never fill at all. Anaxer attaches timeToGraduateSeconds to every graduation event so you can measure the real distribution instead of guessing at it.

What percentage of pump.fun tokens graduate?

Only a small fraction. The rate moves constantly with market conditions, so rather than quoting a stale number, query GET /v1/launchpads/stats?windowHours=24 - it returns creations, graduations, and graduationRate per launchpad for a live window.

What happens to the bonding curve after a token graduates?

The curve is complete and retires. Liquidity moves into a PumpSwap AMM pool, and from that point the token trades on the open market at a price set by the pool rather than by the curve formula. Buying and selling no longer move along a predetermined curve.

Is every pump.fun graduation worth trading?

No. Graduation proves a curve filled, not that a token is healthy. A thin Mayhem graduation can enter the open market with very little pool depth, which makes the price fragile. Filter on liquiditySol and mayhemMode before treating a graduation as a signal.

Where do pump.fun tokens trade after graduating?

On PumpSwap, the AMM that pump.fun tokens migrate into. Once the pool exists, the token also becomes visible to the wider Solana DEX ecosystem - aggregators, routers, and analytics tools that index PumpSwap pools.

Start streaming Solana data

Anaxer gives you real-time pump.fun and PumpSwap streams and REST APIs on a flat plan. The free tier needs no card.

Written by Anton Gilborn · Senior Platform Engineer, Anaxer

Anton is a senior platform engineer at Anaxer, where he builds the real-time streaming infrastructure behind its Solana data API - token launches, graduations, DEX trades, prices, and transfers. He writes about low-latency streaming architecture and building fast on-chain apps.

Keep reading