How to track pump.fun wallets: PnL, positions and rug history
Who is actually making money on pump.fun — and who is quietly dumping every launch they touch? This guide builds a wallet tracker on the Raiden API: profit and loss net of every fee, open positions, the funding graph behind a wallet, and its complete rug history.
1 · The full profile in one call
/wallets/{addr}/stats returns the all-time profile: realized and unrealized
PnL, win rate, fee spend, profit distribution and behavior metrics. PnL is
net of all fees — protocol, creator, priority fees and validator tips — so a
"profitable" wallet that burns its edge on tips shows up as what it really is.
curl -H "X-API-Key: $RAIDEN_KEY" \ "https://terminal.raiden.wtf/api/wallets/{addr}/stats"
Want a recent read instead of all-time? /wallets/{addr}/window-stats?w=7d
returns the same shape over a 1d, 7d or 30d
window — the right basis for "is this wallet hot right now".
2 · Open positions and per-token history
curl -H "X-API-Key: $RAIDEN_KEY" \ "https://terminal.raiden.wtf/api/wallets/{addr}/positions" # each position: token_balance, sol_invested, sol_received, realized_pnl, # avg_cost, trade_count, first/last_trade_at — one row per token touched
A single position on a specific token is a direct lookup:
/wallets/{addr}/positions/{mint}.
3 · The rug history — every dump, not a sample
The killer signal for wallet reputation: has this wallet been inside rugs before?
/wallets/{addr}/dumps returns every rugged token the wallet took part in —
one row per token, recent-first, keyset-paginated:
curl -H "X-API-Key: $RAIDEN_KEY" \ "https://terminal.raiden.wtf/api/wallets/{addr}/dumps?min_sol=0.5" { "wallet": "8psN…VRtf", "count": 100, "data": [ { "mint": "9xQm…pump", "symbol": "WIF", "token_created_at": "2026-07-20T11:00:00Z", "same_slot": true, "as_operator": false, "as_sniper": true, "sol_extracted": 3.42 } ], "next_cursor": "2026-07-20T11:00:00.482913Z|9xQm…pump", "summary": { "total_dumps": 1670, "same_slot": 595, "sol_extracted": 421.7 } }
same_slot=1filters to dumps in the dev's exact slot — bundled with the operator, the strongest complicity signal.as_operator/as_sniperlabel the wallet's role;min_solandsincenarrow the set.- The first page includes an all-time
summary.
4 · Who funded this wallet?
Sybil clusters hide behind fresh wallets — the funding graph unmasks them.
/wallets/{addr}/funding-chain walks the chain of first-funders back to an
exchange or a known entity; /wallets/{addr}/related finds wallets that
trade the same tokens in the same slot (coordination), and
/wallets/{addr}/transfers maps native SOL flow in and out.
5 · Put it together
import requests BASE = "https://terminal.raiden.wtf/api" H = {"X-API-Key": "YOUR_KEY"} def profile(addr): pack = requests.get(f"{BASE}/wallets/{addr}/pack", headers=H).json()["pack"] dumps = requests.get(f"{BASE}/wallets/{addr}/dumps", headers=H).json() return { "stats": pack["stats"], # PnL, win rate, fees "funding": pack["funding_chain"], # who funded it "related": pack["related"], # same-slot cohort "rug_summary": dumps.get("summary"), }
/wallets/{addr}/pack bundles stats, funding chain, related wallets and
positions in one response — one call instead of four.
Keep watching in real time
Once you have a list of wallets worth following, save it as a wallet group and point a custom WebSocket stream at it: every trade those wallets make is pushed to you the moment it lands. That's how the Terminal's smart-money and live-feed pages work — same API, same data. For the research side, pair this with downloading the full trade history with Python and backtest what these wallets actually did.
Frequently asked questions
Is the PnL really net of every fee?
Yes — realized and unrealized PnL subtract protocol fees, creator fees, priority fees and validator tips. A wallet that wins gross but burns its edge on tips shows a truthful net number.
What counts as a rug dump in the history?
A wallet appears in a token's dump history only if it SOLD within the dev's dump slot or the two slots right after (~800ms). Buyers are victims and are never flagged.
Can I monitor a whole list of wallets at once?
Yes — save them as a wallet group (up to 1000 wallets) and either query the group's members in a loop or attach a custom WebSocket stream to the group to get every trade pushed in real time.