SVI Surface

market:svi

Live SVI (Stochastic Volatility Inspired) surface parameters per pair. All maturities publish to a single channel with a maturity tag for server-side filtering.

Channel: market:svi:{pair} Example: market:svi:ETH_USDC

Payload

Payload shape:

{
  "pair": "ETH_USDC",
  "maturity": "11MAR26",
  "sid": "SVI-ETH-11MAR26",
  "alpha": "0.04",
  "beta": "0.5",
  "rho": "-0.1",
  "m": "0.0",
  "sigma": "0.3",
  "timestamp_ms": 1704067200100
}
FieldTypeDescription
pairstringTrading pair (e.g. ETH_USDC)
maturitystringExpiry label (e.g. 11MAR26, 20240315)
sidstringSource identifier for the SVI fit
alphastringSVI parameter: overall variance level
betastringSVI parameter: slope of the left/right wings
rhostringSVI parameter: rotation (skew direction)
mstringSVI parameter: horizontal shift of the smile
sigmastringSVI parameter: ATM curvature
timestamp_msintegerServer emission timestamp in milliseconds

Tag Filtering

Each publication carries a maturity tag (e.g. 11MAR26) for server-side filtering.

Subscribe — Protobuf SDK

All maturities

Subscribe with since: {} to receive the last known SVI fit on subscribe.

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

const client = new Centrifuge("wss://staging.kyan.sh/stream/websocket?format=protobuf");
const sub = client.newSubscription("market:svi:ETH_USDC", { since: {} });

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

  const { pair, maturity, sid, alpha, beta, rho, m, sigma, timestamp_ms } = data;
  // All parameter values are strings — parse to number or Decimal as needed
});

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

Filtered: specific maturity

const sub = client.newSubscription("market:svi:ETH_USDC", {
  since: {},
  tagsFilter: { key: "maturity", cmp: "eq", val: "11MAR26" }
});

Recovery

Subscribe with since: {} to receive the last known SVI fit on subscribe. On reconnect, the SDK automatically recovers.

Related channels

Channels providing related data.

ChannelWhy
Interest RateRisk-free rate. SVI gives the vol surface, interest rate gives the forward -- together they define theoretical option prices.
Index PriceUnderlying spot. Needed to convert SVI parameters to IV at a given strike (moneyness = log(K/F) where F depends on spot + rate).
Options BBOOptions top-of-book. mark_iv in BBO is derived from this surface.
Options L2Full options depth with per-level IV alongside the fitted surface from this channel.