1
Look Up the Program
Pump.fun launches tokens through two instructions depending on version: Check the response’s
create and create_v2. Parsed Events decodes instructions through the same IDL catalog Parsed Streams uses, so confirm the exact decoded names and account roles with its describeProgram method before matching 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 Request
Fetch the creator wallet’s history page by page:Three differences from the streaming filter are worth knowing up front:
addressis always required — program-wide scans are not supported, so you fetch one wallet’s deploys, not every deploy on Pump.fun. For the firehose, use Parsed Streams.- The request has no server-side instruction filter. History returns everything the address touched, and you pick out the Pump.fun instructions client-side in the next step.
- There is no
includeFailedswitch. History returns successful and failed transactions alike, so checkparsed.transactionStatusclient-side — a failed deploy never produces a live mint.
3
Page Through History
Each result carries every instruction of the transaction. Scan
parsed.instructions for the create/create_v2 hits, and keep passing paginationToken back until it disappears:pumpfun-mint-history.js
4
Extract Each Deploy
Pull the mint, creator, and metadata out of the decoded instruction, exactly as the streaming listener does:Check
ix.decoded is present before trusting args and accounts — an unrecognized build of the Pump.fun program would otherwise show up as mint: null, with only rawData and rawAccounts to work from.Next Steps
Track Pump.fun Mints
The real-time version: a reconnect-safe listener that logs every new deploy as it lands.