Skip to main content
Selected spot instruments are matched on Coinbase Exchange (CBE) instead of the Deribit matching engine. They trade over the same FIX session as every other instrument, but order entry accepts a narrower set of tag values and the public trade tape is not served for them. Derivatives are unaffected, including derivatives on the same currency pair.

Identifying routed instruments

Routing is flagged in the instrument metadata returned by the JSON-RPC methods public/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 to New 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: Everything else in the market data set behaves normally. Bid and offer snapshots and incremental updates are fed from the full Coinbase L2 book, and 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 an Execution 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.