trading
Spot trigger updates
Authenticated spot trigger state updates for one root account or subaccount. An armed trailing trigger exposes its evaluator-authored positive threshold as trailing.triggerPriceTicks; the field is absent before arming or when no positive threshold exists, and moves with the peak or trough.
Channel
private:spot:triggers:{accountPublicId}:proto {
"type": "subscribe",
"channel": "private:spot:triggers:6MSXSqCnTZa:proto"
}Channel parameters
Public root account or subaccount identifier authorized by the subscription token.
e.g. 6MSXSqCnTZaMessage
triggers.v1.TriggerTrigger ID.
42Public account or sub-account ID associated with the trigger.
2305843009213693953Trading symbol numeric identifier.
1Current trigger lifecycle status.
STATUS_ARMEDParent order ID for attached-risk triggers; empty for standalone triggers.
Why an admitted trigger was canceled.
Why an admitted trigger failed.
Child quantity scaled by the pair's base_quantity_scale from GetSpotConfig.
Fee asset for BUY child orders.
Self-trade prevention mode for child orders.
Trigger threshold in quote units scaled by 1e9.
Child order side.
Positive maximum absolute price delta in Q9 execution-price ticks (1 tick = 1e-9 quote units).
Maximum allowed slippage in basis points (1 bp = 0.01%). A sell child accepts values below 10000; a 100% cap would leave it no positive price to sell at.
Limit price in quote units scaled by 1e9.
Reject instead of taking liquidity.
Limit price in quote units scaled by 1e9.
Limit price in quote units scaled by 1e9.
Price the trigger watches. Unspecified or LAST_PRICE watches the last traded price. INDEX_PRICE watches the market's index price; a market without an index price fails the trigger with TRIGGER_FAILURE_REASON_INDEX_PRICE_UNAVAILABLE. MARK_PRICE is not supported. Fixed at create: to change it, cancel the trigger and create a new one.
Trigger threshold in quote units scaled by 1e9.
Child order side.
Positive maximum absolute price delta in Q9 execution-price ticks (1 tick = 1e-9 quote units).
Maximum allowed slippage in basis points (1 bp = 0.01%). A sell child accepts values below 10000; a 100% cap would leave it no positive price to sell at.
Limit price in quote units scaled by 1e9.
Reject instead of taking liquidity.
Limit price in quote units scaled by 1e9.
Limit price in quote units scaled by 1e9.
Price the trigger watches. Unspecified or LAST_PRICE watches the last traded price. INDEX_PRICE watches the market's index price; a market without an index price fails the trigger with TRIGGER_FAILURE_REASON_INDEX_PRICE_UNAVAILABLE. MARK_PRICE is not supported. Fixed at create: to change it, cancel the trigger and create a new one.
Distance as a price delta in 1e-9 quote-unit ticks.
Distance in basis points (1 bp = 0.01%).
Optional activation price in quote units scaled by 1e9.
Positive maximum absolute price delta in Q9 execution-price ticks (1 tick = 1e-9 quote units).
Maximum slippage in basis points (1 bp = 0.01%). Values below 10000 are accepted; a 100% cap would leave a trailing stop that sells no positive price to sell at.
Child order side.
Maximum price of a trailing stop that buys, in quote units scaled by 1e9: the most its child pays per unit. Required when `side` is BUY and set aside for it with the child's fee; at least the activation price, or at least the price it watches (trigger_price_source) when no activation price is set. A rise that fires above it still fires, and the child fills only at or below it. Must be unset when `side` is SELL. Fixed at create.
Price the trailing stop watches: its activation, its peak or trough and its fire all follow this price. Unspecified or LAST_PRICE watches the last traded price. INDEX_PRICE watches the market's index price; a market without an index price fails the trigger with TRIGGER_FAILURE_REASON_INDEX_PRICE_UNAVAILABLE. MARK_PRICE is not supported. Fixed at create: to change it, cancel the trigger and create a new one.
Child side.
Total execution duration in milliseconds, at least 1000.
Interval between slices in milliseconds, at least 100 and at most duration_ms.
Positive maximum absolute price delta per slice in Q9 execution-price ticks (1 tick = 1e-9 quote units).
Maximum adverse price movement per slice in basis points (1 bp = 0.01%).
Slice limit price in quote units scaled by 1e9.
Child side.
Minimum generated level price in quote units scaled by 1e9.
Maximum generated level price in quote units scaled by 1e9.
Number of linearly distributed levels.
Reject each level instead of taking liquidity.
Trigger threshold price in quote units scaled by 1e9.
Price source used for trigger evaluation.
Direction the price must cross to fire the trigger.
Trailing distance as a price delta in 1e-9 quote-unit ticks.
Optional activation price: trailing only starts after this price is reached. Expressed in quote units scaled by 1e9.
Current peak price in quote units scaled by 1e9 for sell trailing stops.
100000000Current trough price in quote units scaled by 1e9 for buy trailing stops.
Trailing distance in basis points (1 bp = 0.01%).
100Non-negative maximum absolute price delta in Q9 execution-price ticks (1 tick = 1e-9 quote units). Zero means no absolute cap is configured.
Optional maximum allowed slippage in basis points (1 bp = 0.01%).
Price source used for trigger evaluation. Fixed for the lifetime of the trigger and exposed for completeness.
Direction the price must cross to fire the trigger. Fixed for the lifetime of the trigger and exposed for completeness.
Current trailing trigger threshold in quote units scaled by 1e9. This is evaluator-authored runtime state and moves when the peak or trough changes. It is absent until the trailing trigger is armed and a positive threshold exists.
99000000Total duration of TWAP execution in milliseconds.
Interval between TWAP slices in milliseconds.
Current slice index, zero-based.
Total number of planned slices.
Cumulative filled child-order base quantity scaled by the pair's base_quantity_scale from GetSpotConfig.
Minimum price in quote units scaled by 1e9 for the ladder range.
Maximum price in quote units scaled by 1e9 for the ladder range.
Number of price levels in the ladder.
Quantity distribution across ladder levels.
Cumulative filled child-order base quantity scaled by the pair's base_quantity_scale from GetSpotConfig. Zero means no quantity executed. The total is kept when the ladder ends, whether it is completed, canceled or failed.
Number of distinct ladder levels with at least one fill. A partially filled level counts once, including across replacement child orders. This is not the number of fully filled levels.
Client-provided trigger ID for idempotency and correlation.
Creation timestamp.
Last update timestamp.
Timestamp when the trigger became armed.
Instant the trigger became terminal, matching its terminal event timestamp. Set for completed, canceled (for any reason), or failed triggers, including terminal expiry or rejection. Absent while the trigger is live.
Per-trigger state version: 1 for the trigger's first state, then higher for every later published state change, whether a request or the market caused it. A higher version is always newer, and two copies of a trigger with the same version show the same state. GetTrigger, ListTriggers and realtime trigger updates carry the same version for the same state. List results can briefly lag realtime updates, and after a reconnect or a service recovery a realtime update can repeat an earlier state, so keep the copy of each trigger with the highest version and ignore any copy whose version is not higher than the one you hold.