Enums (closed sets)
PegState
The engine’s class-aware verdict — trust this, don’t re-threshold
discount yourself.
PEGGED · DRIFT · DEPEG · CRITICAL · BLACK_SWAN · UNKNOWN. UNKNOWN is
non-alerting (missing/untrustworthy data — never rendered as healthy).Anchor
How to read fair value:
USD (fixed $1 target) · FX (fixed non-USD fiat rate, see
peg_target) · NAV (intrinsic/redemption value that legitimately moves — LSTs,
yield-bearing stables, synthetics).Confidence
Pyth oracle confidence bucket for the reading:
high · medium · low · unknown.
Scopes the price-oracle interval only, not market-depth reliability.Calibration
calibrated · provisional. The self-describing form of monitoring_only — provisional
means the asset is live but its thresholds are still being validated on mainnet data.RiskSide
Which direction of
discount is the risk: below (USD/FX anchors — a discount from peg)
or either (NAV anchors — premium and discount both matter).Key fields
string
Canonical Solana mint — the stable join key. Resolve assets by mint, not symbol.
string (decimal)
Signed spread vs. fair value, as a fraction (
"0.0123" = 123 bps). ×10000 → bps. Negative =
below peg / discount, positive = premium. See Response format.string (decimal)
The two legs of the discount: mechanism/NAV fair value vs. observed market price.
integer | null
Derived 0–100 peg-risk score, anchored to
state (PEGGED ≤ 24 … BLACK_SWAN 95–100). A single
sortable number that never disagrees with the classification. null when there’s no
trustworthy discount.string | null
Size/context signals (USD market cap, circulating supply). Never an input to
discount/state/thresholds. null until observed.string (decimal)
Trailing-24h stability: worst absolute discount, and peak-to-trough dispersion (jitter).
Same signed-fraction units as
discount.boolean
true = actively monitored but excluded from the calibrated launch set (a calibration
status, not a health state — a monitoring_only asset can still be PEGGED).string (RFC3339)
Freshness of the current snapshot. The engine stops writing when a feed goes stale, so a
frozen
updated_at is how a stale feed surfaces — always gate on it.Values follow the Response format conventions: decimals
are exact strings (parse with a decimal library), timestamps are RFC3339 millisecond-
Z.