Skip to main content
When trading perpetual futures, you will see three different prices: the Index Price, the Mark Price, and the Last Price. Each serves a different purpose, and understanding them will help you make sense of how your positions are valued and when liquidations might happen.
  • Index Price is a fair market price for the underlying asset, calculated from multiple major exchanges. It answers the question: “What is this asset actually worth right now?”
  • Mark Price is Orderly’s best estimate of what the perpetual futures contract itself is worth. It is used for calculating your unrealized PnL and determining liquidations.
  • Last Price is simply the most recent price at which the contract was traded on Orderly.
The Mark Price is the most important of the three for your account health, because it is what Orderly uses to decide whether your positions should be liquidated. It is designed to be resistant to manipulation and short-term volatility.

Index Price

For a given contract, the Index price is the volume-weighted average of the underlying asset prices listed on major spot exchanges. Because no single exchange should have the power to move this price on its own, Orderly applies several safeguards to prevent manipulation, outages, or connectivity problems from distorting the Index Price:
  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.

How the weights are calculated

The weights used in the Index Price calculation are updated every 5 minutes. They are based on how much trading volume each exchange had over the past 4 hours. Exchanges with more volume have more influence on the Index Price.
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

Backup oracle

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.

Exchange sources per trading pair

The tables below show which exchanges are used as price sources for each trading pair. An “X” means that exchange is included in the Index Price calculation for that pair.
SymbolBinanceOKXHuobiGateioBybitKucoinMEXCBitgetBingXStorkHyperliquidPythLBankBinance Futures
BTCXXXXX
ETHXXXXX
NEARXXXXXX
WOOXXXX
SOLXXXXXXX
OPXXXXX
LINKXXXXX
ARBXXXXXXX
SUIXXXXX
TIAXXXXX
INJXXXXX
AVAXXXXXXX
JUPXXXXX
APTXXXXX
WLDXXXXX
SEIXXXX
DYMXXXX
ETHFIXXXXX
ENAXXXX
WIFXXXX
MERLXXXX
ONDOXXXXXXXX
ARXXXXXX
1000PEPEXXXXXX
1000BONKXXXXXXX
TONXXXXXXXX
STGXXXXX
ZROXXXXXXX
AAVEXXXXXX
CRVXXXXXXX
LDOXXXXXXX
TRXXXXXXXXX
ORDERXXXXXX
POLXXXXXXX
TAOXXXXX
1000SHIBUXXXXXXX
GOATXXXXXX
MOGXXXXXXX
SPXXXXXX
PENDLEXXXXXXX
HYPEXXXXXX
AIXBTXXXXX
PENGUXXXXXXXX
FARTCOINXXXXX
ZENXXXXXX
BIOXXXXXXX
RAYXXXXXXX
ADAXXXXXXX
SXXXX
TRUMPXXXXXXXXX
FETXXXXXXXX
BERAXXXXXX
UXLINKXXXXXXXX
IPXXXXXX
CAKEXXXXXX
LTCXXXXXX
HBARXXXXXX
PAXGXXXXXXX
FETXXXXXXXX
USELESSXXX
MNTXXXX
HXXXXX
CROXXXXXXX
XLMXXXXXX
PUMPXXXXXX
OKBXXXX
UNIXXXXX
DOTXXXXXX
BCHXXXXX
WLFIXXXXX
LINEAXXXXX
MYXXXX
SKYXXX
ZORAXXXXX
STBLXXX
ASTERXXX
XPLXXXXXXX
ZECXXX
SNXXXXXXX
DASHXXX
XMRXXX
MORPHOXXXXXX
ICPXXXXXX
FILXXXXXX
MONXXXXX
LITXXX
AXSXXXXX
SKRXXXX
SENTXXXXXX
BIRBXXXX
ZAMAXXXXX
RWApragmaFinageTrademadePythChainlink
SPX500XXX
NAS100XXX
XAUXXX
XAGXXX
GOOGLXX
TSLAXX
NVDAXX

Mark Price

The Mark Price is the price Orderly uses to value your perpetual futures positions. It is designed to be a stable, manipulation-resistant estimate of what the contract is actually worth. Orderly uses the Mark Price (not the Last Price) for calculating unrealized PnL and triggering liquidations, because it is less volatile and harder to manipulate.

How it is calculated

The Mark Price is built in two steps. First, Orderly computes a Median Price from three 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 so the Mark Price cannot deviate too far from the Index Price. This cap is defined by a “Factor” and the cap/floor funding rates (see the Funding Rate section for details):
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 is the simplest of the three. It is just the most recent price at which someone bought or sold the perpetual futures contract on Orderly. While it reflects real trading activity, it can be more volatile and easier to manipulate than the Mark Price, which is why it is not used for liquidation decisions.