State and records
What the chain stores, what it records about each height, and how to read both without mistaking "not covered" for "nothing happened".
Committed state
Balances, positions, open orders, sessions, agents, vaults and the validator set are committed state: every
validator holds the same copy, and it changes only when a batch is applied. Reads of it say
"source": "committed_state".
| Read | What it serves |
|---|---|
GET /account/equity/{address} | the account's USDC: total, free to trade, held in positions and orders |
GET /positions/{address} | open positions, each with its exact liquidation price |
GET /orders/{address} | open orders, with what has filled and what remains |
GET /twaps/{address} | the account's running TWAP orders |
GET /session/get?owner= | the session (trading key) the account holds, and whether it is confirmed |
GET /agents/{account}/{agent} | one agent: registration, policy, market limits, lock, raise clock |
A write is applied only when it shows up here. /session/valid answers "confirmed": true only once a session is
applied; a 202 from any write route means received, never applied.
Trading records
What happened at each height is kept as trading records: every node that covers a height holds the same records for it.
| Kind | What it records |
|---|---|
order_placed, order_updated, order_closed | an order's life; order_closed says filled, cancelled or expired, and why |
fill | each side of a trade: price, size, the fee charged, which key signed |
funding_payment | funding settled for a position |
liquidation | a position closed by the engine |
twap_placed, twap_progress, twap_ended | a TWAP order's life |
agent_event, agent_refused | what an agent did, and what the chain refused it, with the reason |
Read them per account (GET /events/account/{address}), per agent (GET /events/agent/{agent}), per block
(GET /block/{n}/events) or per range of heights (GET /events/range?from=&to=). Every answer says which heights it
covers. A height outside the covered range is unknown, never "nothing happened".
Batches
GET /batch/{n} and GET /batches serve each batch: its heights, its blocks and the validators whose votes agreed it.
A seated validator that is not listed may still have voted: the list is the votes that formed the agreement, not
everyone who voted.
Network facts last checked against the network 2026-10-22 13:00:37 UTC · mainnet spec v28 · testnet spec v8