Locked 25 Aug 2026 · lastdance.barelystable.dev

Last Dance architecture

Private screen for two people. We build a watch book of wallets. Cielo tells us a trade happened. We only keep it if that wallet is already in the book. Then we show: this coin, this chain, this market cap, this person.

We do not trade for you. We do not ping Cielo with our whole list every minute.

1. The pipeline

flowchart TD A[FomoScan
FOMO names, clans,
official Solana + other-chain wallets] --> I[INDEX SERVICE
writes the book only] B[Cielo lists and tags
high win rate, gem finder,
KOLs, cabals, FOMO lists] --> I C[You later: paste wallets] --> I I --> PG[(POSTGRES book
person, wallet, labels)] PG --> L[LIVE SERVICE
reads the book] D[Cielo open line
a buy or sell just happened] --> L L --> G{Is this wallet
already in the book?} G -->|no| X[Throw away] G -->|yes| S[WEBSITE
coin, chain, market cap, this person]

Index builds who we watch. Live only asks “are you in the book?” Website asks Live. Website never talks to the database itself.

2. Two services, not one blob

DoesDoes not
Index service Fills and grows the book. FomoScan + every useful Cielo list and tag + your pastes. Writes labels. Does not hear live trades. Does not draw the screen.
Live service Holds Cielo’s open line. If the address is in the book, saves the trade and serves Radar/Packs. Reads the book for names and tags. Does not add new people or wallets. Stranger = drop.
Website Radar and Packs. Calls Live. Live reads Postgres. Does not talk to Postgres itself.

If Index is down, Radar still shows people already in the book. If Live is down, the site cannot refresh, but the book can still grow.

3. The book — one person, many wallets

Postgres. Four lists. Easy idea. Never finished.

Person: Frank

Our id · FOMO id if we have it · FOMO name frankdegods · X page if we have it

WalletChainHow we know
498g1r…SolanaFomoScan official · also on a Cielo FOMO list
0x696d…EVM (Base etc.)FomoScan official
another…SolanaCielo tag: high win rate
List in PostgresOne row is
PersonOne trader. Name, FOMO id, FOMO page, X page.
WalletOne address. Solana or EVM. Points at that person.
How we knowSticker + date. FomoScan / Cielo list / Cielo tag / you pasted.
PackNamed group: FOMO clan, or a pack you made.

Same person rules

  1. Same address letters = same wallet. Always. Extra sticker, never a second row.
  2. Same FomoScan person-id = same person. Official Solana + other-chain wallets hang here.
  3. Same exact FOMO page or X page from Cielo = same person (Cielo’s word).
  4. Same nickname, different pages = two people. We do not merge on letters alone.

4. Tagging is first-class — not FOMO-only

Most profitable wallets are not on FOMO. Cielo tags still go in the book.

Kind of labelExamples
Where fromFomoScan official · Cielo list (FomoMaster, KOLs, cabal…) · Cielo tag · you pasted
What kind of traderhigh win rate, gem finder, human-operated, flipper, popular, sniper, new whale, high volume, early defi, multichain, MEV, honeypot…
Which profile we actually haveFOMO page · X page · none. Never a fake Photon or GMGN person.
Your pack nameNight Shift

Missing tag = unknown, not bad. One person can wear many labels. Radar can say “high win rate + FOMO” without making two people.

5. The book is never finished

flowchart TD D1[Day 1: FomoScan top traders and clans] --> PG[(Postgres)] Day[Every day after] --> FS[New FOMO names on the boards] Day --> CL[Index reads Cielo tags and lists] Day --> You[You paste a wallet] FS --> PG CL --> PG You --> PG PG --> Q{Already have this address?} Q -->|yes| Sticker[Add another how-we-know sticker] Q -->|no| New[New wallet row]

A live Cielo trade does not add a stranger to the book. Only Index (and your paste) add wallets. Unnamed today can become Frank tomorrow when FomoScan or Cielo names them.

Your list later

Paste into Last Dance. Sticker “you pasted.” Already there → extra sticker only. To hear them: if they already sit on a Cielo list we listen to, we already hear them. If not, tell Cielo once “also watch this wallet.” Do not FomoScan every paste (two raw-wallet lookups can spend the FomoScan month).

6. How we hear a trade — not a ping

We do not take our book every minute and ask Cielo “did anyone buy?” That would empty the month.

  1. Live opens Cielo once: GET /api/v1/ws, then “send me swaps on this list, these four chains, $250 or more.”
  2. The line stays open. Tiny keep-alives only stop the call from dying.
  3. When a matching trade happens, Cielo pushes one small message.
  4. Live looks up the address in Postgres. In the book → keep. Not in the book → throw away.
  5. If the line drops, dial again and ask once what we missed. Then listen again.

Each Cielo list needs its own open line. “Open once” means one list per line, not one line for the whole world. If some lines fail, we show 3/5 live — we do not pretend all lists are live.

Chains: Solana, Base, Robinhood, HyperEVM.

One known person buying is enough to show. More known people later makes that coin more worth looking at.

7. Market cap

The people book has people and wallets. It does not store market cap.

The $250 on the open line is “this trade was at least $250.” It is not “only tiny coins.” A $10 million coin still shows if someone in the book bought it.

The live line does not carry market cap. When we keep a trade, Live asks Cielo’s full buy record (GET /api/v1/feed with market cap) for that coin and shows it on the Radar. If cap is late: “price not in yet.” The line stays.

8. What you see

Two pages: Radar and Packs. No buy button.

Last Dance · Radar · Packs  ·  Cielo listening · last buy 8s · trades $250+

How strongCoinChainMarket capWho
2 different groups OMO Solana $714k · 18s ago Your pack + FOMO name · 3 made money · 1 is the project · 1 lost money
1 person FROGE Solana Price not in yet One known high-win-rate wallet bought — enough to show

Money-made is asked once when they appear on a line, then remembered. We do not score every wallet on day one.

9. Later tools — plug in, do not rebuild

flowchart LR Now[Now: Index + Live + Website + Postgres + Cielo + FomoScan] --> Later subgraph Later [Later] N[Nansen
optional money-made] E[EVM index
funding on Base etc] P[Photon API
if it ever exists] end
ToolWhenHooks into
NansenNot nowLive, only people already on a Radar line, if Cielo has no money-made number
Funding pack / Flurry hopLater (or now only if tiny)Live, Solana, one coin already on screen
EVM indexLaterLive. Cielo still hears Base / Robinhood / HyperEVM buys.
Photon or othersOnly if they give a real people APIIndex. New stickers on the same person.

10. Machines

  • Index service — Python, its own process
  • Live service — Python, its own process (Cielo line + API)
  • Website — Next.js
  • Postgres — the book
  • Cielo — lists, tags, live trades
  • FomoScan — FOMO names and official wallets (60 asks/minute, 100k points/month on our plan)
  • Solana node — later, funding look
  • Host — lastdance.barelystable.dev, not under Khoj

We will not

Mix Index into Live. Ping the whole book. Let Live add strangers. Score every wallet on day one. Invent Photon/GMGN people. Trade for you. Pretend one Cielo line covers every list.