Skip to main content

Pricing roles

Price typeRole
Index priceExternal anchor from market data feeds
EMASmoothed spread component between DerivaDEX market price and the underlying index
Mark priceRisk and liquidation reference price used in margin checks

Use this page when

If you need…Use this page because…
the public baseline for mark-price constructionit names the inputs, adjustment, and clamp behavior explicitly
to understand why liquidation and deviation checks reference mark priceit shows how the risk price is formed and where it is used
to distinguish external index inputs from internal risk-price useit separates those pricing roles clearly

Repo-defined spot-index and gateway sources

Underlying indexGateways in repo specsHostnames
BTCGemini BTCUSD, Binance BTCUSDC, Coinbase BTC-USDapi.gemini.com, api.binance.com, api.coinbase.com
ETHGemini ETHUSD, Binance ETHUSDC, Coinbase ETH-USDapi.gemini.com, api.binance.com, api.coinbase.com
SPCXGeckoTerminal token-address lookupapi.geckoterminal.com
DDX internal discount/oracle pathCoinGecko token-address lookupapi.coingecko.com

Mark-price construction

ElementContract
Base inputCurrent index price
AdjustmentEMA spread component
ClampMark price is clamped to 50 bps above or below index price
Realtime feedMARK_PRICE includes price and funding-rate updates

Fair-price and EMA inputs

Input casePublic reading
bid and ask both presentmidpoint is used as the fair-price input
only bid presentbid is used as the fair-price input
only ask presentask is used as the fair-price input
no book price presentindex price is used as the fallback fair-price input
The EMA spread component is then updated from the difference between fair price and index price before the mark-price clamp is applied.

Pre-trade and execution price checks

CheckContract
Taker/limit deviation checkExplicitly priced requests can fail during sequencing when price deviates too far from mark price
Matching price bandingWhen no explicit taker limit exists, matching bounds market orders by product max_taker_price_deviation around mark; explicit limit orders stop at their taker price first
No mark availableRequest can fail with MarketPriceNotAvailable

Reading notes

TopicPublic reading
index versus markindex is the external anchor; mark is the risk and liquidation reference derived from that anchor plus spread logic
clamp behaviormark is bounded relative to index rather than allowed to drift arbitrarily
missing mark staterequests can fail instead of trading against stale or absent risk inputs

Price-band reference

The execution guard model uses product-specific max_taker_price_deviation bands around mark price. The effective band is product-specific, for example 0.02 on ETHP/BTCP/SPCXP and 0.1 on test-only DOGEP.

Boundary rule

Use this page for price-input and mark-price reference facts. If you need the broader rationale for how those controls feed solvency, continue to Price Formation, Risk Controls, and Solvency.
Last modified on April 12, 2026