Skip to main content

Pricing and Indices

Updated over a month ago

We publish three price types:

  • Index Price - external based aggregate spot price used for funding and collateral valuation

  • Last Price - fair-value price used for UI displays and optional conditional-order triggers

  • Mark Price - manipulation-resistant reference price used for margining, liquidations, triggering TP/SL (default), and unrealized PnL


Index Price

Index Price represents the underlying asset’s spot value derived from major spot exchanges via external aggregation.

Index Price is used for:

  • Funding rate calculations

  • Collateral asset valuation

  • Market fairness validation

Index Price sources

  • Primary: Coin Metrics

    • Endpoint: /v4/timeseries/asset-metrics

    • Update frequency: ~3 seconds


Constituent markets and weights

A weighted median is derived from the following constituent spot markets (USDT-quoted) for each asset:

  • Binance (weight 3)

  • OKX (weight 2)

  • Bybit (weight 2)

  • KuCoin (weight 1)

  • Gate.io (weight 1)

  • MEXC (weight 1)

Redundancy behavior

Price feeds should be obtained through both:

  • Coin Metrics APIs, and

  • Independent Synthetix-operated APIs calling exchanges directly

If a venue or upstream endpoint fails, that input is excluded (or swapped to a redundant path) and the aggregate continues using remaining sources.


Last Price

Last Price represents the current fair value of the Synthetix perpetual market. This price is used for:

  • Market data feeds and UI displays

  • An optional UI selection for conditional-order triggers

Last Price is computed as the median of:

  • Best Bid (highest buy order price)

  • Best Ask (lowest sell order price)

  • Last Trade (most recent execution price)

last_price = median(best_bid, best_ask, last_trade)

Last Price updates on:

  • Best bid/ask changes

  • New trade executions

Update cadence targets:

  • Minimum update frequency: 100ms

  • Maximum update frequency: 10ms (during high activity)

Last Price edge cases

  • Normal market: median(bid, ask, trade)

  • No trades yet: median(bid, ask, mid)

  • One-sided book: use available prices + last trade

  • Empty book: use last known trade price (carry forward)


Mark Price

Mark Price is the liquidation reference price designed to be manipulation-resistant through smoothing and multiple external sources. Mark Price is used for:

  • Real-time unrealized PnL calculations

  • Position liquidation thresholds

  • Margin requirements

  • Risk calculations

  • Funding rate premium component

  • Market risk service checks

  • The default price for conditional-order triggers

Mark Price calculation

Mark Price is derived from an external perps composite:

mark_price = external_perp_price

External perp inputs should use the mid of best bid and best ask, not the last traded price:

perp_mid = (best_bid + best_ask) / 2

Synthetix Perp Rate Calculation (external_perp_price)

A weighted median is derived from the following futures/perps markets (USDT-quoted) for each asset, with weights:

  • Binance (weight 3)

  • OKX (weight 2)

  • Bybit (weight 2)

  • KuCoin (weight 1)

  • Gate.io (weight 1)

  • MEXC (weight 1)

  • Synthetix (weight 1)

  • Hyperliquid (weight 1, if available)

Mark Price redundancy

Price feeds for constituent markets should be obtained through both:

  • Coin Metrics APIs, and

  • Independent Synthetix-operated exchange APIs

If a venue or upstream endpoint fails, that input is excluded (or swapped to a redundant path) and the aggregate continues using remaining sources.

Did this answer your question?