How to track pump.fun token launches in real time
Track pump.fun token launches in real time by subscribing to the Anaxer creations WebSocket stream, which pushes a structured JSON event the moment any new token is minted - no RPC nodes or log decoding required.
Tracking pump.fun token launches in real time means subscribing to a live feed of new-token events instead of polling the chain. With Anaxer you open one WebSocket, subscribe to the creations channel, and receive a structured JSON event the moment any pump.fun token is minted - no RPC nodes, Geyser plugins, program IDs, or log decoding.
Who is this guide for?
This guide is for developers who need new pump.fun tokens the instant they launch:
- Sniper and trading bots that must act in the first seconds
- Launch dashboards and token explorers
- Alerting and notification systems
- Analytics and research platforms
- Copy-trading and wallet-tracking tools
If you only need occasional snapshots rather than a live feed, the REST creations endpoint is simpler than a WebSocket. If you need a live feed with zero infrastructure, read on.
Why is tracking pump.fun launches hard with raw RPC?
Against a raw Solana RPC you run or rent infrastructure, subscribe to program logs, decode the pump.fun instruction data, and maintain that decoder every time the program changes - all metered by compute units or credits. Anaxer removes that layer: it parses pump.fun and PumpSwap activity and emits a clean event over streams and REST, so you consume JSON and focus on your strategy. For how this compares to decoding a raw Yellowstone gRPC firehose yourself, see raw gRPC or parsed events.
How do I connect to the creations stream?
Open a WebSocket to the stream endpoint with your API key, then send a subscribe message for the creations channel.
const ws = new WebSocket("wss://api.anaxer.com/v1/stream?key=YOUR_KEY");
ws.addEventListener("open", () => {
ws.send(JSON.stringify({ subscribe: "creations" }));
});
ws.addEventListener("message", (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "created") {
console.log("New launch:", msg.symbol, msg.mint);
}
});The server acknowledges your subscription with { "type": "subscribed", "channel": "creations" }, then begins streaming events.
To receive socials with the launch event, subscribe in enrichment mode (and optionally skip Mayhem-mode creates):
ws.send(JSON.stringify({
subscribe: "creations",
filters: { enriched: true, excludeMayhem: true }
}));Fast mode (omit enriched or set it false) delivers immediately — often with socials still null. Enriched mode delivers the same created event type only after off-chain metadata fetch succeeds; failed or missing metadata never produces an enriched frame. uri is the on-chain metadata URI in both modes.
What does a launch event look like?
Every new token produces a created event. Timestamps are epoch milliseconds, and every event carries a Solana slot for sequencing plus a transaction signature.
Here is the same event as raw JSON — a real example from the official PUMP token (pumpCmXq...9Dfn), the pump.fun platform token:
{
"type": "created",
"source": "pump_fun",
"mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
"name": "Pump",
"symbol": "PUMP",
"creator": "7BvK3nF2HxR8mP5qW9tL4sY6jC1dA8eU3gN2fM5A1zXY",
"uri": "https://ipfs.io/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG",
"mayhemMode": false,
"socials": {
"website": "https://pump.fun",
"twitter": "https://x.com/pumpfun",
"telegram": "https://t.me/pumpfun"
},
"signature": "3Nk7pT2xQeB8mVdR4wLc9fJhY6zS1nGtK5uA3oXvW7qE2mCpH8dRzL4nJb9FgKtR5zXvY2mNc8hAeQ",
"slot": 309812345,
"timestamp": 1751008864000
}The mint, name, symbol, and socials above are from the real PUMP token (enriched-mode shape). creator, uri, slot, signature, and timestamp are illustrative - your stream will carry the actual on-chain values for each launch. In fast mode, expect socials fields to often be null.
Use the slot, not the timestamp, for ordering
Two events can share a millisecond, but the slot strictly orders on-chain activity. Store the last slot you processed so you can recover cleanly after any disconnect.
How do I recover missed launches after a disconnect?
WebSocket connections drop - Wi-Fi blips, deploys, server restarts. The pattern is: remember the last slot you saw, and after reconnecting, backfill the gap with a single REST call before trusting the live stream again.
curl "https://api.anaxer.com/v1/creations?since=309812345&limit=100" \
-H "Authorization: Bearer YOUR_KEY"The REST endpoint returns the same event shape as the stream, plus a nextCursor for pagination. Because streams and REST share one data model, your parsing code does not change between live and backfill paths. See the creations stream reference and the REST creations endpoint for the full parameter list.
How do I keep the connection alive?
Reply to the server's ping with a pong within 10 seconds and use backoff reconnects - the Solana WebSocket streams guide covers heartbeats, close codes, and reconnection in full, and the official SDKs handle all of it for you.
Troubleshooting: why am I not seeing launches?
A few issues account for almost every "no events" report:
- No events after connecting. Send the
{ subscribe: "creations" }message inside theopenhandler, not before the socket is ready, and confirm you received the{ "type": "subscribed" }acknowledgement. - Connection closes after ~40 seconds. You are not answering heartbeats. Reply to every
pingwith apongwithin 10 seconds. - Duplicate events after a reconnect. Deduplicate by
mintplusslot, and backfill withsinceset to the last slot you processed rather than replaying from scratch. - Falling behind under heavy launch volume. Do not do slow work in the message handler. Push events onto a queue and process them off the socket thread so a slow consumer never stalls the connection.
What can I build with launch data?
- Sniper and trading bots that evaluate a token the instant it launches.
- Launch dashboards and alerts that surface new tokens by creator, name, or socials.
- AI agents that screen launches in plain English via the Anaxer MCP server - see how to build a Solana trading agent with Claude and Cursor.
Because the creations stream is included on the free plan, you can prototype any of these without a card. The pump.fun API covers the full ecosystem - launches, graduations, PumpSwap trades, and prices — each on its own stream. When you are ready for trades and prices (wallet transfers coming soon), compare options on the pricing page.
Next steps
Open a free key, connect to creations, and log your first launch event. Then layer in graduations to catch tokens moving to PumpSwap, and read the Solana streaming guide for production-grade connection handling.
Frequently asked questions
How do I get the mint address of newly launched pump.fun tokens?
Every created event contains the mint field, which is the token's Solana mint address. This can be passed directly into trading, monitoring, analytics, or token metadata workflows.
How fast are pump.fun launch events delivered?
Anaxer delivers creation events in under 350ms from on-chain confirmation - already parsed into JSON - so your bot or dashboard sees a new token almost the moment it is minted, without the extra decoding step a raw RPC pipeline adds. Fast mode is immediate; enriched mode waits for metadata fetch (usually under ~0.5s).
Do I need a Solana RPC node to track pump.fun launches?
No. Anaxer parses the chain for you and pushes structured JSON over a WebSocket. You authenticate with an API key, not a funded wallet, and never touch an RPC node, Geyser, or program logs.
Is tracking pump.fun launches free?
Yes. The Anaxer free plan includes the creations and graduations streams at no cost, with no card required. Paid plans add trades, prices, and higher limits. Wallet transfers are coming soon.
What fields does a pump.fun launch event include?
Each created event includes mint, name, symbol, creator, uri (on-chain metadata URI), mayhemMode, socials (website, twitter, telegram — often null in fast mode), a transaction signature, the Solana slot for ordering, and an epoch-ms timestamp.
How do I get socials on the creations stream?
By default (fast mode) socials are often null because metadata is fetched off-chain after the create fans out. Set filters.enriched: true to receive the created event only after that fetch succeeds, with socials filled when available. Enrichment is WebSocket-only; REST returns stored rows after fetch when available.
How do I avoid missing launches when my connection drops?
Store the last slot you processed. After reconnecting, call the REST creations endpoint with since set to that slot to backfill the gap, then resume the live stream. Streams and REST share one event shape, so your parsing code does not change between paths.
Last updated July 15, 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, prices, and transfers. He writes about low-latency streaming architecture and building fast on-chain apps.
Keep reading
How to detect pump.fun graduations the moment they happen
A token graduating from pump.fun to PumpSwap is one of the highest-signal events in the ecosystem. Here is how to catch every graduation instantly, with time-to-graduate and pool liquidity attached.
How to build a Solana trading agent with Claude and Cursor (MCP guide)
A trading agent is only as good as its data layer. Here is the full architecture - live Solana data in through MCP, reasoning in Claude or Cursor, execution through a separate signer - and how to stand up the data half in minutes.
Ask Claude about pump.fun launches: MCP setup for Claude Desktop and Claude Code
Claude makes a strong pump.fun analyst once it can see the chain. One config block connects Claude Desktop or Claude Code to live launches, graduations, and stats - here is the setup and the analysis prompts that work.