Overview

Rubicon operates a custom oracle system that publishes ETF prices to Hyperliquid every 3 seconds. This section documents how our oracle works, ensuring transparency for traders.

Why We Need a Custom Oracle

Native Hyperliquid Perps

For BTC, ETH, and other crypto assets:

  • Validators publish spot oracle prices

  • Price = weighted median of CEX prices

  • Final price = weighted median across validators

  • You can trade, but not create new markets

HIP-3 Deployed Perps (Rubicon)

For our ETF perpetuals:

  • We deploy our own contracts via registerAsset2()

  • We run our own oracle via setOracle()

  • We are the sole price authority

  • Hyperliquid provides matching engine, we provide prices

This enables perpetuals on assets Hyperliquid doesn't natively support.

Architecture Overview

Key Components

1. Price Sources

Multiple data providers ensure reliability:

2. Oracle Engine

The core processing system:

  • Runs continuous 3-second loop

  • Validates prices before submission

  • Applies EMA smoothing for mark prices

  • Persists state for crash recovery

3. Hyperliquid Integration

Submits prices via HIP-3 protocol:

  • setOracle() publishes prices

  • Hyperliquid calculates final mark price

  • Used for funding, liquidations, margining

Submission Format

Every 3 seconds, we submit:

Field
Purpose

oraclePxs

Authoritative price for liquidations/funding

markPxs

EMA-smoothed suggestion for display

externalPerpPxs

Circuit breaker reference

Design Principles

Direct ETF Prices

We fetch actual ETF prices, never constructing baskets from component stocks:

  • ETF providers handle rebalancing

  • No drift from actual tradeable price

  • Simpler, more reliable

Graceful Degradation

When things go wrong:

  1. Primary source fails → try secondary

  2. Secondary fails → use cached price (60s max)

  3. Cache too stale → halt updates, alert

Transparency

  • Open documentation of methodology

  • Alert on degraded mode

  • Frozen prices clearly indicated in UI

Last updated