# Cboe Titanium U.S. Options Complex Multicast PITCH Specification

Version 2.1.67 · August 10, 2026

## Introduction

Note that this specification will be the standard specification to be used for complex options on all Cboe-affiliated Options Exchange platforms.

Cboe customers may use Complex Multicast PITCH to receive real-time depth of book quotations and execution information direct from Cboe. This feed will only include quotations and executions related to complex orders.

Complex Multicast PITCH cannot be used to enter orders. For order entry, refer to the appropriate US Options FIX or BOE Specifications.

A Gig-Shaped version of the Complex Multicast PITCH feed is available from both of Cboe's datacenters. Customers may choose to take one or more of the following Complex Multicast PITCH feed options depending on their location and connectivity to Cboe.

### Complex Multicast PITCH Feed Descriptions

**Table 1. Complex Multicast PITCH Feed Descriptions**

| Exchange | Shaping (Gig) | Served From Data Center (Primary/Secondary) | Multicast Feed ID |
|---|---|---|---|
| C1 Options | Gig | Primary | CAC |
| C1 Options | Gig | Primary | CBC |
| C1 Options | Gig | Secondary | CEC |
| C2 Options | Gig | Primary | WAC |
| C2 Options | Gig | Primary | WBC |
| C2 Options | Gig | Secondary | WEC |
| EDGX Options | Gig | Primary | EAC |
| EDGX Options | Gig | Primary | EBC |
| EDGX Options | Gig | Secondary | EEC |
| BZX Options | Gig | Primary | OAC |
| BZX Options | Gig | Primary | OBC |
| BZX Options | Gig | Secondary | OEC |

### 24x5 Feed Hours and System Restart (C1 Only)

For C1 Options operating in 24x5 mode, the PITCH feed starts on Sunday at approximately 1:00 p.m. ET and shuts down on Friday at approximately 5:30 p.m. ET. A daily restart occurs between 5:30 and 7:00 p.m. ET each day at which time sequences will be reset. The daily restart is typically observed between 5:30 p.m. and 6:00 p.m. ET, but could occur later if needed for operational reasons. Feed startup and shutdown times may be adjusted without notice.

Under normal operations, it is expected that the order books are cleared (Delete Order messages sent for any open orders, including GTC and GTD orders), prior to the daily restart and reset of sequences. Persisted GTC and GTD orders will be added back onto the order books starting at approximately 10 minutes prior to the scheduled queuing time for each underlying symbol.

### Feed Connectivity Requirements

Gig Shaped feeds are available to customers with a minimum of 1 Gb/s of connectivity to Cboe via cross connect or dedicated circuit.

Customers with sufficient connectivity may choose to take more than one Gig-Shaped feed from the Cboe datacenters and arbitrate the feeds to recover lost data. It should be noted that feeds from the secondary datacenter will have additional latency for those co-located with Cboe in the primary datacenter due to proximity.

Cboe Complex Multicast PITCH real-time events are delivered using a published range of multicast addresses divided by symbol range units. Dropped messages can be requested using a TCP/IP connection to one of Cboe’s Gap Request Proxy (GRP) servers with replayed messages being delivered on a separate set of multicast ranges reserved for packet retransmission. Intraday, a spin of all open orders may be requested from a Spin Server. This allows a client to become current without requesting a gap for all messages up to that point in the day.

The following diagram is a logical representation Complex Multicast PITCH feed message flow between Cboe and a customer feed handler that is listening to the "A" and "B" instances of two units:

_(Figure)_

### Symbol Ranges, Units, and Sequence Numbers

Symbols will be separated by underlyer into units by a published distribution. Symbol distribution will not change intra-day. Cboe does, however, reserve the right to add multicast addresses or change the symbol distribution with prior notice to customers. Care should be taken to ensure that address changes, address additions, and symbol distribution changes can be supported easily.

Message sequence numbers are incremented by one for every sequenced message within a particular symbol unit. It is important to understand that one or more units will be delivered on a single multicast address. As with symbol ranges, unit distribution across multicast addresses will not change intra-day, but may change after notice has been given.

Symbol distribution across units as well as unit distribution across multicast addresses are identical for real-time and gap response multicast addresses.

### Complex Options Specific Symbol Processing

Cboe has implemented a Complex Instrument Creation (CIC) process due to the seemingly infinite number of combinations that can make up a complex instrument. This allows the Complex Multicast PITCH specification to be consistent with the equities, standard and auction options Multicast PITCH specifications. This CIC process significantly reduces the size of the Complex Multicast PITCH feed and allows customers to use the same feed handler for Cboe equity, options, and futures exchanges.

Real-time CIC messages are available on each unit’s multicast feed. `Complex Instrument Definition Expanded` messages are used to map the 6 character feed Complex Instrument ID (CID) to the complex instrument definition. A complex instrument definition consists of two or more option legs. The complex instrument is valid only for the current trading date on which it was created. Once a complex instrument is created, it cannot be deleted or modified for the remainder of the trading day.

Complex instruments can be created from pre-market through the end of trading. When a complex instrument is created, a sequenced `Complex Instrument Definition Expanded` message is disseminated at the time of creation and is sent in a background loop as an unsequenced message for the reminder of the trading day as bandwidth allows.

### Gap Request Proxy and Message Retransmission

Requesting delivery of missed data is achieved by connecting to the Cboe Gap Request Proxy (GRP) for the complex options data feed. Customers who do not wish to request missed messages do not need to connect to a GRP for any reason or listen to the multicast addresses reserved for message retransmission. Customers choosing to request missed data will need to connect to their assigned GRP, log in, and request gap ranges as necessary. All gap requests will be responded to with a `Gap Response` message. A `Gap Response` Status code of Accepted signals that the replayed messages will be delivered via the appropriate gap response multicast address. Any other `Gap Response` Status code will indicate the reason that the request cannot be serviced.

Gap requests are limited in message count, frequency, and age by the GRP. Gap requests will only be serviced if they are within a defined sequence range of the current multicast sequence number for the requested unit. Customers will receive a total daily allowance of gap requested messages. In addition, each customer is given renewable one second and one minute gap request limits.

If more than one gap request is received for a particular unit/sequence/count combination within a short timeframe, all requests will receive a successful `Gap Response` message from the GRP, but only a single replayed message will be sent on the gap response multicast address.

If overlapping gap requests are received within a short period of time, the gap server will only send the union of the sequence ranges across grouped gap requests. Customers will receive gap responses for their requested unit/sequence/count, but receivers should be prepared for the gap responses to be delivered via multicast in non-contiguous blocks.

Gap acknowledgments or rejects will be delivered to users for every gap request received by the GRP. Users should be prepared to see replayed multicast data before or after the receipt of the gap response acknowledgment from the GRP.

### Spin Servers

A Spin Server is available for each unit. The server allows customers to connect via TCP and receive a spin of all complex instrument definitions and currently open orders with limited trading conditions on that unit. By using the spin, a customer can get the current complex book quickly in the middle of the trading session without worry of gap request limits. The Spin Server for each unit listens on its own address and/or TCP port.

Upon successful login and periodically thereafter, a `Spin Image Available` message is sent which contains a sequence number indicating the most recent message applied to the complex book. Using a `Spin Request` message, a customer may request a spin for the orders up to a sequence number noted within one of the last ten `Spin Image Available` messages distributed. If the `Spin Request` submitted does not present a sequence number that matches one of the last ten `Spin Image Available` messages distributed, the spin will return orders up to the next closest sequence number reported through a `Spin Image Available` message that is greater than the sequence number requested.

In the case a customer sends a sequence number in a `Spin Request` that is higher than the sequence number reported by the most recent `Spin Image Available` message, the next spin image to be generated will be returned when it is available. If the requested sequence number is still higher at that time, an `O` (Out of Range) error will be generated.

A spin consists only of `Complex Instrument Definition Expanded`, `Exchange Designated Complex Instrument Definition`, `Add Order (long and/or short)`, `Trading Status` and `Time` messages. `Trading Status` messages will be sent in spins for all complex instruments that are not `S`=Suspended, which results in at least two messages for every complex instrument that has not been Suspended since system startup. A `Time` message will be sent as the last message in a spin if the last `Time` message sent on a spin is older than the last received time from the internal market data producers.

Spins will not contain any message for an order which is no longer on the book. While receiving the spin, the customer must buffer multicast messages received. If the `Spin Image Available` message sequence number is the customer’s reference point, multicast messages with larger sequence numbers should be buffered. If a non- `Spin Image Available` sequence number is the customer’s reference point from which they send in their `Spin Request`, they should buffer from that point on, but note that the spin they will receive will contain sequence numbers beyond that point which may be disregarded. When a `Spin Finished` message is received, the buffered messages must be applied to spun copy of the book to bring it current.

Customers can also use the Spin Server to request a spin of all `Symbol Mapping`, `Complex Instrument Definition Expanded` and `Exchange Designated Complex Instrument Definition` messages by sending an `Instrument Definition Request.` The Spin Server can only process one spin at a time. Customers will need to wait for a `Spin Finished` or `Instrument Definition Finished` message before submitting another request.

Spin Messages shows an example flow of messages between a customer and Cboe’s Multicast PITCH feed and Spin Server.

## Protocol

Cboe users may use the PITCH 2.X protocol over multicast to receive real-time full depth of complex book quotations and execution information direct from Cboe.

### Message Format

The messages that make up the PITCH 2.X protocol are delivered using `Sequenced Unit Header` which handles sequencing and delivery integrity. All messages delivered via multicast as well as to/from the Gap Request Proxy (GRP) will use the `Sequenced Unit Header` for handling message integrity.

All UDP delivered events will be self-contained. Developers can assume that UDP delivered data will not cross frame boundaries and a single Ethernet frame will contain only one `Sequenced Unit Header` with associated data.

TCP/IP delivered events from the GRP may cross frames as the data will be delivered as a stream of data with the TCP/IP stack controlling Ethernet framing.

The PITCH data feed is comprised of a series of dynamic length sequenced messages. Each message begins with Length and Message Type fields. Cboe reserves the right to add message types and grow the length of any message without notice. Customers should develop their decoders to deal with unknown message types and messages that grow beyond the expected length. Messages will only be grown to add additional data to the end of a message.

### Data Types

The following field types are used within the `Sequenced Unit Header`, GRP messages, and PITCH 2.X.

- Alphanumeric fields are left justified ASCII fields and space padded on the right.
- Binary fields are unsigned and sized to `Length` bytes and ordered using Little Endian convention (least significant byte first).
- Signed Binary fields are signed and sized to `Length` bytes and ordered using Little Endian convention (least significant byte first).
- Binary Signed Short Price fields are signed Little Endian encoded 2 byte binary fields with 2 implied decimal places (denominator = 100). The short price range is -327.68 to +327.67. Prices outside of this range will use the long price.
- Binary Signed Long Price fields are signed Little Endian encoded 8 byte binary fields with 4 implied decimal places (denominator = 10,000).
- Bit Field fields are fixed width fields with each bit representing a Boolean flag (the 0 bit is the lowest significant bit; the 7 bit is the highest significant bit).
- Printable ASCII fields are left justified ASCII fields that are space padded on the right that may include ASCII values in the range of 0x20 - 0x7e.
- Binary Date fields are 4 byte unsigned Little Endian values where the base-10 representation is the YYYYMMDD representation of that date. For example, October 30, 2023 would be represented as 20,231,030 (20231030).
- Time Offset fields are 4 byte unsigned Little Endian values that represent the number of nanoseconds since the last `Time` message. These fields are populated to nanosecond precision. For example, a nano time of 1,737,580,407,123,456,789 ("Wednesday, January 22, 2025 9:13:27.123456789") would return value = 123456789.

### Message Framing

Depth of book update messages will be combined into single UDP frame where possible to decrease message overhead and total bandwidth. The count of messages in a UDP frame will be communicated using the `Sequenced Unit Header`. Framing will be determined by the server for each unit and site. The content of the multicast across feeds (e.g. A/B & Gig-Shaped) will be identical, but framing will not be consistent across feeds. Receiving processes that receive and arbitrate multiple feeds cannot use frame level arbitration to fill gaps.

### Sequenced Unit Header

The `Sequenced Unit Header` is used for all Cboe Complex Multicast PITCH messages as well as messages to and from the Gap Request Proxy (GRP) and Spin Servers.

Sequenced and un-sequenced data may be delivered using the `Sequenced Unit Header` . Un-sequenced headers will have a 0 value for the sequence field and potentially for the unit field. All messages sent to and from the GRP and Spin Server are un-sequenced while multicast may contain sequenced and un-sequenced messages.

Sequenced messages have implied sequences with the first message having the sequence number contained in the header. Each subsequent message will have an implied sequence one greater than the previous message up to a maximum of count messages. Multiple messages can follow a `Sequenced Unit Header` , but a combination of sequenced and un-sequenced messages cannot be sent with one header.

The sequence number for the first message in the next frame can be calculated by adding the Hdr Count field to the Hdr Sequence. This technique will work for sequenced messages and heartbeats.

**Table 1. Sequenced Unit Header**

| Field | Offset | Length | Value/Type | Description |
|---|---|---|---|---|
| Hdr Length | 0 | 2 | Binary | Length of entire block of messages. Includes this header and Hdr Count messages to follow. |
| Hdr Count | 2 | 1 | Binary | Number of messages to follow this header. |
| Hdr Unit | 3 | 1 | Binary | Unit that applies to messages included in this header. |
| Hdr Sequence | 4 | 4 | Binary | Sequence of first message to follow this header. |
| Total Length = 8 bytes |  |  |  |  |

### Heartbeat Messages

The `Sequenced Unit Header` with a count field set to `0` will be used for `Heartbeat` messages. During trading hours `Heartbeat` messages will be sent from the GRP and all multicast addresses if no data has been delivered within 1 second. `Heartbeat` messages never increment the sequence number for a unit, but can be used to detect gaps on the real-time multicast channels during low update rate periods.

`Heartbeat` messages on the real-time multicast addresses during trading hours will have a Hdr Sequence value equal to the sequence of the next sequenced message to be sent for the unit. `Heartbeats` on gap multicast addresses will always have the Hdr Sequence field set to 0. All `Heartbeat` messages sent to and from the GRP are considered un-sequenced and should have sequence and unit fields set to 0.

