pumpfun — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pumpfun (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reference files:
references/mechanics.md — bonding curve math, reserves, migration, program IDsreferences/trading-api.md — PumpPortal Lightning + Local APIs, all paramsreferences/streaming.md — WebSocket data API, subscriptions, one-connection rulereferences/onchain.md — direct RPC parsing + Dune tables + Bitquery GraphQLreferences/examples/ — working Python scripts (sniper, copytrade, migration watcher)PumpPortal WS (wss://pumpportal.fun/api/data) bans clients who open multiple connections. Always:
See references/streaming.md for pattern.
PumpPortal Lightning (POST /api/trade?api-key=KEY):
PumpPortal Local (POST /api/trade-local):
Rule of thumb: Local if you're serious, Lightning if you're testing. For sniping: Local + Helius Sender + Jito bundle.
jitoOnly: true for competitive landingOn creations (first N blocks after mint) competition is fierce. Set jitoOnly: true on the trading call → PumpPortal routes exclusively through Jito bundles. Higher landing rate during mempool congestion.
For very competitive snipes: skip PumpPortal entirely, build tx locally, submit via Jito block engine directly (see jito-skill for bundle mechanics).
progress_pct = 100 - (((tokens_in_curve - 206_900_000) * 100) / 793_100_000)At 100% → token migrates to PumpSwap (or sometimes Raydium depending on era).
Constant-product AMM with virtual reserves. Initial launch reserves (classic values):
price = (virtualSol + realSol) / (virtualTokens + realTokens)Non-linear — early buyers win most.
6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
Filter DEX trades / instructions by this address.
1. Identify the task
getTransactionsForAddress filtered by program2. Pick the right API See "Data access options" in references/mechanics.md for the decision matrix.
3. Setup
SOLANA_RPC_URL is set (see solana-rpc-skill) — Local API + own signing requires your own RPC4. Execute
examples/ws_monitor.py)5. Handle failures
jito-skill)WS subscribeNewToken
↓ event received
Local API: request unsigned buy tx
↓
Sign with hot wallet
↓
Submit via Helius Sender OR Jito bundle
↓ (if Jito) include tip to JitoFeeAccountFull example: references/examples/sniper_bot.py.
WS subscribeAccountTrade keys=[KOL1, KOL2, ...]
↓ KOL bought token X
Local API: request buy for same mint
↓ (optional) wait N ms to let KOL's tx land
Submit your buyExample: references/examples/copytrade_watcher.py.
WS subscribeMigration
↓ event received: token X migrated to PumpSwap
→ Optionally trade on PumpSwap (use solana-rpc-skill or Jupiter)Example: references/examples/migration_watcher.py.
-- Tokens created per day last month with final market cap
SELECT date_trunc('day', block_time) AS day,
COUNT(*) AS tokens_created
FROM pumpdotfun_solana.pump_evt_create
WHERE block_time >= NOW() - INTERVAL '30' DAY
GROUP BY 1
ORDER BY 1More templates when dune-skill is available.
createpool: "pump-amm" or pool: "auto"references/mechanics.md — bonding curve math, program IDs, supply mathreferences/trading-api.md — PumpPortal Lightning + Local with all paramsreferences/streaming.md — WS subscriptions + single-connection patternreferences/onchain.md — raw RPC parsing, Dune queries, Bitquery GraphQLreferences/examples/ws_monitor.py — WebSocket listener templatereferences/examples/sniper_bot.py — new-token sniper (Local + Helius Sender)references/examples/copytrade_watcher.py — mirror KOL walletsreferences/examples/migration_watcher.py — detect graduations to PumpSwap~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.