Real-time monitor for new pump.fun token launches that use USDC as the quote mint. Subscribes to the pump.fun program via Helius LaserStream WebSocket (programSubscribe + logsSubscribe), decodes create / createV2 instructions using idl/pump.json, and posts Discord embed alerts.
- Bun 1.0+
- Helius API key (Helius docs)
- Discord incoming webhook URL
- Copy the example env file:
cp .env.example .env- Fill in
.env:
HELIUS_API_KEY=your_helius_api_key
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...Optional overrides:
USDC_MINT=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
PUMP_PROGRAM_ID=6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P- Install dependencies:
bun installStart the monitor:
bun startYou should see:
Pump.fun USDC create monitor starting...
Connected to Helius WebSocket
Subscribed (id=1, sub=...)
Subscribed (id=2, sub=...)
When a new USDC-quoted bonding curve is created via create or createV2, a Discord embed is sent with token name, symbol, mint, creator, links, and reserves.
Validate IDL loading and USDC bonding-curve detection locally (no API key):
bun run test:idlValidate parsing against a known transaction signature (requires HELIUS_API_KEY in .env):
bun run test:parse <TRANSACTION_SIGNATURE>This prints parsed CreateEvent fields if the transaction is a USDC create / createV2 launch.
programSubscribe— watches pump.fun program accounts filtered to USDC-quotedBondingCurveaccounts (datasize: 115,memcmponquoteMintat offset 83).logsSubscribe— buffers recent pump.fun transactions mentioning create instructions.- New bonding curve — on first-seen account, resolves the creation transaction (from log buffer or
getSignaturesForAddress). - IDL parsing — decodes
CreateEventfrom logs and verifiesquoteMint === USDC. - Discord — POSTs a formatted embed to your webhook.
src/
index.ts # main monitor loop
helius-ws.ts # WebSocket subscriptions + reconnect
parser.ts # BondingCurve + CreateEvent decoding
discord.ts # embed builder + webhook POST
idl.ts # codama IDL → Anchor IDL adapter
config.ts # env loading
constants.ts # program IDs, offsets
test-parse.ts # manual parse helper
idl/pump.json # pump.fun program IDL