QNT-DASH, which Coinbase decomposes into two real legs sharing a hop currency (currently USD only - sell QNT-USD, buy DASH-USD) and executes atomically in the matching engine.
Synthetic product orders are supported in FIX 5.0 and with the Create a new order REST API (is_synthetic=true).
NewOrderSingle (35=D)
These parameters are required for synthetic product orders in addition to the standard NewOrderSingle fields:SecurityType=MLEG|Symbol=QNT-DASH|Side=2|OrdType=2|Price=3|OrderQty=10|TimeInForce=4|SelfTradeType=O
Price and size increments
A synthetic pair has no market of its own, so its increments are derived from the underlying legs rather than from the syntheticSymbol:
- Price (44) - No tick size is enforced. Because the price is a ratio of two underlying markets, any positive value is accepted as long as it has no more than 15 significant digits. The executed price is reported as the realized ratio (quote asset received ÷ base asset sold), rounded down to 15 significant digits.
- OrderQty (38) - Must be positive, no larger than 15 significant digits, and an exact multiple of the leg-1 (
BASE-USD) product’sbase_increment(and no smaller than that increment). The base asset’s real market defines the size increment; the synthetic pair itself has none.
Market vs. Limit behavior
Market orders are always balanced. The proceeds from selling the base asset are fully redeployed into buying the quote asset, so no USD is left over. Any base asset that couldn’t be sold (both books exhausted) is simply never sold - there is no unwind or re-buy.
Limit orders sell the full
OrderQty and buy up to limitPrice × OrderQty of the quote asset. If the market has moved such that acquiring limitPrice × OrderQty costs less than the proceeds of selling OrderQty, the unused proceeds remain in your account as USD.ExecutionReport (35=8)
A filled synthetic product order produces two trade ExecutionReports (ExecType (150) = F), one per underlying leg (one for the sell leg, one for the buy leg). Both share the same OrderID/ClOrdID as the parent order so you can link them, and each is marked MultiLegReportingType (442) = 2 (individual leg of a multi-leg security).
The parent synthetic order separately produces its own New and Done ExecutionReports on the synthetic Symbol (e.g. QNT-DASH); those carry MultiLegReportingType (442) = 3 (multi-leg security).
Fill detail on each leg’s report is carried in the standard last-fill and cumulative tags - there is no FillsGrp repeating group:
Each leg’s report also carries its own real
Symbol (55) and Side (54).
Sell-leg and buy-leg trade reports for the same synthetic product order (sell 10 QNT-DASH at price 3: sell 10 QNT on QNT-USD, buy 30 DASH on DASH-USD):
Caveats
- No market data (order book, candles, ticker) is published for synthetic pairs - compute your own price ratio before submitting a limit order.
- Both underlying legs must be in
FULL_TRADINGstatus, or the order is rejected. - Requires a USD account.
- Coinbase reserves the right to disable synthetic product orders for any currency pair.
- Sequence numbers for drop-copy/feed consumers: a synthetic product order’s own received/done/reject events (and its inverse pair’s) are not tracked per literal
Symbol- they share a single sequence stream. A consumer doing its own per-symbol gap detection should not key on the syntheticSymboldirectly.