How The Pumphouse actually works
Every claim grounded in the live indexer. No vapor, no black box. This is what we ingest, what we look for, what we filter out, and how we verify every call publicly.
1. The mission
Most pump.fun launches die in the first hour. Of the ones that survive, most are coordinated bundles run by 3-10 wallets controlled by the same person. Of the rest, only 1-3 per day actually graduate AND survive 24 hours.
The Pumphouse tells you, within seconds of any launch, whether this is a real organic pump or three wallets pretending to be a crowd.
2. The base rate (why this is hard)
Pump.fun launches roughly 20,000 tokens per day. Of those:
- ~1.2-1.4% graduate to PumpSwap (~250-300/day)
- ~10-20% of graduated tokens survive past 24 hours (~25-60/day)
- Joint base rate of "real winner": 0.06-0.13% (~12-25 per day)
A system calling 100 CURVE_BOMBs a day is calling noise. The Pumphouse targets ≤3 CURVE_BOMBs per day after calibration — close to the joint base rate, with conservative thresholds so the calls actually mean something.
3. The pipeline
SOLANA MAINNET (pump.fun program 6EF8rrec...uBEwF6P)
│ logsSubscribe WebSocket
▼
pumphouse-listener ──► decodes Anchor TradeEvent directly
(no getTransaction REST = 99% RPC cost cut)
│
▼
pump_events.db (WAL mode)
│
▼
pumphouse-engine (every 30s)
· wallet smart-scoring · creator reputation
· alpha/risk scoring · bundle detection
· lifecycle staging · prediction tracker
│
▼
pumphouse-render (every 12s) ──► memes.freedomcore.io
4. What we ingest from every event
Every BUY / SELL / CREATE / MIGRATE emits a structured Anchor log line. We decode it directly — no REST call needed.
| Field | What it tells us |
|---|---|
| mint | Which token |
| user (wallet) | Who's trading |
| creator | The token's deployer |
| sol_amount + is_buy | Signed SOL delta |
| token_amount | Position size |
| slot | Solana slot — same-slot multi-wallet = bundle signal |
| block_time | Timestamp |
| virtual/real reserves | Bonding curve state + implied price |
5. What we LOOK FOR (the alpha pillars)
Eight features weighted into alpha_score (0-100). Higher = more likely to run.
| Pillar | Weight | What it measures |
|---|---|---|
| Curve velocity | 25% | Buys per minute. Real pumps build through volume. |
| Smart wallet pressure | 20% | Count of high-smart-score wallets entering in last hour. |
| Net SOL inflow (5m) | 15% | More SOL in than out. |
| Holder growth | 10% | Unique buyers in last 5 minutes. |
| Creator reputation | 10% | The deployer's prior-token graduation rate. |
| Migration proximity | 10% | How close to 100% bonding. |
| Narrative match | 5% | Symbol/name keyword hooks (frog/cat/dog/AI/trump etc). |
| Trade intensity | 5% | Combined buys + sells in 5m. |
6. What we FILTER OUT (the risk pillars)
Seven features weighted into risk_score (0-100). Higher = more likely to rug you. Independent of alpha.
| Penalty | Weight | What it catches |
|---|---|---|
| Cluster concentration | 25% | % supply held by linked wallets. |
| Creator dump history | 20% | Rugger tier hard penalty. |
| Bot domination | 15% | Buy:unique ratio. 50 buys, 5 wallets = bot. |
| Mint authority active | 15% | Dev can mint infinite supply. |
| Wash-trade symmetry | 10% | Same wallets cycling SOL in and out. |
| Fresh wallet bundle | 10% | Same-slot Jito bundles + fresh-funded wallets. |
| Missing data | 5% | Unknown creator + zero smart-score data. |
7. Bundle detection — the cabal-detector engine
The most aggressive piece. Built from data we already have, no extra RPC.
| Signal | Trigger | Points |
|---|---|---|
| Same-slot 3 wallet rule | ≥3 distinct wallets in same Solana slot on same mint | +40 |
| Strong same-slot bundle | ≥5 distinct wallets in same slot | +30 |
| Heavy same-slot bundle | ≥8 distinct wallets in same slot | +10 |
| Fresh-wallet pct | % of first-30 buyers funded <2h before launch | up to +30 |
8. The verdicts
| Verdict | Fires when | Target frequency |
|---|---|---|
| 🚀 CURVE BOMB | α ≥ 75 · R ≤ 25 · smart_buyers ≥ 5 · uniq_5m ≥ 10 | ≤0.2% (1-3/day) |
| ✨ WAGMI | smart_buyers ≥ 5 · R ≤ 30 · α ≥ 40 · net_sol > 0 | 2-5% |
| 🎓 GRADUATION WATCH | progress ≥ 70% · R ≤ 35 · α ≥ 30 · uniq_5m ≥ 5 | 2-5% |
| 🚩 HOT BUT RIGGED | α ≥ 55 AND R ≥ 45 | 3-8% |
| 🔥 CABAL ALERT | R ≥ 65 (cluster + bundle + wash-trade) | 10-25% |
| 💀 WIDOWMAKER | creator_tier = rugger (5+ launches, 0 graduations) | creator-driven |
| 📉 NGMI | progress > 30% · net_sol < 0 · sells > buys | 5-15% |
| 🪦 DEAD | no activity, age > 60min | 75-85% |
| 🏆 SURVIVOR | migrated AND age > 60min | post-grad only |
| 👁 WATCH | default (no strong signal) | catch-all |
9. Wallet smart-score
Every wallet that touches a pump.fun token gets a smart_score (0-100):
smart_score = 30 × graduation_hit_rate (% of picks that graduated) + 20 × early_entry_consistency (entered <30% bonding) + 15 × graduation_count (raw count of graduated picks) + 15 × total_volume_normalized (skin in the game) + 10 × distinct_mints_normalized (breadth, not one-trick) + 10 × recency (active today / this week)
Tiers: whale (3+ graduations) · smart (1+ graduation) · active (20+ mints traded) · fresh (default).
10. Creator reputation — the rugbook
Every deployer wallet gets a creator_score (0-100):
creator_score = 50 (neutral)
+ 35 × graduation_rate
+ 20 × peak_mc_quality
− 30 × hard_penalty (3+ deployed, 0 graduated)
Tiers: runner (3+ graduations) · proven (1+ graduation) · rugger (5+ deployed, 0 graduations) · fresh (default) · unknown.
11. The tracker — verifying every call
Every CURVE_BOMB / WAGMI / GRADUATION_WATCH / HOT_BUT_RIGGED / CABAL_ALERT / WIDOWMAKER verdict gets frozen into a prediction_outcomes row the moment it's called. We then track its mcap evolution at 1h, 6h, 24h.
| Verdict family | 1h checkpoint | 6h checkpoint | 24h final |
|---|---|---|---|
| Positive (CURVE_BOMB / WAGMI / GRAD_WATCH) | HIT if ≥2× already | HIT (≥2×) / MISS (dead or <0.5×) | BIG_HIT (5×+) / HIT (2×+) / FLAT / MISS |
| Negative (CABAL / WIDOWMAKER) | — | HIT (died or <1.2×) / MISS (pumped 2×+) | HIT / FLAT / MISS |
| ANY TIME | — | — | MOON if migrated to PumpSwap |
Public scoreboard with the running hit rate is on the main page (#track section). No retroactive edits — every call is timestamped + immutable.
12. Lifecycle stages
NEW → just minted WARMING → early activity, curve <20% CURVE_BOMB → curve ≥20% + recent_buys ≥10 (real momentum) GRADUATION_WATCH → curve ≥70%, about to migrate MIGRATING → MIGRATE event seen, age <60min PUMPSWAP_LIVE → migrated, >60min old SURVIVOR → migrated AND still trading DEAD → no activity 60+ min
13. What's NOT in v0.3 yet (honest)
- PumpSwap indexer for post-graduation survival — v0.4
- Per-tx Jito tip detection for sniper labeling — requires getTransaction, RPC cost
- Funding-graph depth-2 walk for connected-cluster detection — needs offline SQD job
- On-chain mint/freeze authority check — needs getAccountInfo per mint
- Two-archetype model (viral-ignition vs community-compounding) — single composite in v0.3
- Telegram alert delivery — formatter ready, no Stripe gating yet
14. The franchise context
The Pumphouse is part of the FreedomCore franchise but deliberately separate:
- Maverick / SHADOW / Arena / Atlas — serious trading + research products
- The Pumphouse — degen casino for pump.fun memecoins. The fun one.
The casino-pub voice on memes.freedomcore.io is intentional. Other products serve professionals. The Pumphouse serves degens. House rule: don't be the exit liquidity.
15. How to verify it's working (right now, on your phone)
- Open the main page
- Watch the live counter strip — events tracked, tokens scored, wallets profiled. Numbers tick up every refresh (12s).
- Click any token card — should link to https://pump.fun/<mint> where you can see the same token live.
- Open #track — see the running hit rate + pending predictions counter.
- Open #methodology — every score weight is on the page.