Trades Options

trades_option

Taker executions on option instruments. Same wire format as perp trades. History TTL is 120 days (vs 30 days for perps) since options can trade infrequently between expiries.

Channel: trades_option:{instrument} Example: trades_option:BTC_USDC-31OCT25-130000-C

Payload

["150.00", "-10", 1704067200000]
IndexTypeDescription
0stringPrice (premium, always positive)
1stringSigned size — positive = taker bought, negative = taker sold
2integerTrade execution timestamp (ms)

Subscribe — Protobuf SDK

import { Centrifuge } from "centrifuge/build/protobuf";

const client = new Centrifuge("wss://staging.kyan.sh/stream/websocket?format=protobuf");
const sub = client.newSubscription("trades_option:BTC_USDC-31OCT25-130000-C");

sub.on("publication", (ctx) => {
  const data = ctx.data instanceof Uint8Array
    ? JSON.parse(new TextDecoder().decode(ctx.data))
    : ctx.data;

  const [price, signedSize, timestamp] = data;
  const side = Number(signedSize) >= 0 ? "buy" : "sell";
});

sub.subscribe();
client.connect();

History

Last 100 trades available via the history API on bidirectional transports (120-day TTL). See Transports & Connection for subscribe examples with history fetch.

On reconnect, the SDK automatically recovers missed trades using the last known stream position.

Related channels

Channels providing related data.

ChannelWhy
Options BBOCurrent top-of-book with mark_price, edge_bid/edge_ask, and Greeks.
Options L2Full depth context for the book these trades executed against.
Index PriceUnderlying spot price at time of trade. Needed to compute moneyness.
SVI SurfaceVol surface parameters at time of trade.
Order LifecycleYour private fills with fee breakdown, liquidity indicator, and index price at fill.