Outside of trading hours Cboe sends `Heartbeat` messages on all real-time and gap channels with a sequence of `0` to help users validate multicast connectivity. `Heartbeat` messages may not be sent from 12:00 a.m. - 1:00 a.m. ET or during maintenance windows.

Cboe expects `Heartbeat` messages to be sent to the GRP and Spin Servers on live connections no less than every 5 seconds. Failure to receive 2 consecutive `Heartbeat` messages will result in the GRP or Spin Servers terminating the client connection.

## PITCH 2.X Messages

With the exception of `Time Reference` and `Time` messages, each PITCH message reflects the order addition, order deletion, order modification or execution of an order in the system.

### Time Reference Message Fields (C1 Only)

The `Time Reference` message is used to provide a midnight reference point for recipients of the feed. It is sent whenever the system starts up and when the system crosses a midnight boundary. All subsequent `Time` messages for the same unit will use the last Midnight Reference until another `Time Reference` message is received for that unit. The `Time Reference` message includes the Trade Date, so most other sequenced messages will not include that information.

`Time Reference` messages will be included in a spin response.

**Table 1. Time Reference**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0xB1 | `Time Reference` Message |
| Midnight Reference | 2 | 4 | Binary | Midnight Eastern Time reference time for subsequent `Time` messages, expressed as number of whole seconds since the Epoch (Midnight January 1, 1970 UTC). |
| Time | 6 | 4 | Binary | Number of whole seconds elapsed since the start of the current Eastern Time calendar day, derived by converting the current Eastern wall clock time (HH:MM:SS) to seconds. On Daylight Saving Time transition days, Time reflects wall clock seconds and does not adjust for the UTC offset change. On a DST spring-forward day, the maximum value will be 82,799 (23 hours). On a DST fall-back day, values between 3,600 and 7,199 will appear twice. Recipients requiring unambiguous absolute timestamps should use Epoch Time (where available) or Midnight Reference in the `Time Reference` message. |
| Time Offset | 10 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Trade Date | 14 | 4 | Binary Date | Current Trade Date |
| Total Length = 18 bytes |  |  |  |  |

### Time Message Fields

A `Time` message is immediately generated and sent when there is a PITCH event for a given clock second. If there is no PITCH event for a given clock second, then no `Time` message is sent for that second. The Time field is the number of seconds relative to midnight Eastern Time. All subsequent time offset fields for the same unit will use the new `Time` value as the base until another `Time` message is received for the same unit. On C1 only, the `Time` message will also include the Epoch Time field, which is the current time represented as the number of whole seconds since the Epoch (midnight January 1, 1970).

For C1 only, a given trading day may span multiple calendar days. C1 options market data recipients must prepare for a crossing of the midnight ET boundary. At such time, a new `Time Reference` message will be sent and the Time field in subsequent `Time` messages will reset to reflect the number of seconds from the most recent midnight ET time.

**Table 1. Time**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0x20 | `Time` Message |
| Time | 2 | 4 | Binary | Number of whole seconds elapsed since the start of the current Eastern Time calendar day, derived by converting the current Eastern wall clock time (HH:MM:SS) to seconds. On Daylight Saving Time transition days, Time reflects wall clock seconds and does not adjust for the UTC offset change. On a DST spring-forward day, the maximum value will be 82,799 (23 hours). On a DST fall-back day, values between 3,600 and 7,199 will appear twice. Recipients requiring unambiguous absolute timestamps should use Epoch Time (where available) or Midnight Reference in the `Time Reference` message. |
| Epoch Time | 6 | 4 | Binary | C1 Only Number of whole seconds since the Epoch (midnight January 1, 1970 UTC). |
| Total Length = 6 bytes, 10 bytes on C1 Only |  |  |  |  |

### Unit Clear Message Fields

The `Unit Clear` message instructs feed recipients to clear all orders for the Cboe complex book in the unit specified in the `Sequenced Unit Header`. For Equities only, this message will be sent at startup each day. It would also be distributed in certain recovery events such as a data center fail-over.

**Table 1. Unit Clear**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x97 | `Unit Clear` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Total Length = 6 bytes |  |  |  |  |

### Transaction Begin Message Fields

The `Transaction Begin` message indicates any subsequent messages, up to the accompanying `Transaction End` message, are all part of the same transaction block. All PITCH messages corresponding to such an event would be included between a `Transaction Begin` and `Transaction End`. It is important to note that any PITCH Message Type may be included in a transaction block and there is no guarantee that the messages apply to the same price level or even the same Symbol. `Transaction Begin` messages do not alter the book and can be ignored if messages are being used solely to build a book.

Feed processors can use a transaction block as a trigger to postpone publishing a quote update until the end of the transaction block.

**Table 1. Transaction Begin**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0xBC | `Transaction Begin` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Total Length = 6 bytes |  |  |  |  |

### Transaction End Message Fields

The `Transaction End` message indicates that a transaction indicated by a previous `Transaction Begin` message has completed. `Transaction End` messages do not alter the book and can be ignored if messages are being used solely to build a book.

**Table 1. Transaction End**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0xBD | `Transaction End` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Total Length = 6 bytes |  |  |  |  |

### Complex Instrument Definition Expanded Message Fields

A `Complex Instrument Definition Expanded` message represents a complex instrument that is available to place orders. It is sent as a sequenced message the first time a `Complex Instrument Definition Expanded` message is sent for a symbol. These messages will also be sent continuously through the day as an unsequenced message (sequence = 0) at variable rates as bandwidth allows. The Time offset field should be ignored on an unsequenced `Complex Instrument Definition Expanded` message.

The `Complex Instrument Definition Expanded` message will contain two or more repeating groups of leg definitions. There is a limit of 16 leg definitions, one of which may be an equity leg.

**Table 1. Complex Instrument Definition Expanded**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0x9A | `Complex Instrument Definition Expanded` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Complex Instrument Id | 6 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Complex Instrument Underlying | 12 | 8 | Printable ASCII | Complex Instrument Underlying right padded with spaces. |
| Complex Instrument Type | 20 | 4 | Alphanumeric | 4 character field; each field describes a characteristic. Character 1: Complex Option Type `O` = All legs are options `E` = One leg is an equity leg Characters 2-4: Reserved |
| Leg Count | 24 | 1 | Binary | The number of legs in the complex instrument. The maximum number of legs is 16. |
| The following fields repeat Leg Count times for multi-leg strategies. Leg Index is zero-based. |  |  |  |  |
| Leg Symbol | 25 + Leg Index * 13 | 8 | Printable ASCII | Option or Equity Symbol of leg, right padded with spaces. |
| Leg Ratio | 33 + Leg Index * 13 | 4 | Signed Binary | Leg ratio (positive for buy-side, negative for sell-side). For options this is the number of contracts, for equities this is the number of shares. |
| Leg Security Type | 37 + Leg Index * 13 | 1 | Alphanumeric | `O` = Leg is an Option instrument `E` = Leg is an Equity instrument |
| Total Length = 25 + (Leg Count * 13) bytes |  |  |  |  |

### Exchange Designated Complex Instrument Definition Message Fields (C1 Only)

The `Exchange Designated Complex Instrument Definition` (EDCID) message represents supplemental information associated with an exchange-designated complex instrument and is sent as a sequenced message the first time it is sent. These messages are also sent continuously throughout the day as an unsequenced message (sequence = 0) at variable rates as bandwidth allows. The Time Offset field should be ignored on unsequenced EDCID messages.

This message is sent in addition to a `Complex Instrument Definition Expanded` message for each exchange-designated complex instrument. All complex instruments, including exchange designated complex instruments, will be represented with standard `Complex Instrument Definition Expanded` messages. The purpose of the EDCID messages is to associate complex instruments with dependent Cboe products and services through the EDCI Type and Subtype fields.

Note that the same complex instrument can be associated with more than one dependent product, resulting in more than one EDCID message sharing the same Complex Instrument Id field value.

The EDCID message contains two or more repeating groups of leg definitions. There is a limit of 16 leg definitions.

**Table 1. Exchange Designated Complex Instrument Definition**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0x9F | `Exchange Designated Complex Instrument Definition` message. |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Complex Instrument Id | 6 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Complex Instrument Underlying | 12 | 8 | Printable ASCII | Complex Instrument Underlying right padded with spaces. |
| EDCI Type | 20 | 20 | Printable ASCII | Exchange Designated Complex Instrument type right padded with spaces. |
| EDCI Subtype | 40 | 20 | Printable ASCII | Exchange Designated Complex Instrument subtype right padded with spaces. |
| Reserved | 60 | 2 | Reserved | Reserved |
| Leg Count | 62 | 1 | Binary | The number of legs in the complex instrument. The maximum number of legs is 16. |
| The following fields repeat Leg Count times for multi-leg strategies. Leg Index is zero-based. |  |  |  |  |
| Leg Symbol | 63 + Leg Index * 10 | 6 | Printable ASCII | Option symbol of leg, right padded with spaces. |
| Leg Ratio | 69 + Leg Index * 10 | 4 | Signed Binary | Leg ratio (positive for buy-side, negative for sell-side). |
| Total Length = 63 + (Leg Count * 10) bytes |  |  |  |  |

### Symbol Mapping Message Fields

A `Symbol Mapping` message is used to map the 6 character multicast feed symbol field to an OSI symbol and Underlying. These messages are not sequenced (sequence = 0) and are sent continuously through the day at variable rates as bandwidth allows.

**Table 1. Symbol Mapping**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0x2E | `Symbol Mapping` Message. |
| Feed Symbol | 2 | 6 | Printable ASCII | Symbol right padded with spaces. |
| OSI Symbol | 8 | 21 | Printable ASCII | OSI Symbol |
| Symbol Condition | 29 | 1 | Alphanumeric | `N` = Normal `C` = Closing Only |
| Underlying | 30 | 8 | Alphanumeric | Symbol of underlying equity right padded with spaces. All spaces if not available or not applicable. |
| Total Length = 38 bytes |  |  |  |  |

### Add Order Message Fields

An `Add Order` message represents a newly accepted visible order on the Cboe complex book. It includes a day-specific Order Id assigned by Cboe to the complex order.

**Table 1. Add Order (long)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x21 | `Add Order` Message (long) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Day-specific identifier assigned to this order |
| Side Indicator | 14 | 1 | Alphanumeric | `B` = Buy Order `S` = Sell Order |
| Quantity | 15 | 4 | Binary | Instrument quantity added to the complex book (may be less than the number entered). |
| Complex Instrument Id | 19 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Price | 25 | 8 | Binary Signed Long Price | The limit order price |
| Reserved | 33 | 1 | Reserved | Reserved |
| Total Length = 34 bytes |  |  |  |  |

**Table 2. Add Order (short)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x22 | `Add Order` Message (short) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Day-specific identifier assigned to this order |
| Side Indicator | 14 | 1 | Alphanumeric | `B` = Buy Order `S` = Sell Order |
| Quantity | 15 | 2 | Binary | Instrument quantity being added to the complex book (may be less than the number entered). |
| Complex Instrument Id | 17 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Price | 23 | 2 | Binary Signed Short Price | The limit order price |
| Reserved | 25 | 1 | Reserved | Reserved |
| Total Length = 26 bytes |  |  |  |  |

**Table 3. Add Order (expanded)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x2F | `Add Order` Message (expanded) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Day-specific identifier assigned to this order |
| Side Indicator | 14 | 1 | Alphanumeric | `B` = Buy Order `S` = Sell Order |
| Quantity | 15 | 4 | Binary | Instrument quantity being added to the complex book (may be less than the number entered). |
| Complex Instrument Id | 19 | 8 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Price | 27 | 8 | Binary Signed Long Price | The limit order price |
| Reserved | 35 | 1 | Reserved | Reserved |
| Participant ID | 36 | 4 | Alphanumeric | Optionally specified. If specified the Executing Broker of firm attributed to this quote. Space filled otherwise. |
| Customer Indicator | 40 | 1 | Alphanumeric | `N` = Non-Customer `C` = Customer |
| Client ID | 41 | 4 | Alphanumeric | Optional user specified value attributed to this quote. Space filled otherwise. |
| Reserved | 45 | 5 | Reserved | Reserved |
| Total Length = 50 bytes |  |  |  |  |

### Order Modification Messages Message Fields

Order Modification messages refer to an Order ID previously sent with an `Add Order` message. Multiple Order Modification messages may modify a single complex order and the effects are cumulative. Modify messages may update the size and/or the price of a complex order on the book. When the remaining size of a complex order reaches zero, the complex order is dead and should be removed from the book.

#### Order Executed

`Order Executed` messages are sent when a visible complex order on the Cboe complex book is executed in whole or in part. The execution price equals the limit order price found in the original `Add Order` message or the limit order price in the latest `Modify Order` message referencing the Order Id.

Note even if there are single leg to complex order executions, this feed will only contain the order execution for the complex order. Any single leg execution information is available on the standard PITCH feed.

**Table 1. Order Executed**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x23 | `Order Executed` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that was executed |
| Executed Quantity | 14 | 4 | Binary | Instrument quantity executed |
| Execution Id | 18 | 8 | Binary | Cboe generated day-unique execution identifier of this execution. |
| Trade Condition | 26 | 1 | Alphanumeric | See Options Trade Condition Codes for details about new codes. |
| Total Length = 27 bytes |  |  |  |  |

#### Order Executed at Price/Size

`Order Execution at Price/Size` messages are sent when a complex order on the Cboe complex book is executed in whole or in part at a different price than the limit price on the original `Add Order` message or the limit order price in the latest `Modify Order` message referencing the Order Id. If the Remaining Quantity field contains a 0 the complex order should be completely removed from the complex book.

`Order Execution at Price/Size` messages may also be sent in the event the existing size for Order Id is not equal to Executed Quantity + Remaining Quantity. In this case the complex order should be prioritized the same as a new complex order.

**Table 1. Order Executed at Price/Size**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x24 | `Order Executed at Price/Size` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that was executed |
| Executed Quantity | 14 | 4 | Binary | Instrument quantity executed |
| Remaining Quantity | 18 | 4 | Binary | Number of contracts remaining after the execution |
| Execution Id | 22 | 8 | Binary | Cboe generated day-unique execution identifier of this execution. |
| Price | 30 | 8 | Binary Signed Long Price | The execution price of the order |
| Trade Condition | 38 | 1 | Alphanumeric | See Options Trade Condition Codes for details about new codes. |
| Total Length = 39 bytes |  |  |  |  |

