Endpoints
Submission envelope
The signed plaintext is a JSON object with request-type fieldt and content field c.
Encrypt the UTF-8 JSON bytes and send the encrypted byte payload to
POST /v2/request. Do not wrap the encrypted bytes in another JSON object.
Common content fields
Replay-window fields are paired. Send both
clientTimestampMs and recvWindowMs; sending only one returns ReplayFieldMissing or InvalidRequestPayload depending on the malformed field. Timestamps at least 1000ms ahead of operator time are rejected, and expired requests fail before duplicate or collision handling.
Order content
Order places one order.
Modify-order content
ModifyOrder atomically cancels one order and places the replacement order.
Cancel-order content
CancelOrder cancels one order by hash.
Cancel-all content
CancelAll cancels all orders for one strategy and symbol.
Profile-update content
ProfileUpdate changes trader-level profile settings.
EIP-712 signing maps profile-update fields to
payFeesInDdxState, referralAddress, deniedDelegatedSessionAction, deniedDelegatedSessionAddress, deniedDelegatedSessionExpiry, nonce, clientTimestampMs, and recvWindowMs.
Delegated-session deny-list update
Withdraw content
Withdraw requests a collateral withdrawal.
Withdraw-DDX content
WithdrawDDX requests a DDX withdrawal.
Delegated sessions
Delegated sessions are supported for order, modify-order, cancel-order, and cancel-all requests.
Delegated-session payload decode failures, expired payloads, and action-scope violations return
SignedRequestAuthenticationFailed. A trusted deny-list rejection for a delegated-session signer returns Forbidden.
Successful receipt
Accepted requests return a receipt witht: "Sequenced" after trusted sequencing assigns a request index and the process observes the commit. The receipt is a signed sequencing acknowledgement, not a restart-safe retry record. After an ambiguous send or process loss, recover through committed-state or domain queries such as request index, order hash, transaction state, or event state.
Safety failures
Trusted validation failures return an HTTP error body. They do not allocate arequestIndex.
HTTP errors
These errors happen before the request returns a sequenced receipt. The JSON discriminator iserror_reason.
Transport failures without an HTTP response have no error_reason. A response-body read failure after POST /v2/request is also unknown completion. Automatic retry must reuse the same signed JSON body while the replay window remains valid.