Read this before you build anything against the API. Almost every integration bug that matters comes from treating one of these four states as another.

The four states

Every capability served through the MCP tool layer returns an explicit state. They are never collapsed into a generic empty response.

ok

The engine ran, found the subject, and the payload is real.

not_found

The engine ran correctly. The subject is unknown to it — this address, token, or provider has no record.

no_snapshot

The engine is deployed but has not produced data yet on this host. No run has happened, or the run has not been published.

module_absent

The backing module is not installed on this deployment at all. Nothing was checked.

Why this is not pedantry

Consider a single question: “Does this token have a rug risk?” Three of those four states mean “you learned nothing” — and only one of them means “probably fine”. A product that renders all four as “No risks found ✓” has told you the same reassuring thing in three cases where it had no idea. For a risk tool, that is the worst possible failure, and it is why the states are structural here rather than advisory.

Which capabilities are absent today

Several intelligence modules ship on a branch that has not merged. On a checkout of master, their tools return module_absent with a reason, and light up with no code change when the branch lands.
  • get_wallet_scorecard, get_temporal_decomposition
  • get_provider_reliability, list_provider_leaderboard
  • get_current_signals, get_signal, verify_signal, verify_signal_hash
  • get_leaderboard, get_top_wallets, get_wallet_activity, get_wallet_score
  • get_funding_rates, get_exchange_netflow, get_helius_transactions
  • run_backtest, get_alpha_ledger_entries, health_check, whoami, list_tools
  • get_wallet_cluster
  • get_rug_score, get_memecoin_packet, list_high_risk_memecoins
  • list_active_watches, get_watch_history, check_authority_snapshot
These are not stubs and not aspirational endpoints — the tools exist, are registered, and report precisely why they cannot answer. Do not “fix” one by pointing it at a different backing module.

The public HTTP equivalent

The public signal feed carries the same discipline under a different field name:
data_mode: "empty" means no agent run has happened on the host serving this — not that no risks were found. It is also surfaced as the X-Signal-Data-Mode response header so a consumer that only logs headers still cannot miss it.
Assert on data_mode and state in your integration tests. If your code path for module_absent is identical to your code path for ok-with-no-findings, you have the bug this page exists to prevent.
Signals carry an anchor_status and an anchor_tx. The Alpha Ledger contract is not deployed, so today every signal is hashed and queued, and anchor_tx is null.
A signal is anchored when a transaction exists, not when a status field says so — the status is written by the process that queued it, the tx hash by the process that got a receipt. Check anchor_tx, not the vibe. See Verifiable alpha.
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.