For the complete documentation index, see llms.txt. This page is also available as Markdown.

Crude Oil (WTI)

Two windows make up for weekday coverage:

  • Regular-hours: 6:00 p.m. – 4:30 p.m. ET

  • Off-hours: 4:30 p.m. – 6:00 p.m. ET

Weekend coverage starts on Friday 4:30 p.m. ET. and runs continuously until Sunday 6:00 p.m. ET.

Oracle Pricing

Oracle pricing is used to calculate funding rates which anchor perpetual contract price to underlying commodity price. For the 24/7 markets we divide the oracle price into three segments (weekday on-hours, weekday off-hours, weekend off-hours). Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change oraclePx by at most 1%.

EMA Definition (used below)

Let xtx_tbe the input series sampled every Δt=1s\Delta t = 1\mathrm{s}, and let StS_t be the EMA with time constant τ (e.g., 1h,8h,150s).\tau\ (\text{e.g., }1\mathrm{h},8\mathrm{h},150\mathrm{s}). We use:

St=βSt1+(1β)xt,β=exp ⁣(Δtτ)% EMA recursion + smoothing factor S_t = \beta S_{t-1} + (1-\beta)\,x_t, \qquad \beta = \exp\!\left(-\frac{\Delta t}{\tau}\right)

Part 1: Weekday on-hours

Oracle = We use the current contract and a blended contract during contract rolls - contract roll schedule can be viewed in the section below.

Part 2: Weekday off-hours

Oracle = EMA_1h(impact_price)

Part 3: Weekend off-hours

Oracle = EMA_8h(impact_price)

Mark Pricing

This section details our methodology for calculating the mark price, which serves as the reference for margin, liquidations, take-profit and stop-loss triggers, and unrealized profit and loss computations. Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change markPx by at most 1%.

Mark Price is calculated as the median of the following 3 values:

  • MarkPx0: Oracle Price

  • MarkPx1: Oracle Price

  • MarkPx2: The median of best bid, best ask, last trade on Hyperliquid (added as default by HL)

ExternalPerpPx Pricing

This limits a perp market's mark price movement to the given band of +/- min(1/max_leverage, 20%) from the externalPerpPx value.

Part 1: Weekday on-hours

Oracle Price

Part 2: Weekday off-hours

Last Close from Weekday On Hour period

Part 3: Weekend off-hours

Last Close on Weekday On Hour

Roll Over Methodology

There will be 4 updates when going from previous contract to the next as per the following schedule:

  • 15 business days before the expiry of current contract, we will define the oracle price to be: 0.75current_contract + 0.25next_contract

  • 14 business days before expiry, we will define the oracle price to be: 0.5current_contract + 0.5next_contract

  • 13 business days before expiry, we will define the oracle price to be: 0.25current_contract + 0.75next_contract

  • 12 business days before expiry, the oracle price will fully represent the next_contract

Each of the above update should be made at 4:30 PM ET of the specified day.

For Crude Oil we will be rolling over on a monthly basis. The roll will look like this every year:

G → H → J → K → M → N → Q → U → V → X → Z → F → G and so on.

During rollover periods, funding rates will stay on during off hours as well (both for weekdays and weekends), as a broader mechanism for allowing funding rate payments to offset rollover gap costs. No changes are made to the funding rate multiplier.

Holidays & Misc.

Last updated