How to track pump.fun wallets: PnL, positions and rug history
Build a pump.fun wallet tracker: realized PnL net of all fees, open positions, funding chains and every rug a wallet ever dumped — with the Raiden API.
Build a pump.fun wallet tracker: realized PnL net of all fees, open positions, funding chains and every rug a wallet ever dumped — with the Raiden API.
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.
/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".
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}.
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=1 filters to dumps in the dev's exact slot — bundled
with the operator, the strongest complicity signal.as_operator / as_sniper label the wallet's role;
min_sol and since narrow the set.summary.
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.
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.
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.
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.
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.
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.
Build on the same data
Free API key with 200,000 trial credits: full REST and WebSocket access to the same firehose that powers the Terminal. Connect a Solana wallet; no email, no card.