Pump.fun & PumpSwap

How to detect pump.fun graduations the moment they happen

Detect pump.fun graduations in real time by subscribing to the Anaxer graduations WebSocket stream, which emits a graduated event - including the PumpSwap liquiditySol amount - the instant a token completes its bonding curve.

4 min readAnton Gilborn

Detect pump.fun graduations by subscribing to the Anaxer graduations WebSocket stream. It emits a graduated event - including the PumpSwap liquiditySol amount - the instant a token completes its bonding curve and migrates to a live pool. No polling, no pool-watching, no log decoding.

Who is this guide for?

This guide is for developers who need to act the instant a token graduates from pump.fun to PumpSwap:

  • Trading and sniper bots that enter at pool creation
  • Graduation alert bots (Telegram, Discord, webhooks)
  • Trading dashboards and token explorers
  • Analytics platforms tracking graduation rates and liquidity
  • PumpSwap liquidity and monitoring tools

If you only need a periodic list of recent graduations, the REST graduations endpoint is simpler. If you need to react the moment it happens, use the stream below.

Why do graduations matter?

A graduation is the transition from the pump.fun bonding curve to an open PumpSwap market. It is one of the highest-signal moments for a token: liquidity appears, price discovery opens up, and trading behavior changes. Catching it a few seconds late can mean missing the move entirely, which is why a push stream beats polling.

Detecting this yourself against a raw RPC means watching the pump.fun program, decoding the migration instruction, and then resolving the new PumpSwap pool and its liquidity - several moving parts that all have to stay correct as the program evolves. Anaxer collapses that into a single parsed event.

Two ways to detect a pump.fun graduation.

How do I subscribe to graduations?

Open the stream and subscribe to the graduations channel.

const ws = new WebSocket("wss://api.anaxer.com/v1/stream?key=YOUR_KEY");

ws.addEventListener("open", () => {
  ws.send(JSON.stringify({ subscribe: "graduations" }));
});

ws.addEventListener("message", (event) => {
  const msg = JSON.parse(event.data);
  if (msg.type === "graduated") {
    console.log(`${msg.symbol} graduated with ${msg.liquiditySol} SOL`);
  }
});

What does a graduation event contain?

The moment a token fills its bonding curve, the graduations stream pushes a card like this - the migration confirmed, with pool liquidity attached:

Bonding curve
Graduated

Here is the same event as raw JSON. Amounts are strings (never floats), the timestamp is ISO 8601 UTC, and the slot orders it against every other on-chain event:

{
  "type": "graduated",
  "platform": "pumpfun",
  "mint": "2ajrYELtYtvtJd8fQAGXpfQbgXXZe3YjPtNJ9K3bpump",
  "symbol": "PEPE",
  "tokenSupply": "1000000000",
  "pool": "PumpSwap",
  "liquiditySol": "412.880",
  "slot": 309845102,
  "timestamp": "2026-06-27T07:48:11Z"
}

The liquiditySol field confirms the migration completed and reports the SOL in the new PumpSwap pool. Every token graduates at the same bonding-curve threshold, so the amount is consistent across graduations - the value is having it attached to the event without a follow-up RPC call.

One stream, one channel

Each WebSocket connection is one stream, subscribed to a single channel. Your plan sets how many concurrent streams you can run — Free: 1, Starter: 4, Pro: 8. To follow both creations and graduations at once, open two connections — one per channel.

How do I backfill graduations I missed?

Track the last slot you processed and backfill with REST after any disconnect:

curl "https://api.anaxer.com/v1/graduations?since=309845102&limit=100" \
  -H "Authorization: Bearer YOUR_KEY"

The response mirrors the stream event shape. See the graduations stream reference and the REST graduations endpoint for all parameters.

Troubleshooting: why am I missing graduations?

A few issues account for almost every missed or duplicate graduation:

  • No events at all. Send { subscribe: "graduations" } inside the open handler and confirm the { "type": "subscribed" } acknowledgement before expecting events.
  • You see the launch but never the graduation. Those are two separate events. Subscribe to graduations (or both creations and graduations) - a token can graduate hours or days after it launches.
  • Duplicate graduations after a reconnect. Deduplicate by mint, and backfill with since set to the last slot you processed rather than replaying the whole window.

Next steps

Pair graduations with the creations stream to follow a token all the way from launch to live pool — one WebSocket connection per channel. Read the Solana streaming guide to make each connection production-ready. The pump.fun API covers the full ecosystem - launches, graduations, PumpSwap trades, and prices. Ready to build? Grab a free key on the get started page.

Frequently asked questions

What is a pump.fun graduation?

A graduation is when a pump.fun token completes its bonding curve and migrates to a live PumpSwap pool. It marks the transition from the launch curve to open-market trading and is a high-signal event for traders.

Does the graduation event include liquidity?

Yes. Anaxer graduation events include a liquiditySol field with the SOL in the new PumpSwap pool. Every token graduates at the same bonding-curve threshold, so the amount is consistent - the value is having it attached to the event without a follow-up lookup.

Is the graduations stream available on the free plan?

Yes. The graduations stream is included on the Anaxer free plan alongside creations, with no card required.

How fast are graduation events delivered?

Anaxer delivers graduation events in under 350ms from on-chain confirmation, already parsed into JSON with the PumpSwap liquidity attached, so your bot or alert fires almost the moment a token migrates.

What is PumpSwap?

PumpSwap is the automated market maker (AMM) that pump.fun tokens migrate to when they graduate. Once a token completes its bonding curve, its liquidity moves into a PumpSwap pool where it trades on the open market. Anaxer's graduation event names the pool and reports its liquiditySol.

Last updated June 28, 2026.

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, and prices. He writes about low-latency streaming architecture and building fast on-chain apps.

Keep reading