This page describes market data schema version
2 (semantic version 1.0), which is live on testnet and goes live in production on 10 November 2026. Download the testnet market data XML. See the Starbase changelog.Trades
Trade Summary (30)
This message is sent when a taker order matches against one or more maker/resting orders, followed by one or more Trade messages.
The table below outlines the content of
TradeFlags: field 8 (takerFlags) in Trade Summary, field 6 (makerFlags) in Trade and field 10 (takerFlags) in Block Trade:
Trade (31)
This message is sent for each matched order (including implied orders) and synthetic leg for trades on combo instruments.Block Trades
Block Trade (33)
This message is sent for each individual trade in a block trade. MultipleBlock Trade messages belonging to the same block trade event are grouped as a transaction via the startOfTransaction and endOfTransaction flags in the message header. A block trade event is per instrument: a multi-leg block trade generates one transaction per leg. For example, a Block RFQ with 3 legs where the taker trades against 2 makers produces 3 transactions, each containing 2 Block Trade messages. Block RFQ trades include a blockRfqId; standard block trades omit it.
From schema version 2 the message body is 88 bytes (previously 78). Fields 12 and 13 are appended at the end of the message, so earlier fields keep their offsets. With the 16-byte message header and padding to an 8-byte boundary, messageLength in the message header is 104 (previously 96).
Delayed block trades
Qualifying Block RFQ trades can have their public publication delayed. The eligibility rules, size thresholds and delay are the same as for the JSON-RPC API; see the JSON-RPC API Changelog. A delayed block trade is not published on the incremental channel at execution. When the delay ends, itsBlock Trade messages are published with:
wasDelayedset intakerFlagsexecutionTimestampset to the execution timetransactTimein the message header set to the publication time- the original
matchId,blockTradeId,blockRfqId, prices and quantities from execution
wasDelayed=0 and a null executionTimestamp; transactTime is the execution time.