v1.18.0 - 2026-03-15
New
-
WebSocket: Session Recovery
Two new WebSocket message types allow clients to recover sessions after disconnection without losing subscriptions or missing events:
enable_session_recovery— activate recovery on an authenticated session; returns arecovery_tokenandttl_seconds(default 30s)recover_session— restore a detached session on a new pristine connection using the token; replays missed messages and restores all subscriptions
See Session Recovery for full documentation.
Changed
-
Breaking:
POST /limit—takerfield restricted to zero addressThe
takerfield on limit orders now only accepts the zero address (0x0000000000000000000000000000000000000000). Requests with a non-zero taker address are rejected with a validation error. -
Breaking:
POST /limit— empty array returns 400Submitting an empty array
[]now returns400 PayloadValidationErrorinstead of200 { posted: [], rejected: [] }. -
POST /limit— new rejection reasonmax orders per market exceededA per-pair open order cap is now enforced. Orders exceeding the limit are returned in the
rejectedarray with reasonmax orders per market exceeded. -
GET /orders— inflight orders now visibleOrders currently being matched (inflight) now appear in
GET /ordersresults. These orders showfilled_amount: 0until the fill is confirmed on-chain. -
filled_amount— semantic changeThe
filled_amountfield on stored limit orders now reflects settlement-confirmed fills only. Previously, amounts reserved for pending (inflight) fills were included. During an active fill,filled_amountshows0until confirmation. -
POST /limit—additionalProperties: falseenforcedThe request schema now rejects unknown properties. Requests containing extra fields not defined in the schema will fail AJV validation.