#### Reduce Size

`Reduce Size` messages are sent when a complex order on the Cboe complex book is partially reduced.

**Table 1. Reduce Size (long)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x25 | `Reduce Size` Message (long) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that has been reduced |
| Canceled Quantity | 14 | 4 | Binary | Instrument quantity canceled |
| Total Length = 18 bytes |  |  |  |  |

**Table 2. Reduce Size (short)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x26 | `Reduce Size` Message (short) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that has been reduced |
| Canceled Quantity | 14 | 2 | Binary | Instrument quantity canceled |
| Total Length = 16 bytes |  |  |  |  |

#### Modify Order

The `Modify Order` message is sent whenever an open complex order is visibly modified. The Order Id refers to the Order Id of the original `Add Order` message.

Note that `Modify Order` messages that appear to be "no ops" (i.e. they do not appear to modify any relevant fields) will still lose priority.

**Table 1. Modify (long)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x27 | `Modify Order` message (long) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that has been modified |
| Quantity | 14 | 4 | Binary | Instrument quantity associated with this complex order after this modify (may be less than the number entered) |
| Price | 18 | 8 | Binary Signed Long Price | The limit order price after this modify |
| Reserved | 26 | 1 | Bit Field | Reserved |
| Total Length = 27 bytes |  |  |  |  |

**Table 2. Modify (short)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x28 | `Modify Order` message (short) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that has been modified |
| Quantity | 14 | 2 | Binary | Instrument quantity associated with this complex order after this modify (may be less than the number entered) |
| Price | 16 | 2 | Binary Signed Short Price | The limit order price after this modify |
| Reserved | 18 | 1 | Bit Field | Reserved |
| Total Length = 19 bytes |  |  |  |  |

#### Delete Order

The `Delete Order` message is sent whenever a booked order is cancelled or leaves the order book. The Order Id refers to the Order Id of the original `Add Order` message. An order that is deleted from the book may return to the book later under certain circumstances. Therefore, a `Delete Order` message does not indicate that a given Order Id will not be sent again on a subsequent `Add Order` message.

**Table 1. Delete**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x29 | `Delete Order` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of a previously sent `Add Order` message that has been removed from order book. |
| Total Length = 14 bytes |  |  |  |  |

### Trade Message Fields

The `Trade` message provides information about executions of complex order auctions on the Cboe complex book. A `Trade` message can also be sent when an auction executes against a non-displayed order, such as a contra response. `Trade` messages are necessary to calculate Cboe execution-based data. `Trade` messages do not alter the complex book and can be ignored if messages are being used solely to build a complex book.

No `Add Order` message is sent for complex auction orders, and thus, no order modification messages may be sent when complex auctions are executed. Instead, a `Trade` message is sent whenever a complex auction is executed in whole or in part. A complete view of all Cboe complex executions can be built by combining all `Order Executed` messages and `Trade` messages.

**Table 1. Trade (long)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x2A | `Trade` Message (long) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of the executed order. |
| Side Indicator | 14 | 1 | Alphanumeric | Always `B`=Buy Order regardless of resting side |
| Quantity | 15 | 4 | Binary | Instrument quantity traded |
| Complex Instrument Id | 19 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Price | 25 | 8 | Binary Signed Long Price | The execution price of the order |
| Execution Id | 33 | 8 | Binary | Cboe generated day-unique execution identifier of this trade. |
| Trade Condition | 41 | 1 | Alphanumeric | See Options Trade Condition Codes for details about new codes. |
| Total Length = 42 bytes |  |  |  |  |

**Table 2. Trade (short)**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x2B | `Trade` Message (short) |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Order Id | 6 | 8 | Binary | Order Id of the executed order. |
| Side Indicator | 14 | 1 | Alphanumeric | Always `B`=Buy Order regardless of resting side |
| Quantity | 15 | 2 | Binary | Instrument quantity traded |
| Complex Instrument Id | 17 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Price | 23 | 2 | Binary Signed Short Price | The execution price of the order |
| Execution Id | 25 | 8 | Binary | Cboe generated day-unique execution identifier of this trade. |
| Trade Condition | 33 | 1 | Alphanumeric | See Options Trade Condition Codes for details about new codes. |
| Total Length = 34 bytes |  |  |  |  |

### Auction Notification Message Fields

`Auction Notification` messages are used to disseminate order details of a complex auction. Auctions will be available for a defined period of time known as the exposure period.

**Table 1. Auction Notification**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0xAD | `Auction Notification` message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Complex Instrument Id | 6 | 6 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Auction ID | 12 | 8 | Binary | Day specific identifier assigned to this auction. |
| Auction Type | 20 | 1 | Alphanumeric | `C` = Complex Order Auction (COA) (or Stop Complex Order Auction (SCOA) effective TBD) `S` = Complex Solicitation Auction Mechanism `B` = Complex AIM `O` = COA All or None |
| Side | 21 | 1 | Alphanumeric | `B` = Buy `S` = Sell |
| Price | 22 | 8 | Binary Signed Long Price | Auction price. The price field will be populated for all Auctions on EDGX Options, and for SAM Auctions on C1. This field will reflect the auction start price for SPX and SPXW AIM ( C1 Only ) and will be set to zero for all other AIM on C1. This field will be set to zero for COA on C1, C2, and BZX Options. |
| Quantity | 30 | 4 | Binary | Instrument quantity. |
| Customer Indicator | 34 | 1 | Alphanumeric | `N` = Non-Customer `C` = Customer |
| ParticipantID | 35 | 4 | Alphanumeric | Executing Broker (optional) of firm attributed to this quote. |
| Auction End Offset | 39 | 4 | Binary | Nanosecond offset from last timestamp. |
| Client ID | 43 | 4 | Alphanumeric | Optional user specified value attributed to this quote. Space filled otherwise. |
| Total Length = 47 bytes |  |  |  |  |

### Auction Cancel Message Fields

`Auction Cancel` messages are used to disseminate the cancelation of an earlier `Auction Notification` message as a result of a user cancelation of the original complex auction, a user modification request to change the complex auction price or increase the original complex auction quantity, a fading of the NBBO or to cancel any remaining complex auction quantity from the original `Auction Notification` following the complex auction termination.

A user request to modify the complex auction price or to increase the original complex auction quantity will result in a cancelation of the complex auction followed by a new `Auction Notification` message. `Auction Cancel` messages will not be issued for complex auction quantity decrements.

**Table 1. Auction Cancel**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0xAE | `Auction Cancel` message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Auction ID | 6 | 8 | Binary | Day specific identifier assigned to this auction |
| Total Length = 14 bytes |  |  |  |  |

### Auction Trade Message Fields

`Auction Trade` messages are used to disseminate executions resulting from a complex auction.

**Table 1. Auction Trade**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0xAF | `Auction Trade` message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Auction ID | 6 | 8 | Binary | Day specific identifier assigned to this auction |
| Execution ID | 14 | 8 | Binary | Day specific identifier assigned to this execution |
| Price | 22 | 8 | Binary Signed Long Price | Trade price |
| Quantity | 30 | 4 | Binary | Instrument quantity traded |
| Total Length = 34 bytes |  |  |  |  |

### Trading Status Message Fields

The `Trading Status` message is used to indicate the current trading status of a complex instrument. A `Trading Status` message will be sent whenever a complex instrument trading status changes.

A `Trading Status` message will be sent for all complex instruments as they transition through various trading states.

Starting at 7:30 a.m. ET, Cboe will send a Trading Status of `Q` once orders can be accepted for queuing in preparation for the RTH open. At or after 9:30 a.m. ET, Cboe will send a Trading Status of `T` as series are open for trading. Cboe will send a Trading Status of `L` as SPX or VIX series transition from RTH trading to Curb trading.

A `Trading Status` message will also be sent:

- for a Regulatory Halt `Q`=Quotingperiod in any series where the underlying has experienced a Regulatory Halt as well as the `T`=Trading resumption for the same series.
- for instruments that are in a `Q`=Quoting period for auctions.

The Trading Status field will be used to represent the status of the RTH and Curb sessions. The GTH Trading Status field will be used to represent the status of series that trade during the GTH session (C1 Only).

**Table 1. Trading Status**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x31 | `Trading Status` message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp |
| Complex Symbol ID | 6 | 6 | Printable ASCII | Complex Symbol right padded with spaces. |
| Reserved | 12 | 2 | Reserved | Reserved |
| Trading Status | 14 | 1 | Alpha | `H` = Halted `L` = Curb Trading (C1 Only) `Q` = Quote-Only `T` = RTH Trading |
| Reserved | 15 | 1 | Reserved | Reserved |
| GTH Trading Status (C1 Only) | 16 | 1 | Alpha | `H` = Halted `Q` = Quote-Only `T` = Trading |
| Reserved2 | 17 | 1 | Alpha | Reserved |
| Total Length = 18 bytes |  |  |  |  |

### Options Auction Update Message Fields

`Options Auction Update` messages are used to disseminate price and size information during the Opening and Re-Opening (halt) process for complex instruments. The `Options Auction Update` messages are sent every 5 seconds during an opening period. Refer to the Cboe Titanium U.S. Options Complex Book Process for more information.

**Table 1. Options Auction Update**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0xD1 | `Options Auction Update` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Complex Instrument ID | 6 | 8 | Printable ASCII | Complex Instrument right padded with spaces. |
| Auction Type | 14 | 1 | Alphanumeric | `G` = GTH Opening (C1 Only) `O` = RTH Opening (C1 Only) `H` = Halt Re-Opening |
| Reference Price | 15 | 8 | Binary Long Price | Not used for complex series. Will contain zero value. |
| Buy Contracts | 23 | 4 | Binary | Cumulative Buy interest at the Indicative Price. |
| Sell Contracts | 27 | 4 | Binary | Cumulative Sell interest at the Indicative Price. |
| Indicative Price | 31 | 8 | Binary Signed Long Price | SNBBO Collared Volume Maximizing Imbalance Minimizing Price computed on combined Auction-Only and Continuous Book (if any). |
| Auction Only Price | 39 | 8 | Binary Signed Long Price | Not used for complex series. Will contain zero value. |
| Opening Condition | 47 | 1 | Alphanumeric | Not used for Complex series. Will contain zero value. |
| Composite Market Bid Price | 48 | 8 | Binary Signed Long Price | Not used for Complex series. Will contain zero value. |
| Composite Market Offer Price | 56 | 8 | Binary Signed Long Price | Not used for complex series. Will contain zero value. |
| Total Length = 64 bytes |  |  |  |  |

### Auction Summary Message Fields

`Auction Summary` messages are used to disseminate the results of an auction of a complex instrument. An Opening or Re-Opening `Auction Summary` message for each complex instrument is sent at the conclusion of its Opening or Re-Opening auction and represents Cboe opening price. Refer to the Cboe Titanium U.S. Options Complex Book Process for more information.

The `Auction Summary` message has the following format:

**Table 1. Auction Summary**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field. |
| Message Type | 1 | 1 | 0x96 | `Auction Summary` Message |
| Time Offset | 2 | 4 | Time Offset | Nanosecond offset from last unit timestamp. |
| Complex Instrument Id | 6 | 8 | Printable ASCII | Complex Instrument Id right padded with spaces. |
| Auction Type | 14 | 1 | Alphanumeric | `G` = GTH Opening (C1 Only) `O` = RTH Opening (C1 Only) `H` = Halt Re-Opening |
| Price | 15 | 8 | Binary Signed Long Price | Auction price |
| Quantity | 23 | 4 | Binary | Cumulative instrument quantity executed during the auction |
| Total Length = 27 bytes |  |  |  |  |

### End of Session Message Fields

The `End of Session` message is sent for each unit when the unit shuts down. No more sequenced messages will be delivered for this unit, but heartbeats from the unit may be received.

**Table 1. End of Session**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x2D | `End of Session` message |
| Timestamp | 2 | 4 | Binary | Nanosecond offset from last unit timestamp |
| Total Length = 6 bytes |  |  |  |  |

## Gap Request Proxy Messages

The following messages are used for initializing a TCP/IP connection to the Gap Request Proxy (GRP) and to request message retransmissions. Customers only need to implement the following messages if gap requests will be made. The following messages will not be delivered using multicast.

### Login Message Fields

The `Login` message is the first message sent to the GRP by a user’s process after the connection to the GRP is established. Failure to login before sending any other message type will result in the connection being dropped by the GRP.

**Table 1. Login**

| Field | Offset | Length | Value/Type | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x01 | `Login` message |
| SessionSubId | 2 | 4 | Alphanumeric | SessionSubId supplied by Cboe |
| Username | 6 | 4 | Alphanumeric | Username supplied by Cboe |
| Filler | 10 | 2 | Alphanumeric | (space filled) |
| Password | 12 | 10 | Alphanumeric | Password supplied by Cboe |
| Total Length = 22 bytes |  |  |  |  |

### Login Response Message Fields

The `Login Response` message is sent by the GRP to a user’s process in response to a `Login` message. The status field is used to reflect an accepted login or the reason the session was not accepted. If login fails, the connection will be dropped after the `Login Response` message is sent.

**Table 1. Login Response**

| Field | Offset | Length | Value/Type | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x02 | `Login Response` Message |
| Status | 2 | 1 | Alphanumeric | Accepted or reason for reject |
| Total Length = 3 bytes |  |  |  |  |
| Login Response - Status Codes |  |  |  |  |
| ‘A’ | Login Accepted |  |  |  |
| ‘N’ | Not authorized (Invalid Username/Password) |  |  |  |
| ‘B’ | Session in use |  |  |  |
| ‘S’ | Invalid Session |  |  |  |

### Gap Request Message Fields

The `Gap Request` message is used by a user’s process to request retransmission of a sequenced message (or messages) by one of Cboe’s gap servers.

**Table 1. Gap Request**

| Field | Offset | Length | Value/Type | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x03 | `Gap Request` message |
| Unit | 2 | 1 | Binary | Unit that the gap is requested for |
| Sequence | 3 | 4 | Binary | Sequence of first message (lowest sequence in range) |
| Count | 7 | 2 | Binary | Count of messages requested |
| Total Length = 9 bytes |  |  |  |  |

### Gap Response Message Fields

The `Gap Response` message is sent by the GRP in response to a `Gap Request` message. The Unit and Sequence fields will match the values supplied in the `Gap Request` message. A `Gap Response` message, with a Status of Accepted or reason for failure, will be sent for each `Gap Request` message received by the GRP.

