Index Price

For a given contract, the Index price is the volume-weighted average of the underlying asset prices listed on major spot exchanges.

In order to mitigate the risk of market manipulation on one specific venue or exchanges outages or connectivity issues, Orderly undertakes the following protection measures:

  1. If, for any source, the price deviates by more than 5% from the median price of all sources, Orderly caps/floors the value at +/- 5%. Once the source price falls within the 5% range, its original value will be taken.

  2. If multiple sources show a deviation of more than 5% from the median, Orderly will use the median instead of the volume-weighted average.

  3. If a specific source is not sending any price for over 10 seconds, it will be disregarded from the Index Price calculation completely.

In the Index Price calculation, the weights are computed every 5 minutes and are based on the 4-hour trading volume over the spot trading pairs of the selected centralized exchanges.

Weight (CEX_i) = Volume (CEX_i) / Total Volume (CEXes)
where:
    Volume (CEX_i) refers to the 4-hour trading volume of the CEX i
    Total Volume (CEXes) refers to the sum of the 4-hour trading volume accross all relevant CEXes for the specific pair

In addition to Orderly’s in-house oracle, Stork serves as a backup oracle, verifying the index price for all pairs listed on Orderly. Stork is an ultra-low-latency (sub-millisecond), decentralized hybrid oracle network designed for EVM-compatible price feeds. Stork prioritizes performance, using ultra-fast WebSockets across multiple regions and node providers to ensure Orderly’s reference prices are available for verification in real-time, at the millisecond level, similar to the data speeds used in traditional finance trading venues.

The relevant exchanges for each trading pair can be find in the following table :

SymbolBinanceOKXHuobiGateioBybitKucoinMEXCBitgetBingXStork
BTCXXXXX
ETHXXXXX
NEARXXXXXX
WOOXXXX
SOLXXXXXX
OPXXXXX
LINKXXXXX
ARBXXXXXX
SUIXXXXX
TIAXXXXX
INJXXXXX
AVAXXXXXX
JUPXXXXX
ORDIXXXXX
APTXXXXX
BLURXXXXX
WLDXXXXX
STRKXXXXX
SEIXXXX
DYMXXXX
ETHFIXXXXX
FTMXXXXX
ENAXXXX
WXXXXX
WIFXXX
ZEUSXXXX
OMNIXXXX
MERLXXXX
ONDOXXXX
ARXXXXXX
FILXXXXXX
NOTXXXXX
MEWXXXX
BOMEXXXXX
1000PEPEXXXXX
1000BONKXXXXXX
TONXXXXX
1000FLOKIXXXXX
STGXXXXX
PEOPLEXXXXX
BRETTXXX
CHZXXXXXX
IOXXXX
ZKXXXXX
PONKEXXXX
ZROXXXX
POPCATXXX
MKRXXXXXX
AAVEXXXXXX
CRVXXXXXXX
LDOXXXXXXX
TRXXXXXXXX
ORDERXXXXXX
DOGSXXXXXX
POLXXXXXX
TAOXXXXX
EIGENXXXXXXX
MOODENGXXXX
1000SHIBUXXXXXXX
1000APUXXX
GOATXXX
MOGXXXXXXX
SPXXXX
LINAXXXXX
PNUTXXXXXXX
ACTXXXXXXX
NEIROXXXXXX
CHILLGUYXXXX

Mark Price

The Mark Price represents the best estimate of a Perpetual Futures contract value and prevents unnecessary liquidations that would potentially be caused by market manipulation: it is less volatile than the Index Price or Last Price.

First we compute the Median Price of the three following components :

Median Price = Median(P1, P2, Futures Price)
where:
    P1 = Index Price * (1 + Last Funding Rate * Time until next Funding / dt)
    P2 = Index Price + 15 Minute Moving Average[Basis]
    Futures Price = Median(Bid0, Ask0, Last_Price)

Last Funding Rate is expressed on a 8h basis
Basis = Median(Bid0, Ask0) - Index Price, calculated as a snapshot every minute
dt = Funding Period = 8 hours

Then Orderly applies a cap to the Mark Price relative to the Index Price defined by Factor (see table below) and Cap/Floor funding (cf Funding Rate section)

Mark Price = Clamp(Median Price, Index Price * (1 + Factor * Cap Funding), Index Price * (1 + Factor * Floor_funding))

cap_funding and floor_funding depend on the perpetual market (cf Funding Rate section)
Perp MarketFactorMax Mark Price Deviation from Index Price
BTC103%
ETH83%
Others75.25%

Last Price

The Last Price refers to the last traded price of a Perpetual Futures contract.