Skip to main content
Signed private requests are wallet-authorized actions submitted to the operator through REST. They cover placing orders, modifying orders, canceling orders, canceling all orders in one strategy, updating profile settings, and requesting collateral or DDX withdrawals.

Endpoints

Submission envelope

The signed plaintext is a JSON object with request-type field t 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 with t: "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 a requestIndex.

HTTP errors

These errors happen before the request returns a sequenced receipt. The JSON discriminator is error_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.
Last modified on June 8, 2026