private/order, a signed action against the
TRADE_MODULE. The same payload shape describes limit and market orders, resting and
immediate orders, and (with a few extra fields) trigger and algo orders. This page covers the
enums and flags that shape order behaviour; see the API Reference tab for exact
field types and the full request/response schemas.
Prices, amounts, and fees (
limit_price, amount, max_fee, trigger_price, extra_fee) are decimal strings. The
signer signs the fixed-point encoding of these values as part of the EIP-712 action — see Action
signing.Order type
order_type selects how the order interacts with the book. Default limit.
Time in force
time_in_force controls resting vs. immediate execution. Default gtc.
Orders always expire at
signature_expiry_sec regardless of time-in-force. market, ioc,
and fok orders never leave a resting order in the book.
Direction
direction is buy or sell.
Order flags
Applies to
post_only orders. When true, a post-only order that would cross the book is rejected. When false, its
limit price is instead adjusted to one tick away from the best bid/offer so it rests as a maker order.When
true, the order can only reduce an existing position — never increase it. If the amount exceeds the current
position size, the order fills up to that size and cancels the remainder. Supported only for market orders and
non-resting limit orders (ioc or fok).Tags the order for Market Maker Protection. Tagged orders count toward the MMP counters
and are cancelled when protection trips.
Optional client-defined tag (max 64 chars). Enables bulk cancel via
private/cancel_by_label.max_fee is the max fee per unit of volume the signer accepts; the order is rejected if the
estimated fee exceeds it. Optional advanced fields include referral_code, client,
reject_timestamp, extra_fee, and is_atomic_signing (EIP-1271 atomic-signing orders).
Place an order
Trigger (conditional) orders
Supply the trigger fields to submit a stop-loss or take-profit that stays dormant (order_status: untriggered) until its trigger price is reached, then enters the book.
trigger_price_type: index is defined in the schema but not yet supported by the matching engine — use mark.private/get_trigger_orders,
private/cancel_trigger_order (by order_id), and private/cancel_all_trigger_orders.
Algo orders
An algo order (e.g. slice-based execution) is submitted by supplyingalgo_type alongside
algo_duration_sec and algo_num_slices. Its lifecycle status is algo_active. Trigger and
algo fields are mutually exclusive — an order carrying both is rejected.
twap is currently the only supported algo_type; any other value is rejected.private/get_algo_orders, private/cancel_algo_order
(by order_id), and private/cancel_all_algo_orders.
Replace (atomic cancel + replace)
private/replace atomically cancels an existing order and places a new one in a single call —
avoiding the race where a separate cancel-then-place leaves you briefly out of the book. The
payload is a private/order params object plus the cancel-target fields:
Cancelling orders
Single order
private/cancel — by order_id (plus instrument_name, subaccount_id).By nonce
private/cancel_by_nonce — cancels the order(s) for a nonce on an instrument_name.By instrument
private/cancel_by_instrument — all open orders on one instrument_name.By label
private/cancel_by_label — all orders carrying a label (optionally scoped to one instrument).private/cancel_all cancels every open order on a subaccount. Set cancel_trigger_orders and
cancel_algo_orders to also clear untriggered trigger orders and active algo orders.
For multi-leg block trades, use the RFQ workflow rather than individual orders.
matching class (with
cancel_all under endpoint and cancel_by_label under custom); see
Rate limits.