Ws order state feed data v1
NameLite |
Type | RequiredDefault |
Description |
|---|---|---|---|
streams |
string | True | Stream name |
selectors1 |
string | True | Primary selector |
sequence_numbersn |
string | True | A sequence number used to determine message order within a stream. - If useGlobalSequenceNumber is false, this returns the gateway sequence number, which increments by one locally within each stream and resets on gateway restarts.- If useGlobalSequenceNumber is true, this returns the global sequence number, which uniquely identifies messages across the cluster.- A single cluster payload can be multiplexed into multiple stream payloads. - To distinguish each stream payload, a dedupCounter is included.- The returned sequence number is computed as: cluster_sequence_number * 10^5 + dedupCounter. |
feedf |
OrderStateFeed | True | The Order State Feed |
prev_sequence_numberps |
string | True | The previous sequence number that determines the message order |
OrderStateFeed
NameLite |
Type | RequiredDefault |
Description |
|---|---|---|---|
order_idoi |
string | True | A unique 128-bit identifier for the order, deterministically generated within the GRVT backend |
client_order_idco |
string | True | A unique identifier for the active order within a subaccount, specified by the client |
order_stateos |
OrderState | True | The order state object being created or updated |
OrderState
NameLite |
Type | RequiredDefault |
Description |
|---|---|---|---|
statuss |
OrderStatus | True | The status of the order |
reject_reasonrr |
OrderRejectReason | True | The reason for rejection or cancellation |
book_sizebs |
[string] | True | The number of assets available for orderbook/RFQ matching. Sorted in same order as Order.Legs |
traded_sizets |
[string] | True | The total number of assets traded. Sorted in same order as Order.Legs |
update_timeut |
string | True | Time at which the order was updated by GRVT, expressed in unix nanoseconds |
avg_fill_priceaf |
[string] | True | The average fill price of the order. Sorted in same order as Order.Legs |
OrderStatus
| Value | Description |
|---|---|
PENDING = 1 |
Order has been sent to the matching engine and is pending a transition to open/filled/rejected. |
OPEN = 2 |
Order is actively matching on the matching engine, could be unfilled or partially filled. |
FILLED = 3 |
Order is fully filled and hence closed. Taker Orders can transition directly from pending to filled, without going through open. |
REJECTED = 4 |
Order is rejected by matching engine since if fails a particular check (See OrderRejectReason). Once an order is open, it cannot be rejected. |
CANCELLED = 5 |
Order is cancelled by the user using one of the supported APIs (See OrderRejectReason). Before an order is open, it cannot be cancelled. |
OrderRejectReason
| Value | Description |
|---|---|
UNSPECIFIED = 0 |
order is not cancelled or rejected |
CLIENT_CANCEL = 1 |
client called a Cancel API |
CLIENT_BULK_CANCEL = 2 |
client called a Bulk Cancel API |
CLIENT_SESSION_END = 3 |
client called a Session Cancel API, or set the WebSocket connection to 'cancelOrdersOnTerminate' |
MARKET_CANCEL = 4 |
the market order was cancelled after no/partial fill. Lower precedence than other TimeInForce cancel reasons |
IOC_CANCEL = 5 |
the IOC order was cancelled after no/partial fill |
AON_CANCEL = 6 |
the AON order was cancelled as it could not be fully matched |
FOK_CANCEL = 7 |
the FOK order was cancelled as it could not be fully matched |
EXPIRED = 8 |
the order was cancelled as it has expired |
FAIL_POST_ONLY = 9 |
the post-only order could not be posted into the orderbook |
FAIL_REDUCE_ONLY = 10 |
the reduce-only order would have caused position size to increase |
MM_PROTECTION = 11 |
the order was cancelled due to market maker protection trigger |
SELF_TRADE_PROTECTION = 12 |
the order was cancelled due to self-trade protection trigger |
SELF_MATCHED_SUBACCOUNT = 13 |
the order matched with another order from the same sub account |
OVERLAPPING_CLIENT_ORDER_ID = 14 |
an active order on your sub account shares the same clientOrderId |
BELOW_MARGIN = 15 |
the order will bring the sub account below initial margin requirement |
LIQUIDATION = 16 |
the sub account is liquidated (and all open orders are cancelled by Gravity) |
INSTRUMENT_INVALID = 17 |
instrument is invalid or not found on Gravity |
INSTRUMENT_DEACTIVATED = 18 |
instrument is no longer tradable on Gravity. (typically due to a market halt, or instrument expiry) |
SYSTEM_FAILOVER = 19 |
system failover resulting in loss of order state |
UNAUTHORISED = 20 |
the credentials used (userSession/apiKeySession/walletSignature) is not authorised to perform the action |
SESSION_KEY_EXPIRED = 21 |
the session key used to sign the order expired |
SUB_ACCOUNT_NOT_FOUND = 22 |
the subaccount does not exist |
NO_TRADE_PERMISSION = 23 |
the signature used to sign the order has no trade permission |
UNSUPPORTED_TIME_IN_FORCE = 24 |
the order payload does not contain a supported TimeInForce value |
MULTI_LEGGED_ORDER = 25 |
the order has multiple legs, but multiple legs are not supported by this venue |
EXCEED_MAX_POSITION_SIZE = 26 |
the order would have caused the subaccount to exceed the max position size |
EXCEED_MAX_SIGNATURE_EXPIRATION = 27 |
the signature supplied is more than 30 days in the future |
MARKET_ORDER_WITH_LIMIT_PRICE = 28 |
the market order has a limit price set |
CLIENT_CANCEL_ON_DISCONNECT_TRIGGERED = 29 |
client cancel on disconnect triggered |
OCO_COUNTER_PART_TRIGGERED = 30 |
the OCO counter part order was triggered |
REDUCE_ONLY_LIMIT = 31 |
the remaining order size was cancelled because it exceeded current position size |
CLIENT_REPLACE = 32 |
the order was replaced by a client replace request |
DERISK_MUST_BE_IOC = 33 |
the derisk order must be an IOC order |
DERISK_MUST_BE_REDUCE_ONLY = 34 |
the derisk order must be a reduce-only order |
DERISK_NOT_SUPPORTED = 35 |
derisk is not supported |
INVALID_ORDER_TYPE = 36 |
the order type is invalid |
CURRENCY_NOT_DEFINED = 37 |
the currency is not defined |
INVALID_CHAIN_ID = 38 |
the chain ID is invalid |
BUILDER_ORDER_FEE_EXCEED = 39 |
Builder fee exceed the limit |
BUILDER_ORDER_FEE_NEGATIVE = 40 |
Builder fee is below 0 |
BUILDER_ORDER_BUILDER_NOT_AUTHORIZED = 41 |
Builder is not an authorized builder for client |
BUILDER_ORDER_BUILDER_NOT_EXIST = 42 |
Builder does not exist |
TRADE_PRICE_WORSE_THAN_BANKRUPTCY_PRICE = 44 |
the trade price is worse than the bankruptcy price |
TOO_MANY_MAKER_ORDERS = 45 |
the order was cancelled due to matching with too many maker orders |
REDUCE_ONLY_NOT_SUPPORTED_FOR_SPOT_ORDER = 46 |
reduce-only order is not supported for spot order |
TPSL_NOT_SUPPORTED_FOR_SPOT_ORDER = 47 |
tpsl is not supported for spot order |
SPOT_ORDER_NOT_SUPPORTED = 48 |
spot order is not supported |
INSUFFICIENT_BALANCE = 49 |
the subaccount has insufficient balance |
SPOT_TRADING_BLOCKED_DURING_SOCIALIZED_LOSS = 50 |
spot trading is blocked during socialized loss (SLOW) |
BELOW_MARGIN_WITH_PENALTY_DEVIATION = 51 |
the order will bring the sub account below initial margin requirement considering wide price deviation |