Oracle Prices
Trading perpetuals involves significant risk, including the risk of liquidation and partial or total loss of assets. Review the Risk Disclosures and ensure you understand the risks before trading.
For RWA perpetual markets, index and mark prices rely on:
external oracle data during trading hours
off-hours pricing during non-trading hours
Trading hours are specified for each market below.
Oracle Price Reference
Indices
SPX, NDX
Value of the index
Energy
WTI
1 barrel of West Texas Intermediate (WTI) Light Sweet Crude Oil
Energy
NATGAS
1 MMBtu of Henry Hub natural gas
Energy
XBR
1 barrel of Brent Crude Oil
Precious Metals
XAU
1 troy ounce of gold
Precious Metals
XAG
1 troy ounce of silver
Precious Metals
XPT
1 troy ounce of platinum
Industrial Metals
XCU
1 pound of copper
FX
EUR
EUR/USD exchange rate
FX
USDJPY
USD/JPY exchange rate
Equities
All
Underlying share price
ETFs
EWY
EWY share price
Pre-IPO
SPCX
Trade.xyz SpaceX reference price
Oracle Price Methodology
The table below outlines the Oracle Price Methodology for all RWA markets, including the provider, calculation methodology, underlying price reference, and oracle availability.
Precious Metals: XAU, XAG, XPT
23/5**
Equities & ETFs: All
Regular, pre-market, and post-market sessions: NYSE/Nasdaq midpoint prices via licensed data providers.
Overnight: Blue Ocean ATS
24/5
* CME and ICE futures equivalent: a proprietary aggregate of market-maker and broker feeds that has historically shown high correlation with CME and ICE L1 mid-prices. Used as an alternative to direct CME and ICE market data. Expected maximum deviation from CME and ICE L1 mid-prices is 1-2 bps, depending on the market.
** 23/5 = 6:30 PM – 5:30 PM ET, Sunday to Friday, with 1 hour daily gaps.
*** Fallback is automatically triggered when the primary source is down or significantly deviates from the median of fallback sources.
Outside of Oracle Availability windows, the index and mark prices are calculated based on the off-hours pricing mechanics.
Futures-to-spot normalisation
For indices (SPX and NDX), where the price represents a futures-implied spot price, the oracle normalises the futures price to a spot equivalent using the cost-of-carry formula:
where:
r= risk-free rate (SOFR) sourced from New York Fedd= annualised dividend yield, derived from major index ETF dividend yields and updated monthly. Current values can be obtained here.T= days to futures expiry
Roll Schedule for Indices
Index oracles (SPX and NDX) reference quarterly futures contracts. The active contract follows the standard quarterly cycle, with settlement codes corresponding to the contract month:
H — March
M — June
U — September
Z — December
The active contract rolls to the next quarterly contract before expiry, on the corresponding “Active Until” date. The active and expiry dates for each quarterly contract are shown below:
H6
2026-03-16 14:00:00 UTC
2026-03-20 13:30:00 UTC
M6
2026-06-15 14:00:00 UTC
2026-06-18 13:30:00 UTC
U6
2026-09-14 14:00:00 UTC
2026-09-18 13:30:00 UTC
Z6
2026-12-14 15:00:00 UTC
2026-12-18 14:30:00 UTC
Roll Schedule for Energy and Industrial Metals
For markets that reference futures-based price feeds (WTI, XBR, NATGAS, XCU), the active contract rolls over a 5-business-day transition window.
The roll period runs from the 5th to the 10th business day of the month. During this period, the oracle price transitions from the front-month contract to the next active contract using a linear weighting model that updates at predefined timestamps aligned with internal pricing sessions.
Updated weightings take effect when the oracle switches back to external pricing at 6:00 PM ET.
Roll Example. If WTI is referencing the M6 contract and rolling into N6, the transition proceeds as follows:
Day 5, 5:30 PM ET
80%
20%
Day 6, 5:30 PM ET
60%
40%
Day 7, 5:30 PM ET
40%
60%
Day 8, 5:30 PM ET
20%
80%
Day 9, 5:30 PM ET
0%
100% (roll complete)
Active contract schedule
The table below shows the active contract at the start of each month and the corresponding roll target for each energy and industrial metals market.
XCU (Copper)
K6 → N6
N6
N6 → U6
U6
U6 → Z6
Z6
Z6
Z6 → H7
H7
WTI
K6 → M6
M6 → N6
N6 → Q6
Q6 → U6
U6 → V6
V6 → X6
V6 → X6
X6 → Z6
Z6 → F7
XBR (Brent)
M6 → N6
N6 → Q6
Q6 → U6
U6 → V6
V6 → X6
X6 → Z6
Z6 → F7
F7 → G7
G7 → H7
NATGAS
K26 → M26
M26 → N26
N26 → Q26
Q26 → U26
U26 → V26
V26 → X26
X26 → Z26
Z26 → F27
F27 → G27
Off-hours Pricing
During off-trading hours, if the oracle has not been updated for more than 5 minutes, both the Index Price and Mark Price for RWA markets are derived from order book liquidity.
Index Price Calculation
The Index Price evolves according to:
where the index moves from its previous value toward prices implied by the order book, with the speed of adjustment controlled by the smoothing factor (1 − β).
Adjustment Term
where:
Impact Bid= average execution price required to fill the market's configured impact notional on the bid side.Impact Ask= average execution price required to fill the market's configured impact notional on the ask side.
The adjustment term behaves as follows:
If the Index Price lies between the Impact Bid and Impact Ask, no adjustment is applied.
If the Impact Bid exceeds the Index Price, the index moves upward.
If the Impact Ask falls below the Index Price, the index moves downward.
If either side lacks sufficient liquidity to fill the impact notional, that side contributes zero to the adjustment.
Smoothing Factor
The smoothing factor is time-aware, so the index behaves consistently regardless of update cadence and remains robust to irregular updates.
Capping the effective elapsed time at c·τ (3 minutes) ensures no update can move the index by more than approximately 9.5% of the current adjustment term, even after a prolonged period without updates.
Maximum Deviation
To limit off-hours price drift, the maximum deviation of the Index Price and Mark Price from the last known oracle price is capped at |Index_t − last_oracle_price| ≤ 1 / max_leverage.
Last updated