**Table 1. Gap Response**

| Field | Offset | Length | Value/Type | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x04 | `Gap Response` message |
| Unit | 2 | 1 | Binary | Unit the gap was requested for |
| Sequence | 3 | 4 | Binary | Sequence of first message in request |
| Count | 7 | 2 | Binary | Count of messages requested |
| Status | 9 | 1 | Alphanumeric | Accepted or reason for reject |
| Total Length = 10 bytes |  |  |  |  |
| Gap Response - Status Codes |  |  |  |  |
| ‘A’ | Accepted |  |  |  |
| ‘O’ | Out of range (ahead of sequence or too far behind) |  |  |  |
| ‘D’ | Daily gap request allocation exhausted |  |  |  |
| ‘M’ | Minute gap request allocation exhausted |  |  |  |
| ‘S’ | Second gap request allocation exhausted |  |  |  |
| ‘C’ | Count request limit for one gap request exceeded |  |  |  |
| ‘I’ | Invalid Unit specified in request |  |  |  |
| ‘U’ | Unit is currently unavailable |  |  |  |

* All non-’A’ status codes should be interpreted as a reject.

## Spin Messages

### Login Message Fields

The `Login` message is the first message sent to the Spin Server by a user’s process after the connection to the Spin Server is established. Failure to login before sending any other message type will result in the connection being dropped by the Spin Server.

The format of the `Login` message for the Spin Server is identical to that of the GRP described in Login Message Fields.

### Login Response Message Fields

The `Login Response` message is sent by the Spin Server to a user’s process in response to a `Login` message. The status field is used to reflect an accepted login or the reason the session was not accepted. If login fails, the connection will be dropped after the `Login Response` message is sent.

The format of the `Login Response` message for the Spin Server is identical to that of the GRP described in Login Response Message Fields.

### Spin Image Available Message Fields

The `Spin Image Available` message is sent once per second and indicates through what sequence number a spin is available.

**Table 1. Spin Image Available**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x80 | `Spin Image Available` message |
| Sequence | 2 | 4 | Binary | Spin is available which is current through this sequence number |
| Total Length = 6 bytes |  |  |  |  |

### Spin Request Message Fields

The `Spin Request` message is used by a user’s process to request transmission of a spin of the unit’s order book. Refer to Spin Servers for more complete details regarding Sequence specification as well as buffering requirements.

**Table 1. Spin Request**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x81 | `Spin Request` message |
| Sequence | 2 | 4 | Binary | Sequence number from a `Spin Image Available` message received by the customer |
| Total Length = 6 bytes |  |  |  |  |

### Spin Response Message Fields

The `Spin Response` message is sent in response to a user’s `Spin Request` message indicating whether a spin will be sent.

**Table 1. Spin Response**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x82 | `Spin Response` message |
| Sequence | 2 | 4 | Binary | Sequence number from a `Spin Image Available` message received by the customer |
| Order Count | 6 | 4 | Binary | Number of `Add Order` messages which will be contained in this spin |
| Status | 10 | 1 | Alphanumeric | Accepted or reason for reject |
| Total Length = 11 bytes |  |  |  |  |
| Spin Response - Status Codes |  |  |  |  |
| ‘A’ | Accepted |  |  |  |
| ‘O’ | Out of Range (Sequence requested is greater than Sequence available by the next spin) |  |  |  |
| ‘S’ | Spin already in progress (only one spin can be running at a time) |  |  |  |

* All non-’A’ status codes should be interpreted as a reject.

### Spin Finished Message Fields

The `Spin Finished` message is sent to indicate that all messages for the spin requested have been sent. A `Spin Finished` message is only sent if a `Spin Request` was not rejected. Upon receipt of a `Spin Finished` message, any buffered multicast messages should be applied to the customer’s copy of the book to make it current.

**Table 1. Spin Finished**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x83 | `Spin Finished` message |
| Sequence | 2 | 4 | Binary | Sequence number from the `Spin Request` message |
| Total Length = 6 bytes |  |  |  |  |

### Instrument Definition Request Message Fields

The `Instrument Definition Request` message is used by a user’s process to request transmission of this unit’s Symbol Mappings and Complex Instrument Definitions. All `Symbol Mapping` messages will be sent before `Complex Instrument Definition Expanded` and `Exchange Designated Complex Instrument Definition` messages. Refer to Spin Servers for more details regarding Sequence specification as well as buffering requirements.

**Table 1. Instrument Definition Request**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x84 | `Instrument Definition Request` message |
| Sequence | 2 | 4 | Binary | Must be 0. Only the current Symbol Mappings and Complex Instrument Definitions are available. |
| Total Length = 6 bytes |  |  |  |  |

### Instrument Definition Response Message Fields

The `Instrument Definition Response` message is sent in response to a user’s `Instrument Definition Request` message indicating whether a spin will be sent.

**Table 1. Instrument Definition Response**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | `Length` of this message including this field |
| Message Type | 1 | 1 | 0x85 | `Instrument Definition Response` message |
| Sequence | 2 | 4 | Binary | Will always be 0. |
| Instrument Count | 6 | 4 | Binary | Number of `Symbol Mapping` and `Complex Instrument Definition` (if applicable) messages which will be contained in this spin |
| Status | 10 | 1 | Alphanumeric | Accepted or reason for reject |
| Total Length = 11 bytes |  |  |  |  |
| Instrument Definition Response - Status Codes |  |  |  |  |
| ‘A’ | Accepted |  |  |  |
| ‘O’ | Out of Range (Sequence must be 0) |  |  |  |
| ‘S’ | Spin already in progress (only one spin can be running at a time) |  |  |  |

* All non-’A’ status codes should be interpreted as a reject.

### Instrument Definition Finished Message Fields

The `Instrument Definition Finished` message is sent to indicate that all `Symbol Mapping` and `Complex Instrument Definition Expanded` messages for this unit have been sent. An `Instrument Definition Finished` message is only sent if an `Instrument Definition Request` was not rejected.

**Table 1. Instrument Definition Finished**

| Field Name | Offset | Length | Type/(Value) | Description |
|---|---|---|---|---|
| Length | 0 | 1 | Binary | Length of this message including this field |
| Message Type | 1 | 1 | 0x86 | `Instrument Definition Finished` Message |
| Total Length = 2 bytes |  |  |  |  |

### Spin Server Usage Example

The following diagram shows the exchange of messages over time between a customer and Cboe’s Multicast PITCH feed and spin server. Note that while the example may seem to imply only `Complex Instrument Definition Expanded, Time` and `Add Order` messages would be sent on a spin, this is not the case. `Trading Status and Auction Update` messages may also be sent.

At time 1, the customer has no state of the book and desires to become current. The customer caches the received Multicast PITCH messages (sequences 310172 and 310173) for later use. Since the customer has no book, they cannot yet be applied.

At time 5, the customer has successfully logged into the Spin Server and has cached another message, sequence 310174.

At time 7, the customer receives a `Spin Image Available` message which indicates that the spin server is capable of giving them a spin of all open orders as of sequence 310169. The customer does not have all messages cached after 310169 (they are missing 310170 and 310171), so this spin is not useful to the customer.

At time 10, the customer receives a `Spin Image Available` message which is useful since it would be a spin of all orders up to and including sequence 310175 and the customer has all messages after 310175 cached.

At time 11, the customer sends a `Spin Request` for all messages up to and including 310175 and continues to cache Multicast PITCH messages received.

At time 14, the spin server acknowledges the spin request and indicates that five messages will be sent (complex instrument definition and open orders).

At time 24, the spin server indicates that it has finished sending all messages. The customer must then apply the cached messages from sequence number 310176 through current.

Notes:

- Spin Servers are available for each unit. Customers may need to employ multiple Spin Servers depending upon their architecture.
- As a rule of thumb, in its Options markets, Cboe typically has ~300,000 complex instruments defined and ~3.2 million open orders across all units, or an average of about 9,375 complex instruments and 100,000 open orders per unit. The actual number per unit varies depending upon activity in individual symbols. Expect this number to increase and plan accordingly.

## Message Types

### Gap Request Proxy Messages

```
    
    0x01        Login
    0x02        Login Response
    0x03        Gap Request
    0x04        Gap Response
```

### Spin Server Messages

```
    0x01        Login
    0x02        Login Response
    0x80        Spin Image Available
    0x81        Spin Request
    0x82        Spin Response
    0x83        Spin Finished
    0x84        Instrument Definition Request
    0x85        Instrument Definition Response
    0x86        Instrument Definition Finished
```

### PITCH 2.X Messages

```
                
    0xB1        Time Reference (C1 Only)
    0x20        Time
    0x97        Unit Clear
    0xBC        Transaction Begin
    0xBD        Transaction End
    0x9A        Complex Instrument Definition Expanded
    0x9F        Exchange Designated Complex Instrument Definition (C1 Only)
    0x2F        Symbol Mapping
    0x21        Add Order - Long
    0x22        Add Order - Short
    0x2F        Add Order - Expanded
    0x23        Order Executed
    0x24        Order Executed at Price/Size
    0x25        Reduce Size - Long
    0x26        Reduce Size - Short
    0x27        Modify Order - Long
    0x28        Modify Order - Short
    0x29        Delete Order
    0x2A        Trade - Long
    0x2B        Trade - Short
    0xAD        Auction Notification
    0xAE        Auction Cancel
    0xAF        Auction Trade
    0x31        Trading Status
    0xD1        Options Auction Update
    0x96        Auction Summary
    0x2D        End of Session
```

## Example Messages

Each of the following message types must be wrapped by a sequenced or unsequenced unit header as described in Sequenced Unit Header. Note that in the following examples, each byte is represented by two hexadecimal digits.

### Login Message Example

**Table 1. Login Message Example**

| Length | 16 | 22 bytes |
|---|---|---|
| Type | 01 | Login |
| SessionSubId | 30 30 30 31 | "0001" |
| Username | 46 49 52 4D | "FIRM" |
| Filler | 20 20 | " " |
| Password | 41 42 43 44 30 30 20 20 20 20 | "ABCD00" |

### Login Response Message Example

**Table 1. Login Response Message Example**

| Length | 03 | 3 bytes |
|---|---|---|
| Type | 02 | Login Response |
| Status | 41 | Login accepted |

### Gap Request Message Example

**Table 1. Gap Request Message Example**

| Length | 09 | 9 bytes |
|---|---|---|
| Type | 03 | Gap Request |
| Unit | 01 | Unit 1 |
| Sequence | 3B 10 00 00 | First message: 4155 |
| Count | 32 00 | 50 messages |

### Gap Response Message Example

**Table 1. Gap Response Message Example**

| Length | 10 | 10 bytes |
|---|---|---|
| Type | 04 | Gap Response |
| Unit | 01 | Unit 1 |
| Sequence | 3B 10 00 00 | First message: 4155 |
| Count | 32 00 | 50 messages |
| Status | 41 | Accepted |

### Spin Image Available Message Example

**Table 1. Spin Image Available Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 80 | Spin Image Available |
| Sequence | 3B 10 00 00 | Sequence: 4155 |

### Spin Request Message Example

**Table 1. Spin Request Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 81 | Spin Request |
| Sequence | 3B 10 00 00 | Sequence: 4155 |

### Spin Response Message Example

**Table 1. Spin Response Message Example**

| Length | 0B | 11 bytes |
|---|---|---|
| Type | 82 | Spin Request |
| Sequence | 3B 10 00 00 | Sequence: 4155 |
| Order Count | 42 00 00 00 | 66 orders |
| Status | 41 | Accepted |

### Spin Finished Message Example

**Table 1. Spin Finished Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 83 | Spin Finished |
| Sequence | 3B 10 00 00 | Sequence: 4155 |

### Instrument Definition Request Message Example

**Table 1. Instrument Definition Request Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 84 | Instrument Definition Request |
| Sequence | 00 00 00 00 | Sequence: 0 |

### Instrument Definition Response Message Example

| Length | 0B | 11 bytes |
|---|---|---|
| Type | 85 | Instrument Definition Response |
| Sequence | 00 00 00 00 | Sequence: 0 |
| Instrument Count | B8 0B 00 00 | 3000 Instruments |
| Status | 41 | Accepted |

### Instrument Definition Finished Message Example

**Table 1. Instrument Definition Finished Message Example**

| Length | 02 | 2 bytes |
|---|---|---|
| Type | 86 | Instrument Definition Finished |

### Time Reference Message Example (C1 Only)

**Table 1. Time Reference Message Example (C1 Only)**

| Length | 12 | 18 bytes |
|---|---|---|
| Type | B1 | Time Reference |
| Midnight | D0 8B 34 60 | 2021-02-23 00:00:00 |
| Reference |  | Eastern (1614056400 seconds since the Epoch) |
| Time | 00 E1 00 00 | 16:00:00 |
| Time Offset | 00 00 00 00 | Exactly 16:00:00 |
| Trade Date | 2F 62 34 01 | 2021-02-23 February 23, 2021 |

### Time Message Example

**Table 1. Time Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 20 | Time |
| Time | 98 85 00 00 | 34,200 seconds = 09:30 AM Eastern |

### Time Message Example

**Table 1. Time Message Example**

| Length | 10 | 0A bytes |
|---|---|---|
| Type | 20 | Time |
| Time | 98 85 00 00 | 34,200 seconds =09:30 AM Eastern |
| Epoch Time (C1 Only) | 68 11 35 60 | 1,614,090,600 seconds since the Epoch |

### Unit Clear Message Example

**Table 1. Unit Clear Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 97 | Unit Clear |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |

### Add Order - Long Message Example

**Table 1. Add Order - Long Message Example**

| Length | 22 | 34 bytes |
|---|---|---|
| Type | 21 | Add Order - Long |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side Indicator | 42 | Buy |
| Quantity | 32 00 00 00 | 50 |
| CID | 43 30 30 30 31 32 | C00012 |
| Price | 28 23 00 00 00 00 00 00 | $0.9000 |
| Reserved | 00 | Reserved |

### Add Order - Short Message Example

**Table 1. Add Order - Short Message Example**

| Length | 1A | 26 bytes |
|---|---|---|
| Type | 22 | Add Order - Short |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side Indicator | 42 | Buy |
| Quantity | 32 00 | 50 |
| CID | 43 30 30 30 31 32 | C00012 |
| Price | 0A 28 | $102.50 |
| Reserved | 00 | Reserved |

