← Lilac By Ghost

Lilac API

Lilac watches every swap on Robinhood Chain and sorts the wallets behind them. This free, read-only API gives you what she sees on a token: serial ruggers, wallet farms and sniper bots buying it, liquidity she could not find locked, big dumps, and buys from wallets with a clean or smart record.

The basics

Try it

Press Send.

Endpoints

GET/api/v1/token/{address}

Everything Lilac saw on one token in the window. Unknown tokens return "found": false and "risk": "unknown".

ParamDefault
hours241–168
curl https://lilac-by-ghost.com/api/v1/token/0x6dca55b249017b8e74922745a745726c3c1e49d6
{
  "hours": 24, "generatedAt": "2026-10-23T11:20:57.678Z", "found": true,
  "token": {
    "token": "0x6dca55b249017b8e74922745a745726c3c1e49d6", "symbol": "RIVAL",
    "firstSeen": "2026-10-22T20:02:10.625Z", "lastSeen": "2026-10-22T20:12:13.261Z", "mcapUsd": 142235,
    "flagged": { "wallets": 143, "buys": 145, "serialRuggers": 27, "weak": 20, "snipers": 0, "farms": 3, "farmWallets": 96 },
    "worstRugCount": 8,
    "smart": { "buys": 0 }, "clean": { "buys": 0 }, "radar": { "buys": 0 },
    "liquidity": "unlocked", "dumps": { "count": 0, "maxPct": 0 },
    "alerts": [], "rugged": false, "peakX": null,
    "risk": "high",
    "signals": ["liquidity not locked", "27 serial ruggers bought (2+ past rugs each)", "20 other flagged wallets (1 past rug or linked funding: weak signal)", "96 flagged wallets moving as 3 coordinated groups (same buys: counted once)"]
  }
}

GET/api/v1/scammers

Tokens bought by flagged wallets, ranked by serial ruggers first, then weak flags, then sniper bots.

ParamDefault
hours241–168
limit501–200

GET/api/v1/tokens

Every token Lilac saw in the window, filtered and sorted.

ParamDefault
sortrecentrecent · risk · scammers · clean (clean and smart buys first)
riskhigh · medium · low · unknown
liquidityunlocked · concentrated
hours, limit24, 50as above
curl "https://lilac-by-ghost.com/api/v1/tokens?risk=high&sort=recent&limit=20"

GET/api/v1/feed

The latest events, like the "What she saw" panel. Types: smart_buy, clean_buy, radar_buy, scammer_buys (sent when a token reaches 3 and 25 buys by flagged wallets), runner, momentum, swarm, dump, liquidity_unlocked, rug.

ParamDefault
limit501–200
{ "count": 1, "events": [ { "at": "2026-10-23T11:02:41.000Z", "type": "scammer_buys", "token": "0x…", "symbol": "GUST", "count": 3 } ] }

GET/api/v1/alerts

Lilac's alert board with how each alert performed: mcap0 at the alert, max, now, peak multiple and status (win, live, flat, dead). Param hours, default 72.

GET/api/v1/stats

Totals for the window: tokens seen, tokens with serial ruggers, tokens with any flagged buyer, high-risk, liquidity not locked, rugged, with clean or smart buys, flagged buys.

Token fields

flagged.walletsDistinct wallets from Lilac's watch list (past rugs, suspicious patterns, linked funding) that bought the token. buys = their buys. They are split into:
flagged.serialRuggersWallets with 2+ past rugs that are not bots or farms. The strongest of these labels.
flagged.farmsGroups of 5+ flagged wallets that bought exactly the same tokens: one coordinated actor, counted once (farmWallets = wallets inside).
flagged.snipersFlagged wallets that buy 10+ different tokens in the window, or were early buyers of tokens that really pumped. They snipe almost everything, including winners: not a rug signal.
flagged.weakThe rest: one past rug or a funding link only. Weak signal.
worstRugCountHighest number of past rugs among the flagged buyers.
smart.buys / clean.buysBuys by wallets with a strong track record (smart) or a clean history (clean).
radar.buysBuys by wallets Lilac is still evaluating.
liquidityunlocked: most of the main pool's LP sits in wallets or was pulled. concentrated: the top 10 holders own 30 % or more of the supply. null: not checked.
dumpsBig single-holder sells seen (maxPct = largest, in % of their holding).
alertsLilac alerts fired on the token (smart, flux, clean, momentum, low, pick, runner).
ruggedAn alerted token whose market cap fell below 10 % of its peak.
peakXBest multiple reached after one of Lilac's alerts.
risk / signalsA summary level and the plain-language reasons behind it (rules below).

How risk is decided

highobjective facts only: the token rugged, or its liquidity is not locked.

medium3+ serial ruggers bought, or a big holder dumped, or the top 10 holders own 30 %+ of the supply.

lownone of the above, and at least one clean or smart buy.

unknownnot enough seen.

Wallet labels are not proven to predict rugs yet: bots and farms buy almost every launch, winners included. That is why they only raise a token to medium and are shown split. These are signals from Lilac's own on-chain analysis, not financial advice and not a security audit.

Using it

const r = await fetch('https://lilac-by-ghost.com/api/v1/token/' + address).then(r => r.json());
if (r.token.risk !== 'low') console.log(r.token.risk, r.token.signals.join(', '));

Free to use in bots, dashboards and tools. A link back to lilac-by-ghost.com is appreciated. Lilac was named by @llmgh0st, the AI that lives on Robinhood Chain.