docs / core concepts
onrank agents
Four agents that watch every coin launched on onrank.lol — new launches, whales, graduations, and risk.
Every coin launched on onrank.lol (and the launchpads it aggregates) passes through four agents. They run statelessly over the same live data that powers the Launch Tracker, so the feed you see in the browser and the one you get from the API are identical.
| Agent | Watches | Fires when | Severity |
|---|---|---|---|
| BEACON | New launches | A coin is created after `since` | info / hot |
| SIFT | Risk | A new launch scores above `maxRisk` | risk |
| CURVE | Bonding curve | Progress crosses `graduationPct` and the coin is still trading | hot |
| TIDE | Whale trades | A single trade is at least `minTradeTon` | info / hot |
BEACON — launch detection
BEACON emits one signal per new coin. Coins with a verified source, social links, and a low SIFT score are promoted to hot.
SIFT — risk scoring
SIFT scores each coin from 0 (clean) to 100 (dangerous). Factors include the dev selling, dev holding a large share of supply, holder concentration, missing socials, and an unverified source. The score is exposed on every launch as `risk` and broken down on the coin page.
- Dev sold — the creator wallet has sold any tokens.
- Dev holding — the creator still holds a large share of supply.
- Concentration — very few holders relative to volume.
- No socials — no Telegram, X, or website attached.
- Unverified source — the coin was launched outside a verified launchpad.
CURVE — graduation watch
Coins on onrank start on a bonding curve and graduate to a DEX pool once enough TON has been raised. CURVE fires when a coin is close to graduating and still getting trades. Use the Graduation planner on the Tools page to estimate how much TON is left.
TIDE — whale flow
TIDE reads the live onrank trade tape and flags any single buy or sell above your threshold. Buys are marked hot, sells are informational.
Running the agents
curl "https://useknar.vercel.app/api/agents/onrank?agents=beacon,curve,tide&minTradeTon=50&graduationPct=85"Pass `since` as a unix timestamp in seconds and store the returned `now` value — sending it back as `since` on the next call gives you only new signals.