### Add Order - Expanded Message Example

**Table 1. Add Order - Expanded Message Example**

| Length | 2D | 45 bytes |
|---|---|---|
| Type | 2F | Add Order - Expanded |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side Indicator | 42 | Buy |
| Quantity | 32 00 | 50 |
| CID | 43 30 30 30 31 32 20 20 | C00012 |
| Price | 28 23 00 00 00 00 00 00 | $0.9000 |
| Reserved | 00 | Reserved |
| Participant ID | 41 42 43 44 | ABCD |
| Customer Indicator | 4E | Non-Customer |
| Client ID | 43 4C 49 44 | CLID |

### Order Executed Message Example

**Table 1. Order Executed Message Example**

| Length | 1A | 26 bytes |
|---|---|---|
| Type | 23 | Order Executed |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Executed Quantity | 64 00 00 00 | 100 |
| Execution Id | 34 2B 46 E0 BB 00 00 00 | 0AAP09VEC |

### Order Executed at Price/Size Message Example

**Table 1. Order Executed at Price/Size Message Example**

| Length | 26 | 38 bytes |
|---|---|---|
| Type | 24 | Order Executed at Price/Size |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Executed Quantity | 64 00 00 00 | 100 |
| Remaining | 32 00 00 00 | 50 |
| Execution Id | 34 2B 46 E0 BB 00 00 00 | 0AAP09VEC |
| Price | E8 A3 0F 00 00 00 00 00 | $102.50 |

### Reduce Size - Long Message Example

**Table 1. Reduce Size - Long Message Example**

| Length | 12 | 18 bytes |
|---|---|---|
| Type | 25 | Reduce Size - Long |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Canceled Quantity | 64 00 00 00 | 100 |

### Reduce Size - Short Message Example

**Table 1. Reduce Size - Short Message Example**

| Length | 10 | 16 bytes |
|---|---|---|
| Type | 26 | Reduce Size - Short |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Canceled Quantity | 64 00 | 100 |

### Modify Order - Long Message Example

**Table 1. Modify Order - Long Message Example**

| Length | 1B | 27 bytes |
|---|---|---|
| Type | 27 | Modify Order - Long |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Quantity | 4B 00 00 00 | 75 |
| Price | E8 A3 0F 00 00 00 00 00 | $102.50 |
| Reserved | 00 | Reserved |

### Modify Order - Short Message Example

**Table 1. Modify Order - Short Message Example**

| Length | 13 | 19 bytes |
|---|---|---|
| Type | 28 | Modify Order - Short |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Quantity | 4B 00 | 75 |
| Price | 0A 28 | $102.50 |
| Reserved | 00 | Reserved |

### Delete Order Message Example

**Table 1. Delete Order Message Example**

| Length | 0E | 14 bytes |
|---|---|---|
| Type | 29 | Delete Order |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B |  |

### Trade - Long Message Example

**Table 1. Trade - Long Message Example**

| Length | 29 | 41 bytes |
|---|---|---|
| Type | 2A | Trade - Long |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side | 42 | Buy |
| Quantity | 4B 00 00 00 | 75 |
| CID | 43 30 30 30 31 32 | C00012 |
| Price | E8 A3 0F 00 00 00 00 00 | $102.50 |
| Execution Id | 34 2B 46 E0 BB 00 00 00 | 0AAP09VEC |

### Trade - Short Message Example

**Table 1. Trade - Short Message Example**

| Length | 21 | 33 bytes |
|---|---|---|
| Type | 2B | Trade - Short |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side | 42 | Buy |
| Quantity | 64 00 | 100 |
| CID | 43 30 30 30 31 32 | C00012 |
| Price | 0A 28 | $102.50 |
| Execution Id | 34 2B 46 E0 BB 00 00 00 | 0AAP09VEC |

### Auction Notification Message Example

**Table 1. Auction Notification Message Example**

| Length | 2F | 47 bytes |
|---|---|---|
| Type | AD | Auction Notification |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 43 30 30 30 31 32 | C00012 |
| Auction ID | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Auction Type | 4F | O = COA AON |
| Side | 42 | B = Buy Side |
| Price | 00 00 00 00 00 00 00 00 | Price not displayed |
| Quantity | 64 00 00 00 | 100 |
| Customer Indicator | 43 | C = Customer |
| Participant ID | 45 46 49 44 | EFID |
| Auct. End Offset | 38 73 0E 00 | 947,000 ns since last Time Message |
| Client ID | 43 4C 49 44 | CLID |

### Auction Cancel Message Example

**Table 1. Auction Cancel Message Example**

| Length | E | 14 bytes |
|---|---|---|
| Type | AE | Auction Cancel |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Auction ID | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |

### Auction Trade Message Example

**Table 1. Auction Trade Message Example**

| Length | 22 | 34 bytes |
|---|---|---|
| Type | AF | Auction Trade |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Auction ID | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Execution Id | 34 2B 46 E0 BB 00 00 00 | 0AAP09VEC |
| Price | E8 A3 0F 00 00 00 00 00 | $102.50 |
| Quantity | 64 00 00 00 | 100 |

### End of Session Message Example

**Table 1. End of Session Message Example**

| Length | 06 | 6 bytes |
|---|---|---|
| Type | 2D | End of Session |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |

### Trading Status Message Example

**Table 1. Trading Status Message Example**

| Length | 12 | 18 bytes |
|---|---|---|
| Type | 31 | Trading Status |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 39 39 38 38 37 37 | 998877 |
| Reserved | 20 20 | Reserved |
| Trading Status | 54 | T = Trading |
| Reserved | 20 | Reserved |
| Global Trading | 48 | H = Halted |
| Hours Status | Reserved | 20 |
| Reserved | 20 | Reserved |

### Sequenced Unit Header with 2 Messages Example

**Table 1. Sequenced Unit Header**

| Hdr Length | 31 00 | 49 bytes, including header |
|---|---|---|
| Hdr Count | 02 | 2 messages to follow |
| Hdr Unit | 01 | Unit 1 |
| Hdr Sequence | 01 00 00 00 | First message has sequence number 1 |

**Table 2. Message 1: Add Order (Short)**

| Length | 1A | 26 bytes |
|---|---|---|
| Message format | 22 | Add Order - Short |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Side Indicator | 42 | Buy |
| Quantity | E1 02 | 737 |
| CID | 43 30 30 30 31 32 | C00012 |
| Price | 01 00 | 0.01 |
| Reserved | 00 | Reserved |

**Table 3. Message 2: Reduce Size (Short)**

| Length | 10 | 16 bytes |
|---|---|---|
| Message format | 26 | Reduce Size - Short |
| Time Offset | E8 D9 06 00 | 449,000 ns since last Time Message |
| Order Id | 05 40 5B 77 8F 56 1D 0B | 631WC4000005 |
| Canceled Quantity | E1 02 | 737 |

### Options Auction Update Message Example

**Table 1. Options Auction Update Message Example**

| Length | 40 | 64 bytes |
|---|---|---|
| Type | D1 | Options Auction Update |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 43 30 30 30 31 32 20 20 | C00012 |
| Auction Type | 4F | RTH Opening |
| Reference Price | 00 00 00 00 00 00 00 00 | always zero |
| Buy Contracts | 64 00 00 00 | 100 Contracts |
| Sell Contracts | C8 00 00 00 | 200 Contracts |
| Indicative Price | E8 A3 0F 00 00 00 00 00 | $102.50 |
| Auction Only Price | 00 00 00 00 00 00 00 00 | always zero |
| Opening Condition | 00 | always zero |
| Composite Market Bid Price | 00 00 00 00 00 00 00 00 | always zero |
| Composite Market Offer Price | 00 00 00 00 00 00 00 00 | always zero |

### Auction Summary Message Example

**Table 1. Auction Summary Message Example**

| Length | 1B | 27 bytes |
|---|---|---|
| Type | 96 | Auction Summary |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 43 30 30 30 31 32 20 20 | C00012 |
| Auction Type | 4F | RTH Opening |
| Price | E8 A3 0F 00 00 00 00 00 | $102.50 |
| Quantity | 4B 00 00 00 | 75 |

### Complex Instrument Definition Expanded Message Example

**Table 1. Complex Instrument Definition Expanded Message Example**

| Length | 33 | 51 bytes |
|---|---|---|
| Type | 9A | Complex Instrument Definition Expanded |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 43 30 30 30 31 32 | C00012 |
| Complex Instrument | 5A 56 5A 5A 54 20 20 20 | ZVZZT |
| Underlying Complex Instrument | 4F 00 00 00 | O = All Legs are Options |
| Type | Leg Count | 02 |
| Leg Symbol | 30 30 30 30 30 31 20 20 | 000001 |
| Leg Ratio | FF FF FF FF | -1 = Sell 1 |
| Leg Security Type | 4F | Option Leg |
| Leg Symbol | 30 30 30 30 30 32 20 20 | 000002 |
| Leg Ratio | 01 00 00 00 | 1 = Buy 1 |
| Leg Security Type | 4F | Option Leg |

### Exchange Designated Complex Instrument Definition Message Example (C1 Only)

**Table 1. Exchange Designated Complex Instrument Definition Message Example (C1 Only)**

| Length | 51 | 81 bytes |
|---|---|---|
| Type | 9F | Exchange Designated Complex Instrument Definition |
| Time Offset | 18 D2 06 00 | 447,000 ns since last Time Message |
| CID | 44 44 43 49 30 31 | EDCI01 |
| Complex Instrument Underlying | 5A 56 5A 5A 54 20 20 20 | ZVZZT |
| EDCI Type | 51 53 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | QSB |
| EDCI Subtype | 4A 45 4C 4C 59 5F 52 4F 4C 4C 20 20 20 20 20 20 20 20 20 20 | JELLY_ROLL |
| Reserved | 00 00 | Reserved |
| Leg Count | 02 | 2 Legs |
| Leg Symbol | 30 30 30 30 30 31 | 000001 |
| Leg Ratio | FF FF FF FF | -1 = Sell 1 |
| Leg Symbol | 30 30 30 30 30 32 | 000002 |
| Leg Ratio | 01 00 00 00 | 1 = Buy 1 |

### Symbol Mapping Message Example

**Table 1. Symbol Mapping Message Example**

| Length | 26 | 38 bytes |
|---|---|---|
| Type | 2E | Symbol Mapping Message |
| Feed Symbol | 30 30 6D 45 56 4F | 00mEVO |
| OSI Symbol | 4D 53 46 54 20 20 31 39 30 39 32 30 43 30 30 31 35 30 30 30 30 | MSFT 190920C00150000 |
| Symbol | 43 | ‘C’ - Closing OnlyCondition |
| Underlying | 4D 53 46 54 20 20 20 20 | MSFT |

## Multicast Configuration

### Production Environment Configuration

#### Limitations/Configurations

The following table defines Cboe current configuration for network and gap request limitations. These limitations are session based. Cboe reserves the right to adjust the gap request limitations to improve the effectiveness of the gap request infrastructure.

**Table 1. Limitations/Configurations**

| Period/Type | Limit/Setting | Notes |
|---|---|---|
| MTU | 1500 | Cboe will send UDP messages up to 1500 bytes. Customers should ensure that their infrastructure is configured accordingly. |
| Gig-Shaped Throttle | 1 Gb/s | The real-time and gap multicast head ends are configured to shape their output to this level to minimize packet loss. |
| Gap Response Delay | 2 ms | The Gap Server will delay resending sequenced messages via multicast for the specified limit in order to satisfy multiple GRP gap requests with one multicast response. |
| Count | 100 | Any single gap request may not be for more than this number of dropped messages. |
| 1 Second | 320 Requests | This is the maximum number of retransmission requests allowed per second for each session. This is renewed every clock second. |
| 1 Minute | 1500 Requests | This is the maximum number of retransmission requests allowed per minute for each session. This is renewed every clock minute. |
| Day | 100,000 Requests | This is the maximum number of retransmission requests allowed per day for each session. |
| Within Range | 1,000,000 Messages | Users’ retransmission requests must be within this many messages of the most recent sequence sent by the real-time feed. |

#### U.S. Options Unit/Product Distribution

| Unit | BZX/C1/C2/EDGX Symbol Range | Exceptions |
|---|---|---|
| 1 | A - AIPA~ |  |
| 2 | AIPB - AO~ |  |
| 3 | AP - AVGO~ |  |
| 4 | AVGP - BOIL~ |  |
| 5 | BOIM - CMPR~ | Excludes CBTX, CBTXW |
| 6 | CMPS - CSIQ~ |  |
| 7 | CSIR - DJTA~ |  |
| 8 | DJTB - FARO~ | Excludes DJX, DJXW |
| 9 | FARP - GLC~ |  |
| 10 | GLD - HAYW~ |  |
| 11 | HAYX - IYWA~ | Excludes IWM |
| 12 | IYWB - LMTA~ |  |
| 13 | LMTB - MES~ | Excludes MBTX, MBTXW |
| 14 | MET - MRM~ | Excludes MGTN, MGTNW |
| 15 | MRN - MSTR~ | Excludes MRUT |
| 16 | MSTS - NKEA~ | Excludes NANOS |
| 17 | NKEB - PDC~ | Excludes NVDA, OEX |
| 18 | PDD - RDDS~ | Excludes QQQ |
| 19 | RDDT - SEAA~ | Excludes RLG, RLV, RUI, RUT/RUTW |
| 20 | SEAB - SMHA~ | Excludes SIXB, SIXC, SIXE, SIXI, SIXR, SIXRE, SIXT, SIXU, SIXV, SIXY |
| 21 | SMHB - TEQ~ | Excludes SPEQX, SPESG, SPX/SPXW, SPY |
| 22 | TER - TTC~ | Excludes TSLA |
| 23 | TTD - VB~ | Excludes UKXM |
| 24 | VC - WYNN~ | Excludes VIX, VIXW |
| 25 | WYNO - Z~ | Excludes XEO, XSP, XSPBW |
| 26 | NVDA |  |
| 27 | TSLA |  |
| 28 | QQQ |  |
| 29 | IWM |  |
| 30 | SPY |  |

**Table 1. Units 31-35**

