Skip to main content
Learn how to turn raw wallet activity into signals, the tokens where several tracked wallets are buying at once, and live entry and exit alerts as they form. This guide covers both the REST cluster scan and the live signal stream in TypeScript, with no CSS, so you can wire it into a dashboard, a Telegram bot or a trading agent.

Two levels of signal

Start by knowing which you need. A common setup uses both, the REST scan to populate a signals page on load, and the stream to push new alerts live on top.

Part 1, scan clusters over REST

A cluster is a token that several tracked wallets are buying inside a time window. The REST endpoint returns the current clusters in one call.

Step 1, type the cluster

src/types.ts

Step 2, fetch the clusters

Pass mode cluster, and tune it with min_wallets (how many wallets make a cluster) and hours (the window). type picks the wallet class.
src/clusters.ts

Step 3, render the signals page

Each cluster is a token plus the wallets buying it. Show the count, the money in, and who is buying.
src/render-clusters.ts
Poll this on a timer if you want the page to refresh, the same pattern as any REST snapshot.

Part 2, live signals over WebSocket

The stream is where the signal service comes alive. You define the rules when you subscribe, and the server pushes an event the moment they are met, an entry when enough wallets buy, an exit when they leave.

Step 1, understand the thresholds

Thresholds live in a block per wallet type, kol and smart. Inside a block, entry_at is a list of wallet counts that each fire an entry, and exit_at is a list of remaining holder counts that each fire an exit. min_buy is the smallest buy for a wallet to count. An entry_at of [3, 5] fires once when the third qualifying wallet buys, and again at the fifth. If you set both a kol and a smart block, the entry gate is an AND, every type must reach its own count.

Step 2, connect with your rules

src/signal-stream.ts

Step 3, handle the alerts

Now you decide what a signal does. Here it prepends to an alerts feed, but this is where you would fire a Telegram message, a sound, or a webhook.
src/alerts.ts

Step 4, wire it together

src/main.ts

Tuning the signal

The thresholds are the whole product, and small changes matter. Raise entry_at for stronger, rarer signals. entry_at of [5] only fires when five wallets have piled in, fewer false positives, later entries. Lower it for earlier, noisier signals. Use min_win_rate to filter quality. Only count wallets whose lifetime win rate clears a bar, so a cluster of proven wallets is worth more than a cluster of random ones. Gate on two types for conviction. Set both a kol and a smart block and the signal only fires when KOLs and Smart Money agree, the AND gate turns two feeds into one high conviction trigger.

Billing note

The REST scan is one request per call. On the stream, each delivered signal is billed a little more than a plain event because it aggregates a whole cluster, so scope your token filter when you can.

Reference

GET /v1/signals

The REST signal endpoint with cluster, entry and exit modes.

WSS signal stream

Live entry and exit signals with per type thresholds.