![]() |
On its busiest day pump.fun launched ~42,000 tokens. Historically only ~1.4% ever graduate to a DEX, and only ~3% of users have made more than $1,000.1 So I gave a black cat 9 lives and sent it to find the other 2.
🎬 full video: |
In medieval Europe a black cat crossing your path meant death was coming. Sailors believed the opposite: a black cat that walked onto a ship and stayed meant a safe voyage. One that walked on and then walked off meant the ship would sink.2
HEXCAT runs on the sailors' rule. If the cat walks away from a coin, you walk away too.
| gazing | reading the cards | TRICK! | TREAT! | −1 life |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| smug side-eye, waving | paw on chin, wand on the ball | monocle pops off, claws out | cheshire grin, gold tooth | X eyes, paws limp |
| item | why |
|---|---|
| green + amber eyes | one eye watches the chart, the other watches the dev |
| gold monocle | flies off every time it smells a rug |
| tattered witch hat | patched, torn brim, floppy tip. survived every rug season since 2024 |
| spider on a thread | hangs from the hat tip. nobody knows where it came from |
| wand | reads coins inside the ball, zaps rugs, conjures green candles |
| pumpkin bucket of coins | treats only. drops it the moment it hisses |
| band-aid on a torn ear | a 2024 rug. the cat remembers. |
| pump.fun pin | home turf |
| card | reads | TRICK when | |
|---|---|---|---|
| I | THE DEV | the graveyard | this wallet already has a tombstone → instant hiss, no other card is drawn |
| II | THE BUNDLE | buys in the launch window | ≥4 linked wallets ape the first seconds and hold > 15% |
| III | THE SNIPER | block-0 buys | snipers took > 12% of supply |
| IV | THE CLUSTER | who funded the top holders | one funder holds > 20% (or a dev-funded cluster > 5%) |
| V | THE MINT | mint & freeze authority | either is still LIVE: dev can print or freeze your bag |
| VI | THE CHART | top-10 + sells | top-10 > 35%, or 15+ buyers and zero sells (honeypot smell) |
| VII | THE KOL | X mentions | paid shills outnumber organic posts |
| VIII | THE CURVE | bonding curve % | too early (< 8%) or about to migrate (> 92%) is a shrug, not a buy |
The cards stop rugs before you're in. Lives cover what's left after:
- every stop-loss that actually hits costs 1 life
- hitting TP2 (+300%) earns 1 life back
- 0 lives = the cat curls up and stops trading until tomorrow. a built-in kill switch for bad nights
sequenceDiagram
autonumber
participant P as pump.fun
participant B as 🔮 crystal ball
participant C as 🐈⬛ HEXCAT
participant G as 🪦 graveyard
participant W as 🪄 wand
P->>B: new mint ($GHOSTY)
Note over B: gaze 6s — let bundles & snipers show themselves
B->>C: draw card I (THE DEV)
C->>G: seen this dev?
alt already buried
G-->>C: yes ($GHOSTY rugged an hour ago)
C-->>B: HISSS — instant trick, 0 lives spent
else new dev
C->>B: draw cards II–VIII
alt any red card
C->>G: bury dev 🪦
C-->>B: TRICK!
else all green
C->>W: buy 1.5 SOL
W-->>C: +100% sell 40% · +300% sell 40% (+1 life) · trail the rest
end
end
git clone https://github.com/MyWestLord/hexcat && cd hexcat
make install # venv + deps + config.yaml + .env
make paper # paper spells only. watch it hiss at rugs in your terminal
make testLive mode (burner wallet, small size, you were warned):
pip install solders
# .env → HEXCAT_LIVE=1, HEXCAT_PRIVATE_KEY=<base58 burner>, HEXCAT_RPC_URL=<private rpc>
make liveWhat it looks like:
HEXCAT awake · PAPER · lives ●●●●●●●●● · 1402 graves
$GHOSTY 7xKq…pump
✓ I THE DEV never seen
✕ II THE BUNDLE 6 wallets · 31%
✕ III THE SNIPER 38.0% block 0
✕ IV THE CLUSTER 52% linked · dev
✓ V THE MINT revoked
✕ VI THE CHART top10 71%
✕ VII THE KOL 2 organic · 5 paid
✓ VIII THE CURVE 23%
TRICK! 6 wallets · 31% 🪦 tombstone #1403
$GHOSTY2 3vTz…pump
✕ I THE DEV MATCH $GHOSTY (6 wallets · 31%)
TRICK! MATCH $GHOSTY 🪦 tombstone #1403
$PUMPKN 9mPd…pump
✓ … all eight green …
TREAT! 8/8 cards · buy 1.5 SOL (paper)
TP1 $PUMPKN +0.600 SOL · night +0.600 · ●●●●●●●●●
1 · Catch mints the second they exist → hexcat/feeds/pumpportal.py
PumpPortal's public websocket: subscribeNewToken for every mint, then subscribeTokenTrade for that mint so you see every buy and sell from second zero. Reconnect with backoff.
2 · Gaze before you judge → ball.py · GAZE_S
Bundles and snipers land in the first seconds. Judge at t=0 and you're blind; judge at t=60 and you're exit liquidity. 4–8 s on a good RPC.
3 · Graveyard first (it's free) → graveyard.py · card I
A sqlite table of buried devs. Known rugger → trick without a single RPC call. Every trick writes a new tombstone. After a few nights this is your best edge.
4 · Bundles & snipers → cards II, III
Group buys inside the launch window by wallet. Many distinct wallets in the same seconds holding a big % = a bundle. Non-dev share of that window = snipers.
5 · Funder clusters → card IV
getTokenLargestAccounts → owner of each account → oldest signature → who sent the first SOL. Group holders by funder. One funder pretending to be ten wallets is still one person.
6 · Authorities → card V
getAccountInfo(mint, jsonParsed) → mintAuthority, freezeAuthority. Either one alive = the dev can print or freeze.
7 · Concentration & the honeypot smell → card VI
Top-10 share (skip #1, that's the curve / AMM vault). And if 15+ wallets bought and nobody has managed to sell, walk away.
8 · Real KOLs vs paid shills → card VII
X recent search for mint / ticker. Count organic posts vs #ad, promo, 100x, rocket spam. More paid than organic → trick.
9 · Verdict, wand, ladder → tarot.verdict, wand.py, ledger.py
One red card → TRICK. Two shrugs → skip. All green → buy. Live execution uses PumpPortal's local-transaction API: it returns an unsigned tx, you sign locally with your burner key and send through your own RPC. Your key never leaves your machine.
10 · Lives → lives.py
A stop-loss costs a life, TP2 gives one back, zero lives ends the night. It's a loss budget with a cat face.
Free for memes, threads and banners. Tag the cat.
![]() |
![]() |
![]() |
poster-life.png |
poster-treat.png |
poster-grave.png |
![]() |
![]() |
![]() |
poster-early.png |
hexcat-cover.png (coin image) |
hexcat-cover-happy.png |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
every card, both sides: assets/cards · transparent mascots: assets/mascot · PFP: pfp.png
- 8 cards, one-red-card rule, graveyard memory
- 9 lives kill switch, TP ladder, trailing runner
- paper mode by default
- the web terminal from the video (crystal ball, live Soul Ledger)
- Telegram alerts:
TRICK! $XYZ — dev buried 3 times - shared graveyard: import other cats' tombstones
- Jito bundle submission for faster treats
Does it make money? Nobody can promise that. Most pump.fun coins go to zero, and every number in the video comes from a simulated paper night. The cat's job is to not buy the obvious rugs. Run it in paper mode for a few nights and judge your own numbers.
Why 9 lives and not a max-loss setting? It is a max-loss setting. It just hisses.
Will it drain my wallet? In paper mode it never touches a key. In live mode the key is read from your local .env, used only to sign locally, and should belong to a burner with only what you can afford to lose.
Experimental software for education. Not financial advice. Memecoins are extremely risky and you can lose everything. External APIs (PumpPortal, DexScreener, X, Solana RPC) and pump.fun curve parameters change; verify them before going live. You're responsible for your trades and for following the law where you live.
[1] Solana Compass, pump.fun launched 42,000 tokens in one day (Dune: ~1.4% historical graduation; ~3% of users > $1,000) · [2] Historic Mysteries, Black cat superstition






























