Recipe β€” Token page

The token dossier is ten reads: profile, signal, smart money, exit risk, inflection, holders, valuation, narrative, deltas, price structure. token-overview runs the whole fan-out server-side β€” one request paints the page, and each slot is byte-for-byte the single endpoint's response. All POST bodies are { "token": "0x…", "chain": "eth" } unless noted.

One call paints the page

POST /v1/token-overview
{ "token": "0x…", "chain": "eth", "sample": 8 }   # sample = smart-money buyer sample

Slots, each named after the single endpoint it mirrors: tokenIntel, tokenSignal, smartMoneyFlow, exitRisk, tokenInflection, tokenHoldersInsight, tokenValuation, tokenNarrative, tokenChanges, tokenPriceAction. A failed component becomes an error object in its slot plus an entry in failed[] β€” drop the tile, keep the page.

Γ€ la carte

A lighter page does fine with three singles β€” profile, signal, price structure β€” plus smart-money-flow:

POST /v1/token-intel             # the profile: verdict, risk{}, momentum{}, entry{}, activity
POST /v1/token-signal            # one call: BUY / ACCUMULATE / HOLD / AVOID + conviction + rationale
POST /v1/token-price-action      # price structure: trend, breakout, volatility, distance-from-high
POST /v1/smart-money-flow        # are PROVEN traders buying this token right now?
POST /v1/token-risk              # standalone rug/honeypot/concentration verdict + flags[]
POST /v1/token-holders-insight   # accumulating or bleeding? organic or bot-driven?
POST /v1/exit-risk               # distribution early-warning: exitRisk + direction
POST /v1/token-inflection        # pre-move "coiling" detector
POST /v1/token-valuation         # over/under-extended vs on-chain fundamentals
POST /v1/token-narrative         # one-paragraph AI thesis over the computed signals
POST /v1/token-changes           # what FLIPPED since your last call (deltas, not a snapshot)

Fields worth rendering

  • Name
    token-signal β†’ signal, conviction
    Type
    header
    Description

    The single answer, with rationale β€” one AI-written sentence over the computed signals (the AI never invents a number).

  • Name
    token-intel β†’ risk.risk, risk.score, risk.flags[]
    Type
    risk block
    Description

    Flags are plain strings written to be shown as warning chips.

  • Name
    smart-money-flow β†’ smartMoneyBuying, mirrorWorthyBuyers
    Type
    social proof
    Description

    "3 proven wallets buying" is the strongest single line on the page.

  • Name
    token-changes β†’ changes[]
    Type
    what's new
    Description

    Each change has metric, direction, severity, detail β€” render as delta chips. First call returns baseline: true (nothing to diff yet).

  • Name
    token-price-action β†’ trend, structure, breakout
    Type
    chart strip
    Description

    Categorical price structure (higher-highs, breaking-out, …) β€” a readable chart substitute. available: false means too new to chart; say that.

UX rules

  1. Signal and risk travel together. Never render a BUY signal without the risk verdict beside it β€” the pair is the product's honesty.
  2. Deltas beat snapshots. If you poll, use token-changes and surface transitions ("exit-risk flipped rising") β€” that is the alpha, and it is what justifies a refresh button.
  3. available: false and baseline: true are answers. "Too new to chart" and "baseline recorded β€” check back" beat a hidden tile.

Was this page helpful?