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.

·3 min read·526 words
walletspnlrug forensicstracking

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=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.
  • 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 · 3 answers

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.

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.

Raiden TerminalGuides Pump.fun API Ingested by Raiden Vortex © Raiden · an independent Solana data provider, not affiliated with pump.fun