Identifying routed instruments
Routing is flagged in the instrument metadata returned by the JSON-RPC methodspublic/get_instrument and public/get_instruments, which set
is_cbe_routed to true (and its alias is_csr to true) for routed spot
instruments. Both fields are omitted entirely for every other instrument, so
test for presence rather than for a false value. Routed spot instruments also
omit block_trade_commission, block_trade_tick_size and
block_trade_min_trade_amount.
Order entry
These restrictions apply toNew Order Single(D)
and Order Cancel/Replace Request(G).
Post-only works differently from native Deribit post-only: the price of a routed
post-only order is never adjusted into the spread, so the order is either placed
unmodified or rejected. That is why
A (“no cross”) must always accompany 6.
Linked orders (OTO, OCO and OTOCO), block trades and Block RFQ legs are not
available on routed spot instruments.
Fills are asynchronous. The
Execution Report(8)
that acknowledges a routed order confirms that Coinbase accepted it, and it
does not necessarily carry any fills. Track execution through the subsequent
Execution Reports on the same session.Market data
Deribit only observes a Coinbase match when one of your own orders was a party to it, so the public trade tape it could publish for a routed instrument would be incomplete. Rather than serve partial data, the trade entry type is rejected:MDEntryType(269)=2(Trade) is rejected for routed spot instruments in aMarket Data Request(V), which is answered with aMarket Data Request Reject(Y).0(Bid) and1(Offer) requested in the same message are still served.Market Data Snapshot/Full Refresh(W) andMarket Data Incremental Refresh(X) therefore never carry trade entries for routed spot instruments.
Security List Request(x) and
Security Status Request(e)
are unaffected.
Your own fills are always complete. Both
Execution Reports and
Trade Capture Report(AE)
include every trade you were a party to.
For the full public trade tape, query Coinbase Exchange directly through its
FIX Market Data API,
the matches WebSocket channel,
or the Get product trades
and Get product candles
REST endpoints.
Rejections
Rejected orders arrive as anExecution Report(8)
with OrdStatus(39)=8 and the reason in Text(58). Rejected market data
requests arrive as a Market Data Request Reject(Y).
See Error codes for the full list.