Get an asset's current peg state
Path Parameters
Asset symbol — case-insensitive; resolved to canonical casing
Response
Current state + transition timestamp
Timestamp of the most recent transition into the current state. Equals the current snapshot timestamp if the engine has only ever observed one state for this asset.
true when updated_at is older than the 15-minute freshness bound the
list/detail endpoints enforce — i.e. the feed has likely frozen. Unlike
list/detail, /state still returns the last value rather than 404-hiding
it; read this flag to fail safe. Consumers needing a tighter bound can
derive their own from updated_at.
Class-aware peg state. Mirrors the engine PegState enum and the
peg_state Postgres enum. Used for state, from_state, and to_state
fields across the API.
The state is CLASS-AWARE: an LST reading a −1.4% discount (normal unstaking
spread) is PEGGED, while a fiat stable at far less would be DRIFT. Trust
this value directly rather than imposing a naive discount cut.
PEGGED, DRIFT, DEPEG, CRITICAL, BLACK_SWAN, UNKNOWN Timestamp the current snapshot was computed (the latest
discount_snapshots.ts). Distinct from since (state-transition time):
this is the FRESHNESS signal. The engine stops writing snapshots when a
feed goes stale ("missing data is not confirming data" — H8), so a frozen
updated_at is exactly how a stale/frozen feed surfaces on this endpoint.
Pyth oracle confidence bucket: high | medium | low | unknown.
The PRICE-ORACLE confidence-interval signal (conf/price ratio) — the field
integrators should gate automation on alongside state. Mirrors the list
endpoint's confidence. Collapses to unknown when the feed is stale (same
as state), so a frozen feed cannot read as confidently pegged. Omitted only
when no snapshot carries a confidence value (non-Pyth-dependent assets).
Advisory machine-readable reason for the current state (mirrors
discount_snapshots.state_reason and Receipt.state_reason).
Emitted today:
premium_sanity— engine NAV-sanity override: smoothed discount exceeded the premium-sanity bound, state forced to UNKNOWN (intrinsic anchor suspect).stale_source— API layer: feed is >15 min stale, state collapsed to UNKNOWN; no fresh discount snapshot exists.
Reserved — not yet emitted (planned for depth-gate / oracle-crosscheck
work): no_oracle_crosscheck | intrinsic_unavailable | shallow_market | nominal.
Omitted when null.