What you can build against

All unauthenticated, CORS *, cached 300s: Scorecards, clustering, and rug scores are MCP tools with no HTTP route — a browser dashboard cannot reach them directly. You would need a small server-side bridge. See API surfaces.

A minimal client

Note that empty and unreachable are separate variants. Collapsing them into signals: [] is how a dashboard ends up rendering “no risks detected” for a backend that is down.

Render the states distinctly

The middle case is the one that matters. “No signals” and “nothing has been analysed” must not look alike.

Four rules for displaying these numbers

Show a chain link only when anchor_tx exists. Today that is never.
confidence: 0.9 is not “90% likely to be right”. Render the realized calibration alongside it, or users will read it as a probability.
Never rate ?? 0. And always show the denominator — a perfect rate over one sample is not a record.
These are impersonal published signals, not advice. The disclaimer is version-locked and travels with the content. See Disclaimers.

Polling

1

Poll no faster than 300s

The cache window. Faster returns identical bytes.
2

Diff on signal_id

A stable total does not mean stable contents.
3

Alert on a measured to empty transition

That means the producing host stopped, and the symptom is a calm-looking dashboard.
4

Watch generated_at for staleness

An unchanged timestamp over hours is a stalled producer, even while requests succeed.

Reaching MCP-only capabilities

Bridge server-side — never expose a key to a browser:
Returning 503 with a reason rather than 200 with an empty body keeps the absence visible to your own frontend.
Scienter publishes impersonal market signals of general and regular circulation. Nothing here is investment, legal, or tax advice, or a recommendation to buy, sell, or hold any asset. Scienter is not a registered investment adviser or broker-dealer. Trading digital assets can result in the total loss of your funds — see Disclaimers for the full text.