| Unit | BZX/C2 Symbol Range | C1 Symbol Range |
|---|---|---|
| 31 | DJX (C2 Only), DJXW (C2 Only), RUT (BZX and C2 Only), RUTW (C2 Only) | CBTX, CBTXW, DJX, DJXW, MBTX, MBTXW, MGTN, MGTNW, MRUT, OEX, RLG, RLV, RUI, RUT, RUTW, SIXB, SIXC, SIXE, SIXI, SIXR, SIXRE, SIXT, SIXU, SIXV, SIXY, SPEQX, SPESG, UKXM, XEO |
| 32 | N/A | NANOS, VIX, VIXW, XSP, XSPBW |
| 33 | N/A | SPX |
| 34 | N/A | SPXW |
| 35 | N/A | SPX/SPXW, Cross Product Spreads |

Note - Cboe reserves the right to add units and/or change symbol distribution with 48 hours of notice and no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### BZX Options Multicast Routing Parameters

**Table 1. BZX Options Multicast Routing Parameters - Production**

| Data Center | Rendezvous Point |
|---|---|
| Primary Data Center A feed | 74.115.128.33 |
| Primary Data Center B feed | 74.115.128.36 |
| Secondary Data Center E feed | 174.136.181.245 |

#### C1 Options Multicast Routing Parameters

**Table 1. C1 Options Multicast Routing Parameters - Production**

| Data Center | Rendezvous Point |
|---|---|
| Primary Data Center A feed | 74.115.128.183 |
| Primary Data Center B feed | 74.115.128.184 |
| Secondary Data Center E feed | 174.136.181.249 |

#### C2 Options Multicast Routing Parameters

**Table 1. C2 Options Multicast Routing Parameters - Production**

| Data Center | Rendezvous Point |
|---|---|
| Primary Data Center A feed | 74.115.128.176 |
| Primary Data Center B feed | 74.115.128.177 |
| Secondary Data Center E feed | 170.137.16.134 |

#### EDGX Options Multicast Routing Parameters

**Table 1. EDGX Options Multicast Routing Parameters - Production**

| Data Center | Rendezvous Point |
|---|---|
| Primary Data Center A feed | 74.115.128.162 |
| Primary Data Center B feed | 74.115.128.163 |
| Secondary Data Center E feed | 174.136.181.240 |

#### BZX Options Address/Unit Distribution

The following tables describe the unit distribution across the BZX Complex Multicast PITCH feeds.

**Table 1. BZX Options Data Center - Primary**

| Primary Datacenter | Gig-Shaped [OAC] 174.136.164.192/28 | Gig-Shaped [OBC] 174.136.164.208/28 |  |  |  |
|---|---|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC | Real-time MC | Gap Resp. MC |
| 1 | 30801 | 224.0.73.232 | 224.0.73.234 | 233.65.120.24 | 233.65.120.26 |
| 2 | 30802 |  |  |  |  |
| 3 | 30803 |  |  |  |  |
| 4 | 30804 |  |  |  |  |
| 5 | 30805 |  |  |  |  |
| 6 | 30806 |  |  |  |  |
| 7 | 30807 |  |  |  |  |
| 8 | 30808 |  |  |  |  |
| 9 | 30809 |  |  |  |  |
| 10 | 30810 |  |  |  |  |
| 11 | 30811 |  |  |  |  |
| 12 | 30812 |  |  |  |  |
| 13 | 30813 |  |  |  |  |
| 14 | 30814 |  |  |  |  |
| 15 | 30815 |  |  |  |  |
| 16 | 30816 |  |  |  |  |
| 17 | 30817 | 224.0.73.233 | 224.0.73.235 | 233.65.120.25 | 233.65.120.27 |
| 18 | 30818 |  |  |  |  |
| 19 | 30819 |  |  |  |  |
| 20 | 30820 |  |  |  |  |
| 21 | 30821 |  |  |  |  |
| 22 | 30822 |  |  |  |  |
| 23 | 30823 |  |  |  |  |
| 24 | 30824 |  |  |  |  |
| 25 | 30825 |  |  |  |  |
| 26 | 30826 |  |  |  |  |
| 27 | 30827 |  |  |  |  |
| 28 | 30828 |  |  |  |  |
| 29 | 30829 |  |  |  |  |
| 30 | 30830 |  |  |  |  |
| 31 | 30831 |  |  |  |  |
| 32 | 30832 |  |  |  |  |
| 33 | 30833 |  |  |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration. Addresses in the gray area are pre-assigned but not available. Customers should not configure their networks or systems for these addresses.

**Table 2. BZX Options Datacenter - Secondary**

| Secondary Datacenter | Gig-Shaped [OEC] 174.136.181.128/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Response MC |
| 1 | 31301 | 234.170.137.24 | 234.170.137.26 |
| 2 | 31302 |  |  |
| 3 | 31303 |  |  |
| 4 | 31304 |  |  |
| 5 | 31305 |  |  |
| 6 | 31306 |  |  |
| 7 | 31307 |  |  |
| 8 | 31308 |  |  |
| 9 | 31309 |  |  |
| 10 | 31310 |  |  |
| 11 | 31311 |  |  |
| 12 | 31312 |  |  |
| 13 | 31313 |  |  |
| 14 | 31314 |  |  |
| 15 | 31315 |  |  |
| 16 | 31316 |  |  |
| 17 | 31317 | 234.170.137.25 | 234.170.137.27 |
| 18 | 31318 |  |  |
| 19 | 31319 |  |  |
| 20 | 31320 |  |  |
| 21 | 31321 |  |  |
| 22 | 31322 |  |  |
| 23 | 31323 |  |  |
| 24 | 31324 |  |  |
| 25 | 31325 |  |  |
| 26 | 31326 |  |  |
| 27 | 31327 |  |  |
| 28 | 31328 |  |  |
| 29 | 31329 |  |  |
| 30 | 31330 |  |  |
| 31 | 31331 |  |  |
| 32 | 31332 |  |  |
| 33 | 31333 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### C1 Options Address/Unit Distribution

The following tables describe the unit distribution across the C1 Complex Multicast PITCH feeds.

**Table 1. C1 Options Primary Data Center - Production**

| Primary Datacenter | Gig-Shaped [CAC] 170.137.114.80/28 | Gig-Shaped [CBC] 170.137.115.80/28 |  |  |  |
|---|---|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC | Real-time MC | Gap Resp. MC |
| 1 | 30351 | 224.0.74.80 | 224.0.74.82 | 233.182.199.208 | 233.182.199.210 |
| 2 | 30352 |  |  |  |  |
| 3 | 30353 |  |  |  |  |
| 4 | 30354 |  |  |  |  |
| 5 | 30355 |  |  |  |  |
| 6 | 30356 |  |  |  |  |
| 7 | 30357 |  |  |  |  |
| 8 | 30358 |  |  |  |  |
| 9 | 30359 |  |  |  |  |
| 10 | 30360 |  |  |  |  |
| 11 | 30361 |  |  |  |  |
| 12 | 30362 |  |  |  |  |
| 13 | 30363 |  |  |  |  |
| 14 | 30364 |  |  |  |  |
| 15 | 30365 |  |  |  |  |
| 16 | 30366 |  |  |  |  |
| 17 | 30367 | 224.0.74.81 | 224.0.74.83 | 233.182.199.209 | 233.182.199.211 |
| 18 | 30368 |  |  |  |  |
| 19 | 30369 |  |  |  |  |
| 20 | 30370 |  |  |  |  |
| 21 | 30371 |  |  |  |  |
| 22 | 30372 |  |  |  |  |
| 23 | 30373 |  |  |  |  |
| 24 | 30374 |  |  |  |  |
| 25 | 30375 |  |  |  |  |
| 26 | 30376 |  |  |  |  |
| 27 | 30377 |  |  |  |  |
| 28 | 30378 |  |  |  |  |
| 29 | 30379 |  |  |  |  |
| 30 | 30380 |  |  |  |  |
| 31 | 30381 |  |  |  |  |
| 32 | 30382 |  |  |  |  |
| 33 | 30383 |  |  |  |  |
| 34 | 30384 |  |  |  |  |
| 35 | 30385 |  |  |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration. Addresses in the gray area are pre-assigned but not available. Customers should not configure their networks or systems for these addresses.

**Table 2. C1 Options Secondary Datacenter - Production**

| Secondary Datacenter | Gig-Shaped [CEC] 170.137.124.224/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Response MC |
| 1 | 31351 | 233.19.3.240 | 233.19.3.242 |
| 2 | 31352 |  |  |
| 3 | 31353 |  |  |
| 4 | 31354 |  |  |
| 5 | 31355 |  |  |
| 6 | 31356 |  |  |
| 7 | 31357 |  |  |
| 8 | 31358 |  |  |
| 9 | 31359 |  |  |
| 10 | 31360 |  |  |
| 11 | 31361 |  |  |
| 12 | 31362 |  |  |
| 13 | 31363 |  |  |
| 14 | 31364 |  |  |
| 15 | 31365 |  |  |
| 16 | 31366 |  |  |
| 17 | 31367 | 233.19.3.241 | 233.19.3.243 |
| 18 | 31368 |  |  |
| 19 | 31369 |  |  |
| 20 | 31370 |  |  |
| 21 | 31371 |  |  |
| 22 | 31372 |  |  |
| 23 | 31373 |  |  |
| 24 | 31374 |  |  |
| 25 | 31375 |  |  |
| 26 | 31376 |  |  |
| 27 | 31377 |  |  |
| 28 | 31378 |  |  |
| 29 | 31379 |  |  |
| 30 | 31380 |  |  |
| 31 | 31381 |  |  |
| 32 | 31382 |  |  |
| 33 | 31383 |  |  |
| 34 | 31384 |  |  |
| 35 | 31385 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### C2 Options Address/Unit Distribution

The following tables describe the unit distribution across the C2 Complex Multicast PITCH feeds.

**Table 1. C2 Options Data Center - Primary**

| Primary Datacenter | Gig-Shaped [WAC] 174.136.164.64/28 | Gig-Shaped [WBC] 174.136.164.80/28 |  |  |  |
|---|---|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC | Real-time MC | Gap Resp. MC |
| 1 | 30301 | 224.0.131.248 | 224.0.131.250 | 233.130.124.248 | 233.130.124.250 |
| 2 | 30302 |  |  |  |  |
| 3 | 30303 |  |  |  |  |
| 4 | 30304 |  |  |  |  |
| 5 | 30305 |  |  |  |  |
| 6 | 30306 |  |  |  |  |
| 7 | 30307 |  |  |  |  |
| 8 | 30308 |  |  |  |  |
| 9 | 30309 |  |  |  |  |
| 10 | 30310 |  |  |  |  |
| 11 | 30311 |  |  |  |  |
| 12 | 30312 |  |  |  |  |
| 13 | 30313 |  |  |  |  |
| 14 | 30314 |  |  |  |  |
| 15 | 30315 |  |  |  |  |
| 16 | 30316 |  |  |  |  |
| 17 | 30317 | 224.0.131.249 | 224.0.131.251 | 233.130.124.249 | 233.130.124.251 |
| 18 | 30318 |  |  |  |  |
| 19 | 30319 |  |  |  |  |
| 20 | 30320 |  |  |  |  |
| 21 | 30321 |  |  |  |  |
| 22 | 30322 |  |  |  |  |
| 23 | 30323 |  |  |  |  |
| 24 | 30324 |  |  |  |  |
| 25 | 30325 |  |  |  |  |
| 26 | 30326 |  |  |  |  |
| 27 | 30327 |  |  |  |  |
| 28 | 30328 |  |  |  |  |
| 29 | 30329 |  |  |  |  |
| 30 | 30330 |  |  |  |  |
| 31 | 30331 |  |  |  |  |
| 32 | 30332 |  |  |  |  |
| 33 | 30333 |  |  |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration. Addresses in the gray area are pre-assigned but not available. Customers should not configure their networks or systems for these addresses.

**Table 2. C2 Options Datacenter - Secondary**

| Secondary Datacenter | Gig-Shaped [WEC] 170.137.17.96/29 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Response MC |
| 1 | 31301 | 233.182.199.104 | 233.182.199.106 |
| 2 | 31302 |  |  |
| 3 | 31303 |  |  |
| 4 | 31304 |  |  |
| 5 | 31305 |  |  |
| 6 | 31306 |  |  |
| 7 | 31307 |  |  |
| 8 | 31308 |  |  |
| 9 | 31309 |  |  |
| 10 | 31310 |  |  |
| 11 | 31311 |  |  |
| 12 | 31312 |  |  |
| 13 | 31313 |  |  |
| 14 | 31314 |  |  |
| 15 | 31315 |  |  |
| 16 | 31316 |  |  |
| 17 | 31317 | 233.182.199.105 | 233.182.199.107 |
| 18 | 31318 |  |  |
| 19 | 31319 |  |  |
| 20 | 31320 |  |  |
| 21 | 31321 |  |  |
| 22 | 31322 |  |  |
| 23 | 31323 |  |  |
| 24 | 31324 |  |  |
| 25 | 31325 |  |  |
| 26 | 31326 |  |  |
| 27 | 31327 |  |  |
| 28 | 31328 |  |  |
| 29 | 31329 |  |  |
| 30 | 31330 |  |  |
| 31 | 31331 |  |  |
| 32 | 31332 |  |  |
| 33 | 31333 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### EDGX Options Address/Unit Distribution

The following tables describe the unit distribution across the EDGX Complex Multicast PITCH feeds.

**Table 1. EDGX Options Datacenter - Primary**

| Primary Datacenter | Gig-Shaped [EAC] 174.136.164.32/28 | Gig-Shaped [EBC] 174.136.164.48/28 |  |  |  |
|---|---|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC | Real-time MC | Gap Resp. MC |
| 1 | 30551 | 224.0.131.152 | 224.0.131.154 | 233.130.124.152 | 233.130.124.154 |
| 2 | 30552 |  |  |  |  |
| 3 | 30553 |  |  |  |  |
| 4 | 30554 |  |  |  |  |
| 5 | 30555 |  |  |  |  |
| 6 | 30556 |  |  |  |  |
| 7 | 30557 |  |  |  |  |
| 8 | 30558 |  |  |  |  |
| 9 | 30559 |  |  |  |  |
| 10 | 30560 |  |  |  |  |
| 11 | 30561 |  |  |  |  |
| 12 | 30562 |  |  |  |  |
| 13 | 30563 |  |  |  |  |
| 14 | 30564 |  |  |  |  |
| 15 | 30565 |  |  |  |  |
| 16 | 30566 |  |  |  |  |
| 17 | 30567 | 224.0.131.153 | 224.0.131.155 | 233.130.124.153 | 233.130.124.155 |
| 18 | 30568 |  |  |  |  |
| 19 | 30569 |  |  |  |  |
| 20 | 30570 |  |  |  |  |
| 21 | 30571 |  |  |  |  |
| 22 | 30572 |  |  |  |  |
| 23 | 30573 |  |  |  |  |
| 24 | 30574 |  |  |  |  |
| 25 | 30575 |  |  |  |  |
| 26 | 30576 |  |  |  |  |
| 27 | 30577 |  |  |  |  |
| 28 | 30578 |  |  |  |  |
| 29 | 30579 |  |  |  |  |
| 30 | 30580 |  |  |  |  |
| 31 | 30581 |  |  |  |  |
| 32 | 30582 |  |  |  |  |
| 33 | 30583 |  |  |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration. Addresses in the gray area are pre-assigned but not available. Customers should not configure their networks or systems for these addresses.

