1
Look Up the Program
Pump.fun launches tokens through two instructions depending on version: Check the response’s
create and create_v2. Confirm the exact names and account roles with describeProgram before filtering on them:Request
instructions list for create and create_v2, and its roles list for the account you want — typically the new mint address, and either a creator account role or a creator field in args. The two instruction versions don’t necessarily share a shape, which is why the code below checks both an arg and a couple of role names rather than assuming one.2
Build the Filter
Filter on the program and both instruction names. Leave
includeCpi on — Pump.fun’s create/create_v2 are usually top-level, but this is cheap insurance — and exclude failed transactions since a failed deploy never produces a live mint:3
Connect with a Reconnect-Safe Client
A deploy tracker is a long-running process, so treat disconnects as routine rather than exceptional: watchdog the initial handshake, keep the connection alive on a quiet filter, and reconnect automatically on close.
pumpfun-deploys.js
4
Handle Notifications and Log Each Deploy
Route incoming messages by Because
id (your own requests) or method (server-pushed notifications), then pull the mint, creator, and metadata out of the decoded instruction:includeFailed is false, every notification you log is a token that actually deployed. Check ix.decoded is present before trusting args and accounts — an unrecognized build of the Pump.fun program arrives with decoded: null and would otherwise show up as mint: null.Next Steps
Track Jupiter Swaps
The describeProgram → build filter → subscribe flow in more detail.
Handling Reconnects
Exponential backoff and slot-gap backfill for long-running listeners.
Fetch Pump.fun Mints
The historical version: page through a creator’s past deploys with Parsed Events.