Skip to main content
GET
List the global public feed of peg state-transition alerts (all assets)

Query Parameters

asset
string

Restrict to a single asset symbol.

class
string

Restrict to a single asset class.

limit
integer<int64>

Page size, must be in [1, 500]. Default 50. Out-of-range values are rejected with 400 rather than silently clamped.

since
string<date-time>

Inclusive lower bound on detected_at. Defaults to now − 7 days.

Response

Global alert feed, newest first

asset
string
required
calibration
enum<string>
required

Consumer-facing calibration label, provisional | calibrated — the self-describing form of monitoring_only, in the SAME vocabulary the dispatcher puts on the webhook canonical event. provisionalmonitoring_only=true.

Available options:
provisional,
calibrated
class
string
required
detected_at
string<date-time>
required
from_state
enum<string>
required

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.

Available options:
PEGGED,
DRIFT,
DEPEG,
CRITICAL,
BLACK_SWAN,
UNKNOWN
id
string<uuid>
required
monitoring_only
boolean
required

True for a released monitoring_only (beta) asset — its calibration is provisional, so this alert should be read as experimental. Always present so public-ledger consumers can label beta rows.

to_state
enum<string>
required

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.

Available options:
PEGGED,
DRIFT,
DEPEG,
CRITICAL,
BLACK_SWAN,
UNKNOWN
discount
string | null

Signed discount (spread) captured at detection, as a rust_decimal string. Lets the /events feed show each transition's spread magnitude without a second per-row lookup. None for older rows where the alerts.discount column is NULL — the client falls back to the asset's live spread, so the field is additive (omitted, never null).

dispatched_at
string<date-time> | null

null until the dispatcher delivers this alert to its first fan-out target (Telegram or a webhook subscriber); stamped once at least one delivery succeeds. Stays null when the alert matched no subscriber — nothing was delivered — so a null here means "not delivered", NOT "delivery failed". Distinct from detected_at (when the engine saw the transition) and from on-chain commit (a separate evidence path).