**Table 2. EDGX Options Datacenter - Secondary**

| Secondary Datacenter | Gig-Shaped [EEC] 174.136.176.144/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Response MC |
| 1 | 31951 | 233.19.3.136 | 233.19.3.138 |
| 2 | 31952 |  |  |
| 3 | 31953 |  |  |
| 4 | 31954 |  |  |
| 5 | 31955 |  |  |
| 6 | 31956 |  |  |
| 7 | 31957 |  |  |
| 8 | 31958 |  |  |
| 9 | 31959 |  |  |
| 10 | 31960 |  |  |
| 11 | 31961 |  |  |
| 12 | 31962 |  |  |
| 13 | 31963 |  |  |
| 14 | 31964 |  |  |
| 15 | 31965 |  |  |
| 16 | 31966 |  |  |
| 17 | 31967 | 233.19.3.137 | 233.19.3.139 |
| 18 | 31968 |  |  |
| 19 | 31969 |  |  |
| 20 | 31970 |  |  |
| 21 | 31971 |  |  |
| 22 | 31972 |  |  |
| 23 | 31973 |  |  |
| 24 | 31974 |  |  |
| 25 | 31975 |  |  |
| 26 | 31976 |  |  |
| 27 | 31977 |  |  |
| 28 | 31978 |  |  |
| 29 | 31979 |  |  |
| 30 | 31980 |  |  |
| 31 | 31981 |  |  |
| 32 | 31982 |  |  |
| 33 | 31983 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

### Certification Environment Configuration

#### U.S. Options Unit/Product Distribution

| Unit | BZX/C1/C2/EDGX Symbol Range | Exceptions |
|---|---|---|
| 1 | A - AIPA~ |  |
| 2 | AIPB - AO~ |  |
| 3 | AP - AVGO~ |  |
| 4 | AVGP - BOIL~ |  |
| 5 | BOIM - CMPR~ | Excludes CBTX, CBTXW |
| 6 | CMPS - CSIQ~ |  |
| 7 | CSIR - DJTA~ |  |
| 8 | DJTB - FARO~ | Excludes DJX, DJXW |
| 9 | FARP - GLC~ |  |
| 10 | GLD - HAYW~ |  |
| 11 | HAYX - IYWA~ | Excludes IWM |
| 12 | IYWB - LMTA~ |  |
| 13 | LMTB - MES~ | Excludes MBTX, MBTXW |
| 14 | MET - MRM~ | Excludes MGTN, MGTNW |
| 15 | MRN - MSTR~ | Excludes MRUT |
| 16 | MSTS - NKEA~ | Excludes NANOS |
| 17 | NKEB - PDC~ | Excludes NVDA, OEX |
| 18 | PDD - RDDS~ | Excludes QQQ |
| 19 | RDDT - SEAA~ | Excludes RLG, RLV, RUI, RUT/RUTW |
| 20 | SEAB - SMHA~ | Excludes SIXB, SIXC, SIXE, SIXI, SIXR, SIXRE, SIXT, SIXU, SIXV, SIXY |
| 21 | SMHB - TEQ~ | Excludes SPEQX, SPESG, SPX/SPXW, SPY |
| 22 | TER - TTC~ | Excludes TSLA |
| 23 | TTD - VB~ | Excludes UKXM |
| 24 | VC - WYNN~ | Excludes VIX, VIXW |
| 25 | WYNO - Z~ | Excludes XEO, XSP, XSPBW |
| 26 | NVDA |  |
| 27 | TSLA |  |
| 28 | QQQ |  |
| 29 | IWM |  |
| 30 | SPY |  |

**Table 1. Units 31-35**

| Unit | BZX/C2 Symbol Range | C1 Symbol Range |
|---|---|---|
| 31 | DJX (C2 Only), DJXW (C2 Only), RUT (BZX and C2 Only), RUTW (C2 Only) | CBTX, CBTXW, DJX, DJXW, MBTX, MBTXW, MGTN, MGTNW, MRUT, OEX, RLG, RLV, RUI, RUT, RUTW, SIXB, SIXC, SIXE, SIXI, SIXR, SIXRE, SIXT, SIXU, SIXV, SIXY, SPEQX, SPESG, UKXM, XEO |
| 32 | N/A | NANOS, VIX, VIXW, XSP, XSPBW |
| 33 | N/A | SPX |
| 34 | N/A | SPXW |
| 35 | N/A | SPX/SPXW, Cross Product Spreads |

Note - Cboe reserves the right to add units and/or change symbol distribution with 48 hours of notice and no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### Multicast Routing Parameters

| Primary Certification Data Center | Rendezvous Point |
|---|---|
| C1 | 74.115.128.131 |
| C2, EDGX, and BZX | 74.115.128.129 |

#### BZX Options Address/Unit Distribution

The following tables describe the unit distribution across certification BZX Options Complex Multicast PITCH feeds out of the Primary datacenter.

| Primary Datacenter | Certification 174.136.164.224/28 |  |  |  |  |
|---|---|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC | Real-time MC | Gap Resp. MC |
| 1 | 32551 | 224.0.62.232 | 224.0.62.234 |  |  |
| 2 | 32552 |  |  |  |  |
| 3 | 32553 |  |  |  |  |
| 4 | 32554 |  |  |  |  |
| 5 | 32555 |  |  |  |  |
| 6 | 32556 |  |  |  |  |
| 7 | 32557 |  |  |  |  |
| 8 | 32558 |  |  |  |  |
| 9 | 32559 |  |  |  |  |
| 10 | 32560 |  |  |  |  |
| 11 | 32561 |  |  |  |  |
| 12 | 32562 |  |  |  |  |
| 13 | 32563 |  |  |  |  |
| 14 | 32564 |  |  |  |  |
| 15 | 32565 |  |  |  |  |
| 16 | 32566 |  |  |  |  |
| 17 | 32567 | 224.0.62.233 | 224.0.62.235 |  |  |
| 18 | 32568 |  |  |  |  |
| 19 | 32569 |  |  |  |  |
| 20 | 32570 |  |  |  |  |
| 21 | 32571 |  |  |  |  |
| 22 | 32572 |  |  |  |  |
| 23 | 32573 |  |  |  |  |
| 24 | 32574 |  |  |  |  |
| 25 | 32575 |  |  |  |  |
| 26 | 32576 |  |  |  |  |
| 27 | 32577 |  |  |  |  |
| 28 | 32578 |  |  |  |  |
| 29 | 32579 |  |  |  |  |
| 30 | 32580 |  |  |  |  |
| 31 | 32581 |  |  |  |  |
| 32 | 32582 |  |  |  |  |
| 33 | 32583 |  |  |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### C1 Options Address/Unit Distribution

The following table describes the unit distribution across certification C1 Complex Multicast PITCH feeds out of the Primary datacenter.

**Table 1. C1 Options Address/Unit Distribution - Certification**

| Primary Datacenter | Certification 170.137.126.16/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC |
| 1 | 32351 | 233.103.126.8 | 233.103.126.10 |
| 2 | 32352 |  |  |
| 3 | 32353 |  |  |
| 4 | 32354 |  |  |
| 5 | 32355 |  |  |
| 6 | 32356 |  |  |
| 7 | 32357 |  |  |
| 8 | 32358 |  |  |
| 9 | 32359 |  |  |
| 10 | 32360 |  |  |
| 11 | 32361 |  |  |
| 12 | 32362 |  |  |
| 13 | 32363 |  |  |
| 14 | 32364 |  |  |
| 15 | 32365 |  |  |
| 16 | 32366 |  |  |
| 17 | 32367 | 233.103.126.9 | 233.103.126.11 |
| 18 | 32368 |  |  |
| 19 | 32369 |  |  |
| 20 | 32370 |  |  |
| 21 | 32371 |  |  |
| 22 | 32372 |  |  |
| 23 | 32373 |  |  |
| 24 | 32374 |  |  |
| 25 | 32375 |  |  |
| 26 | 32376 |  |  |
| 27 | 32377 |  |  |
| 28 | 32378 |  |  |
| 29 | 32379 |  |  |
| 30 | 32380 |  |  |
| 31 | 32381 |  |  |
| 32 | 32382 |  |  |
| 33 | 32383 |  |  |
| 34 | 32384 |  |  |
| 35 | 32385 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### C2 Options Address/Unit Distribution

The following table describes the unit distribution across certification C2 Complex Multicast PITCH feeds out of the Primary datacenter.

**Table 1. C2 Options Address/Unit Distribution - Certification**

| Primary Datacenter | Certification 174.136.160.80/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC |
| 1 | 32251 | 224.0.74.160 | 224.0.74.162 |
| 2 | 32252 |  |  |
| 3 | 32253 |  |  |
| 4 | 32254 |  |  |
| 5 | 32255 |  |  |
| 6 | 32256 |  |  |
| 7 | 32257 |  |  |
| 8 | 32258 |  |  |
| 9 | 32259 |  |  |
| 10 | 32260 |  |  |
| 11 | 32261 |  |  |
| 12 | 32262 |  |  |
| 13 | 32263 |  |  |
| 14 | 32264 |  |  |
| 15 | 32265 |  |  |
| 16 | 32266 |  |  |
| 17 | 32267 | 224.0.74.161 | 224.0.74.163 |
| 18 | 32268 |  |  |
| 19 | 32269 |  |  |
| 20 | 32270 |  |  |
| 21 | 32271 |  |  |
| 22 | 32272 |  |  |
| 23 | 32273 |  |  |
| 24 | 32274 |  |  |
| 25 | 32275 |  |  |
| 26 | 32276 |  |  |
| 27 | 32277 |  |  |
| 28 | 32278 |  |  |
| 29 | 32279 |  |  |
| 30 | 32280 |  |  |
| 31 | 32281 |  |  |
| 32 | 32282 |  |  |
| 33 | 32283 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

#### EDGX Options Address/Unit Distribution

The following table describes the unit distribution across certification EDGX Complex Multicast PITCH feeds out of the Primary datacenter.

**Table 1. EDGX Options Address/Unit Distribution - Certification**

| Primary Datacenter | Certification 174.136.174.176/28 |  |  |
|---|---|---|---|
| Unit | IP Port | Real-time MC | Gap Resp. MC |
| 1 | 32551 | 224.0.74.184 | 224.0.74.186 |
| 2 | 32552 |  |  |
| 3 | 32553 |  |  |
| 4 | 32554 |  |  |
| 5 | 32555 |  |  |
| 6 | 32556 |  |  |
| 7 | 32557 |  |  |
| 8 | 32558 |  |  |
| 9 | 32559 |  |  |
| 10 | 32560 |  |  |
| 11 | 32561 |  |  |
| 12 | 32562 |  |  |
| 13 | 32563 |  |  |
| 14 | 32564 |  |  |
| 15 | 32565 |  |  |
| 16 | 32566 |  |  |
| 17 | 32567 | 224.0.74.185 | 224.0.74.187 |
| 18 | 32568 |  |  |
| 19 | 32569 |  |  |
| 20 | 32570 |  |  |
| 21 | 32571 |  |  |
| 22 | 32572 |  |  |
| 23 | 32573 |  |  |
| 24 | 32574 |  |  |
| 25 | 32575 |  |  |
| 26 | 32576 |  |  |
| 27 | 32577 |  |  |
| 28 | 32578 |  |  |
| 29 | 32579 |  |  |
| 30 | 32580 |  |  |
| 31 | 32581 |  |  |
| 32 | 32582 |  |  |
| 33 | 32583 |  |  |

Note - Cboe reserves the right to add multicast addresses with prior notice, but no migration period. Notice will be given that the distribution will change on a certain date. Care should be taken to support mappings in these tables via software configuration.

## Options Trade Condition Codes

The following table defines valid values for the Trade Condition field.

**Table 1. Options Trade Condition Codes**

| Type | Field Value |
|---|---|
| f | Complex to Complex Electronic Trade. Cboe auction type is COA |
| g | Complex Auction Trade. Cboe order types include C-AIM, C-SAM |
| h | Complex Cross. Cboe auction types include Cust to Cust C-AIM, C-QCC |
| j | Complex Electronic Trade Against Single Leg(s) |
| k | Complex with Stock Options Auction Trade. Cboe auction types include C-AIM w/ Stock, C-SAM w/ Stock |
| m | Complex Floor Trade Against Single Leg(s). All complex floor executions are reported as condition 'm'. |
| n | Complex with Stock Electronic Trade. Includes COA auctions done electronically |
| o | Complex with Stock Cross. Cboe auction types include C-QCC w/ Stock |
| p | Complex with Stock Floor Trade |
| t | Complex Floor Trade of Proprietary Products Marked as "Combo Order" |
| v | Extended Hours Trade. Transaction represents a trade executed during the Curb session. |
| I | Electronic Trade |
| O* | Opening Trade |

*The Trade Condition value of `O=Opening Trade` will continue to be disseminated on the options PITCH and TOP feeds but will not be sent to OPRA.

## Connectivity

### Supported Extranet Carriers

Cboe has certified a number of carriers defined in the Cboe Titanium U.S. Equities/Options Connectivity Manual with respect to redistribution of Cboe Multicast data feeds. For more information on receiving Multicast PITCH through any of these providers, reach out to the vendor contact noted in the Connectivity Manual under Extranet Providers.

### Bandwidth Recommendation

