Skip to content
Back to skills

Pumpfun

ASecurity

Expert assistant for pump.fun — Solana memecoin launchpad with bonding curves. Use whenever the user wants to: trade on pump.fun programmatically, build a sniper bot for new token creations, monitor KOL trades or specific tokens in real-time via WebSocket, detect bonding curve completions / migrations to PumpSwap, analyze historical pump.fun data, parse on-chain pump.fun events, or understand bonding curve mechanics (reserves, market cap, graduation threshold). Also triggers on mentions of ...

  • 2 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added May 26, 2026
ai-agentspythonbashsqlnodetestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 10 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add Vo1ganin/crypto-claude-skills --skill pumpfun --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pumpfun?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pumpfun
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vo1ganin-pumpfun/badge)](https://www.skillsdirectory.com/skills/vo1ganin-pumpfun)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pumpfun
description: |
  Expert assistant for pump.fun — Solana memecoin launchpad with bonding curves.

  Use whenever the user wants to: trade on pump.fun programmatically, build a sniper
  bot for new token creations, monitor KOL trades or specific tokens in real-time via
  WebSocket, detect bonding curve completions / migrations to PumpSwap, analyze
  historical pump.fun data, parse on-chain pump.fun events, or understand bonding
  curve mechanics (reserves, market cap, graduation threshold).

  Also triggers on mentions of "mass deploy", "PumpSwap migration", "bonded tokens",
  creator analysis, pf stats, or when the user pastes a pump.fun token URL.

  Enforces: use PumpPortal WebSocket (single connection!) for streaming; route trades
  via Lightning (managed) or Local (your own RPC); route through Jito for priority
  landing when `jitoOnly: true`.
compatibility:
  tools:
    - Bash
    - Write
    - Read
---

# pump.fun Skill

Reference files:
- `references/mechanics.md` — bonding curve math, reserves, migration, program IDs
- `references/trading-api.md` — PumpPortal Lightning + Local APIs, all params
- `references/streaming.md` — WebSocket data API, subscriptions, one-connection rule
- `references/onchain.md` — direct RPC parsing + Dune tables + Bitquery GraphQL
- `references/examples/` — working Python scripts (sniper, copytrade, migration watcher)

---

## 🚨 Rule #1: ONE WebSocket connection for ALL subscriptions

PumpPortal WS (`wss://pumpportal.fun/api/data`) **bans clients who open multiple connections**. Always:
- Open ONE connection
- Send all subscribe messages on that single connection
- Reconnect on disconnect — never open parallel connections

See `references/streaming.md` for pattern.

## 🚨 Rule #2: pick the right trading mode

**PumpPortal Lightning** (`POST /api/trade?api-key=KEY`):
- PumpPortal signs & submits your transaction
- 0.5% fee per trade on top of pump.fun's fees
- Routes through dedicated Solana nodes + SWQoS + Jito bundles automatically
- Use for: quick prototypes, trading bots where latency doesn't need absolute minimum

**PumpPortal Local** (`POST /api/trade-local`):
- Returns a serialized unsigned transaction
- You sign with your own wallet + submit via your own RPC
- No additional fee beyond network / Jito
- Use for: production bots, when you want full control over RPC, signing, keys

**Rule of thumb:** Local if you're serious, Lightning if you're testing. For sniping: Local + Helius Sender + Jito bundle.

## 🚨 Rule #3: `jitoOnly: true` for competitive landing

On 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).

---

## Core concepts (memorize these)

### Token supply (per pump.fun token)
- Total: **1,000,000,000** (1B, fixed)
- On bonding curve: **793,100,000** (79.31%)
- Reserved for migration: **206,900,000** (20.69%, seeds the AMM pool on graduation)

### Bonding curve progress formula
```
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).

### Price discovery
Constant-product AMM with virtual reserves. Initial launch reserves (classic values):
- Virtual SOL: 30
- Virtual tokens: 1,073,000,000
```
price = (virtualSol + realSol) / (virtualTokens + realTokens)
```
Non-linear — early buyers win most.

### Main program ID
`6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P`

Filter DEX trades / instructions by this address.

---

## Step-by-step workflow

**1. Identify the task**
- Real-time stream → PumpPortal WS
- One-off trade → Lightning (fast) or Local (full control)
- Bot with repeated trades → Local + own RPC + Jito tips
- Historical analysis → Dune tables
- Single-wallet creator analysis → Helius `getTransactionsForAddress` filtered by program

**2. Pick the right API**
See "Data access options" in `references/mechanics.md` for the decision matrix.

**3. Setup**
- Get PumpPortal API key at https://pumpportal.fun/ (required for Lightning, not for Data/Local)
- Ensure `SOLANA_RPC_URL` is set (see `solana-rpc-skill`) — Local API + own signing requires your own RPC

**4. Execute**
- Streaming: async WebSocket client (see `examples/ws_monitor.py`)
- Trading (Lightning): simple httpx POST
- Trading (Local): request unsigned tx, sign with solders/web3.js, submit via RPC

**5. Handle failures**
- PumpPortal WS disconnects: reconnect, resend all subscribes
- Trade rejected: check slippage + priorityFee, raise both if sniping hot coin
- Jito bundle failed: retry with higher tip (see `jito-skill`)

---

## Common patterns

### Sniper bot (new token creation → auto-buy)
```
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 JitoFeeAccount
```
Full example: `references/examples/sniper_bot.py`.

### Copytrade (mirror KOL trades)
```
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 buy
```
Example: `references/examples/copytrade_watcher.py`.

### Migration watcher
```
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`.

### Historical analysis via Dune
```sql
-- 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 1
```
More templates when `dune-skill` is available.

---

## Error & edge cases

- **"Bonding curve not initialized"** — token doesn't exist yet or instruction called before `create`
- **"Insufficient liquidity"** — tried to buy/sell more than curve can support; reduce amount
- **"Slippage exceeded"** — curve moved during tx build → submit; retry with higher slippage
- **Token already migrated** — stops being tradeable on bonding curve after 100% progress; use `pool: "pump-amm"` or `pool: "auto"`
- **WS 403/disconnect** — likely hit rate limit or opened multiple connections; wait, reconnect on single conn only

## Reference files

- `references/mechanics.md` — bonding curve math, program IDs, supply math
- `references/trading-api.md` — PumpPortal Lightning + Local with all params
- `references/streaming.md` — WS subscriptions + single-connection pattern
- `references/onchain.md` — raw RPC parsing, Dune queries, Bitquery GraphQL
- `references/examples/ws_monitor.py` — WebSocket listener template
- `references/examples/sniper_bot.py` — new-token sniper (Local + Helius Sender)
- `references/examples/copytrade_watcher.py` — mirror KOL wallets
- `references/examples/migration_watcher.py` — detect graduations to PumpSwap

Files in this skill

  • README.md3.5 KB
  • SKILL.md7.1 KB
  • references/examples/copytrade_watcher.py4.6 KB
  • references/examples/migration_watcher.py2.2 KB
  • references/examples/sniper_bot.py5.5 KB
  • references/examples/ws_monitor.py3.4 KB
  • references/mechanics.md4.3 KB
  • references/onchain.md5.6 KB
  • references/streaming.md4.5 KB
  • references/trading-api.md4.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.