Skip to main content
For each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes. Feeds are published per market and are shared by every risk universe that lists that market. Associated with each feed is a confidence score which ranges between 0 (low confidence) and 1 (high confidence). Confidence scores are used to calculate oracle contingencies for both standard and portfolio margin accounts.

Implied Volatility

The implied volatility for each strike in a given expiry is obtained from a (raw) Stochastic Volatility Inspired (SVI) curve. Such a surface is characterised by 5 parameters. The implied volatility (IV) for a given strike is given by
Formula
Where:
  • a, b, rho, m, e are parameters supplied by the data feed.
  • k = log(K / forward) is the (natural) log moneyness of the given strike K.
  • tau is time to expiry (in years).
  • Spot is the spot price of the underlying base asset.
For large and near 0 strikes K, the minimum and maximum values of the log moneynessk is bounded between k_min and k_max where:
  • k_min = - MIN_SCALE * sqrt(a + b * sigma)
  • k_max = MAX_SCALE * sqrt(a + b * sigma)
and (MIN_SCALE, MAX_SCALE) = (4,4). In other words:
  • if k > k_max, set k = k_max and
  • if k < k_min, set k = k_min.
Essentially, the SVI curve flattens out past strikes 4 standard deviations (using ATM total implied volatility) away from the current spot. Further, note that the maximum total implied volatility and total implied variance are capped to, respectively:
  • MAX_TOTAL_VOL = 24.0
  • MAX_TOTAL_VAR = 144.0

Risk Free Rate

The rate feed is signed and may print negative. Both margin engines clamp it at zero before use, so a negative rate feed margins identically to a zero rate. Without the clamp a negative rate would inflate every option premium by exp(-r * tau) > 1, handing a long book extra credit and under-charging a short one off a feed glitch.

Settlement Aggregates

The forward feed also carries the running inputs to the settlement TWAP for each expiry: The settlement price is the difference of the two aggregates divided by the seconds actually elapsed:
Formula

Confidence Scores

Every feed carries a confidence score. When it drops, both margin engines add an oracle contingency to initial margin only. Maintenance margin is never affected, so a degraded feed cannot by itself make an account liquidatable. The two engines differ in the detail: In both engines the charge has the same shape:
Formula