The Gig-shaped feeds require 1Gbps of bandwidth. Cboe will use 90% of these respective bandwidths for Multicast PITCH to allow customers to use the same physical connection for FIX order entry if desired.

### Multicast Test Program

The ZIP file located at https://cdn.cboe.com/resources/membership/mcast_pitch.zip contains a sample program that may be used to test Multicast PITCH feed connections and to troubleshoot Multicast issues. Refer to the included README file for build and usage information.

## References

For more information on Cboe Symbology, please see the Cboe Titanium U.S. Symbology Reference.

## Support

Please direct questions or comments regarding this specification to tradedesk@cboe.com.

## Revision History

| Document Version | Date | Description |
|---|---|---|
| 2.0.0 | 05/11/17 | Initial version of US Options Complex Multicast PITCH Specification based on Multicast PITCH 2.X. |
| 2.0.1 | 05/18/17 | Various minor updates and clarification added. |
| 2.0.2 | 07/28/17 | Added Multicast Ips/Ports for Certification environment. Added `Auction Update` and `Auction Summary` messages. |
| 2.0.3 | 08/08/17 | Added Multicast Ips/Ports for Production environment. |
| 2.0.4 | 09/01/17 | Added C2 Options references. |
| 2.0.5 | 10/17/17 | Cboe branding/logo changes. |
| 2.0.6 | 11/24/17 | Added C2 Options Certification IP and Port information. Added RUT, RUTW options (C2 Options Only) to distinct unit (unit 33). |
| 2.0.7 | 02/05/18 | Removed the "A" Trading Status field value as this is used for equities only. Added C2 Options Production IP and Port information. |
| 2.0.8 | 03/08/18 | Updated Unit Distribution ranges. |
| 2.0.9 | 03/23/18 | Unit Distribution ranges Effective Date updated to 4/14/18. |
| 2.1.0 | 11/16/18 | Added support for Cboe Options Exchange. |
| 2.1.1 | 12/06/18 | Added notes identifying Feature Pack 4 updates. |
| 2.1.2 | 12/21/19 | Removed Floor Trade value from Trade Condition field, as this was added in error. Added a note of clarification, indicating that a `Trade` message can also be sent when an auction executes against a non-displayed order, such as a contra response. |
| 2.1.3 | 02/14/19 | Corrected value of Complex AIM value to "B"for Auction Type field in `Auction Notification` message. Added certification IP port information. |
| 2.1.4 | 03/04/19 | Added matching engine unit 33 information in support of XSP trading on EDGX Options effective 04/08/19. Added C1 primary data center rendezvous point IP address and C1 Certification symbol ranges. |
| 2.1.5 | 04/15/19 | Added C1 production IP port and unit distribution. `Transaction Begin` and `Transaction End` messages are currently restricted to C1 only. Added DJX to C2 ME 33 in Unit/Product Distribution tables (effective 05/08/19). |
| 2.1.6 | 05/01/19 | Added note indicating `Transaction Begin` and `Transaction End` messages will be disseminated for C2 and EDGX options (effective with C1 Feature Pack 7). |
| 2.1.7 | 05/08/19 | Removed Trading Status value `S` = Exchange Specific Suspension. Corrected C1 Production Gig-Shaped [CAC] and [CBC] source network IP addresses. |
| 2.1.8 | 05/14/19 | Added Composite Market Bid Price and Composite Market Offer Price fields to the `Options Auction Update` message and updated associated example message. Added additional proprietary products to matching unit 31 in C1. |
| 2.1.9 | 06/12/19 | Corrected certification and production C1 symbol range for units 9 and 20. |
| 2.1.10 | 08/02/19 | Added note indicating `Options Auction Update` message Opening Condition field value will always be zero. Updated example message. Removed Complex Instrument Definition from list of PITCH 2.X messages. Corrected Leg Count field description in `Complex Instrument Definition Expanded` message to indicate a total of 12 legs are allowed. |
| 2.1.11 | 09/18/19 | Corrected OSI Symbol example values in `Symbol Mapping` message type example. |
| 2.1.12 | 10/03/19 | Corrected UKXM symbol exclusion in Unit Distribution table. Changed instances of `Complex Instrument Definition` to `Complex Instrument Definition Expanded` , as the former was deprecated 02/28/19. |
| 2.1.13 | 10/31/19 | Clarified description of `Time` message. Added Options Trade Condition section (effective 01/13/20). |
| 2.1.14 | 11/12/19 | Added note indicating Unit Clear message is sent at the beginning of the day for Equities only. Added note indicating GTH will be applicable for C1 only as GTH is being sunset for C2 and EDGX (effective 11/22/19). |
| 2.1.15 | 12/19/19 | Updated Options Trade Condition Codes by adding ‘O’ =Opening Trade and correcting field value description for ‘p’by removing "Includes Complex Auctions on the Floor". (Effective 01/13/20). |
| 2.1.16 | 01/03/20 | Updated description of Options Trade Condition Code ‘t’ to read, Complex Floor Trade of Proprietary Products Marked as "Combo Order" . |
| 2.1.17 | 01/08/20 | Removed `l` = Complex Auction Against Single Legs(s) from Options Trade Condition Codes table. |
| 2.1.18 | 01/31/20 | Corrected Unit Symbol Distribution tables to indicate QQQ is an exception for C1 Unit 20 as it has a dedicated location on Unit 28. Updated Complex Trade Condition Values. |
| 2.1.19 | 08/27/20 | Added SPESG to the Unit Symbol Distrbiution tables for C1 unit 31 (effective 09/21/20). |
| 2.1.20 | 10/06/20 | Added SPESG to the Unit Symbols Distribution Exceptions entries. |
| 2.1.21 | 10/20/20 | Added XSP to the Unit Symbol Distribution tables for BZX and removed it from EDGX (effective 11/2/20). |
| 2.1.22 | 01/22/21 | Updated Price field description on `Auction Notification` message to indicate that for SPX and SPXW AIM, this field will reflect the auction start price (C1 Only) (effective 02/22/21). |
| 2.1.23 | 02/01/21 | Added MRUT to Unit/Product Distribution tables for C1 unit 31 (effective 03/01/21). Added new updated Unit/Product Distribution tables with harmonized symbol ranges (effective 03/22/21). |
| 2.1.24 | 03/03/21 | Updated the `Delete Order` message description. |
| 2.1.25 | 03/11/21 | Updated the Unit Symbols Distribution Exceptions entries (effective 3/22/21). |
| 2.1.26 | 03/25/21 | Added Binary Date field type to Section 2.2 - Data Types (effective 10/10/21 TBD 09/27/21 Q3 2021 ). Added new `Time Reference` message (effective 10/10/21 TBD 09/27/21 Q3 2021 ). Added EpochTime field to `Time` message (effective 10/10/21 TBD 09/27/21 Q3 2021 ). Updated description of Auction Type field on `Options Auction Update` and `Auction Summary` messages (effective TBD 09/27/21 Q3 2021). Updated description of GTH Trading Status field on `Trading Status` message (effective 01/24/22 TBD 09/27/21 Q3 2021 ). |
| 2.1.27 | 05/13/21 | Added clarification to the description of heartbeat messages indicating that when the system fails to receive two consecutive heartbeat messages within the specified interval the client connection is terminated. Updated Curb session effective date to 02/07/22 TBD 09/27/21 . Added `v` = Extended Hours Trade Trade Condition code (effective 01/24/22 TBD 09/27/21 ). |
| 2.1.28 | 06/08/21 | Noted in `Complex Instrument Definition Expanded` message that 16 legs are allowed (effective 08/25/21 08/09/21). |
| 2.1.29 | 06/15/21 | Updated effective date for expanded GTH session to 11/21/21. |
| 2.1.30 | 08/02/21 | Updated the effective date for the `Complex Instrument Definition Expanded` message that a total of 16 legs are allowed (effective 08/25/21). |
| 2.1.31 | 08/27/21 | Updated Curb session and Trade Condition code `v` = Extended Hours effective dates to 01/23/22 TBD. |
| 2.1.32 | 09/09/21 | Added Trading Status field value `L` = Curb Trading (C1 Only) for `Trading Status` message (effective 01/24/22 TBD ). GTH Trading Status field will not be used for Curb session. Updated description of Auction Type field on `Options Auction Update` and `Auction Summary` messages (effective TBD). |
| 2.1.33 | 09/29/21 | Updated effective date for new `Time Reference` message (C1 Only) , EpochTime field to `Time` message (C1 Only) , and Binary Date field type to Section 2.2 - Data Types to 10/10/21. Added new section 1.3 - '24x5 Feed Hours and System Restart ( C1 Only )' (effective 10/10/21). |
| 2.1.34 | 11/04/21 | Corrected example `Time` message values. Updated Curb session effective date to 02/07/22 . Updated effective date for `v` = Extended Hours Trade Trade Condition code to 01/24/22. Updated effective date for Trading Status field value ‘ `L` = Curb Trading' to 01/24/22. Removed note indicating AuctionType value O will be sent prior to Curb session. This value will only be sent for the RTH Opening. |
| 2.1.35 | 01/03/22 | Added `m` = Complex Floor Trade Against Single Leg(s) , `p` = Complex with Stock Floor Trade , and " `t` = Complex Floor Trade of Proprietary Products Marked as ‘Combo Order’" Trade Condition Codes. Updated `Delete Order` message description. Updated the Multicast Test Program ZIP file link. |
| 2.1.36 | 02/02/22 | Added NANOS to the C1 unit 32 Unit/Product Distribution tables (effective 03/14/22). |
| 2.1.37 | 03/01/22 | Removed XSP from the BZX unit 31 Unit/Product Distribution tables. |
| 2.1.38 | 10/07/22 | Updated EDGX Options Address/Unit Distribution Gig-Shaped (EEC). |
| 2.1.39 | 11/07/22 | Moved XSP to the C1 unit 32 Unit/Production Distribution tables (effective 12/04/22). |
| 2.1.40 | 03/30/23 | Clarified RUT is on BZX and C2 Unit 31. |
| 2.1.41 | 01/29/24 | Added MXACW, MXUSA, and MXWLD to the C1 unit 31 Unit/Product Distribution tables (effective 03/18/24). |
| 2.1.42 | 04/02/24 | Added `Exchange Designated Complex Instrument Definition` message (effective 06/24/24). |
| 2.1.43 | 04/08/24 | Added additional detail to `Exchange Designated Complex Instrument Definition` message (effective 06/24/24). |
| 2.1.44 | 04/24/24 | Clarified `Exchange Designated Complex Instrument Definition` message is C1 only (effective 06/24/24). |
| 2.1.45 | 06/07/24 | Added a two-byte Reserve field to the Exchange Designated Complex Instrument Definition example message. |
| 2.1.46 | 07/22/24 | Effective 08/26/24, GTH will be extended until 9:25 a.m. ET (C1 only). |
| 2.1.47 | 08/16/24 | Added two Reserved bytes to the `Add Order Expanded` message (effective 10/25/24 on BZX and 10/28/24 on C1, C2, and EDGX). |
| 2.1.48 | 08/20/24 | The `Add Order Expanded` message will add five Reserved bytes instead of two (effective 10/25/24 on BZX and 10/28/24 on C1, C2, and EDGX). |
| 2.1.49 | 11/22/24 | Added CBTX, CBTXW, MBTX, and MBTXW to the C1 unit 31 Unit/Product Distribution tables (effective 12/02/24). |
| 2.1.50 | 12/13/24 | Added new Unit/Product Distribution for Units 1-30 (effective 03/31/25). |
| 2.1.51 | 01/15/25 | Updated with Cboe Titanium branding. |
| 2.1.52 | 03/25/25 | Noted in Spin Servers : a `Time` message will be sent as the last message in a Spin if the last `Time` message sent on a Spin is older than the last received time from the internal market data producers. Added SPEQX to C1 unit 31 unit/product distribution (effective 04/14/25). |
| 2.1.53 | 07/08/25 | Added Time Offset data type. Effective 09/08/25, Time Offset fields will be populated to nanosecond precision. |
| 2.1.54 | 07/24/25 | Specification updated to indicate complex functionality is available for all Cboe Options Exchanges, with BZX Options complex functionality effective on 10/13/25. |
| 2.1.55 | 08/05/25 | Updated`Instrument Definition Response` message to include Length field. |
| 2.1.56 | 10/20/25 | Added MGTN and MGTNW to unit 31 in US Options Unit/Product Distribution and excluded MGTN and MGTNW from unit 14 (effective 12/08/25 TBD 11/17/25). |
| 2.1.57 | 11/06/25 | Updated MGTN and MGTNW effective dates to TBD. |
| 2.1.58 | 11/18/25 | Updated MGTN and MGTNW effective dates to 12/08/25. |
| 2.1.59 | 01/12/26 | Updated 24x5 Feed Hours and System Restart to document the new time at which persisted orders are added back into the order book (effective 02/02/26). |
| 2.1.60 | 01/13/26 | Added C = SCOA to Auction Type on the Auction Notification Message (effective TBD 05/18/26 TBD). |
| 2.1.61 | 04/01/26 | Removed references to MXEA, MXEF, MXACW, MXUSA, and MXWLD. Updated Time description in `Time` and `Time Reference` messages. Added XSPBW to C1 unit 32 Unit/Product Distribution tables (effective 06/15/26 06/01/26 ). |
| 2.1.62 | 04/06/26 | Updated effective date to TBD 05/18/26: Added C = SCOA to Auction Type on the Auction Notification Message. |
| 2.1.63 | 04/15/26 | Updated Trading Status Message Fields to reflect planned expansion of C1 trading hours for select equity options, including the addition of a morning Global Trading Hours (GTH) session and afternoon Curb session, subject to regulatory review (effective 07/13/26 08/17/26 TBD). |
| 2.1.64 | 05/14/26 | Updated effective date to TBD: Added C = SCOA to Auction Type on the Auction Notification Message. Updated XSPBW effective date to 06/15/26. Updated U.S. Options Unit/Product Distribution to include DJXW (effective 05/18/26). |
| 2.1.65 | 06/12/26 | Updated planned expansion of C1 trading hours for select equity options to 08/17/26. |
| 2.1.66 | 07/21/26 | Removed VIX and VIXW exclusion from unit 23 and added VIX and VIXW exclusion to unit 24 U.S. Options Unit/Product Distribution tables. |
| 2.1.67 | 08/10/26 | Updated planned expansion of C1 trading hours for select equity options to TBD. |
