hybrid-perps-spec

L7 Market Data Layer

Data Sources

All market data in MVP comes from Hyperliquid. Platform adapts format and passes through.

Real-Time Data (WebSocket)

Data Type HL Channel Frequency
Real-time price / mark price allMids Real-time
Order book depth l2Book Real-time
Candlestick / K-line candle Per interval
Funding rate activeAssetCtx Real-time
Recent trades trades Real-time
User position events user Event-driven

WebSocket Multiplexing

Static Data (REST Sync)

Data Type Source Sync Frequency
Contract metadata (listed assets, leverage range) HL /info Hourly
Precision rules (szDecimals, size step) HL /info Hourly
Maintenance margin rate tiers HL /info Hourly
Predicted funding rate HL REST Hourly
Current funding rate HL REST / WS Real-time

Precision Rule Sync

HL /info metadata contains:

Usage:

  1. L5 liquidation price calculation (tiered maintenance rate)
  2. Order quantity/price rounding (align with HL)
  3. Minimum order size validation

HL Mark Price

Platform does not compute mark price. It uses HL’s pushed mark price directly.

Mark Price Latency Monitoring

End-to-end latency = HL generation → Platform receive → user display

Alert: > 200ms
Critical: > 500ms → Pause internalization (no internalization during data lag)

Funding Rate Pass-Through

See 09-settlement.md for full funding settlement formulas.

Exception Handling

HL Disconnect

Disconnect → Immediate alert
Reconnect: exponential backoff (1s, 2s, 4s, ... max 30s)
During disconnect:
  - Pause internalization (no real-time price = no safe B-booking)
  - Pause HL order forwarding
  - Users see "data loading"
After recovery: full snapshot refresh, then incremental updates

Abnormal Price Jump

Detect: single update > configured threshold (e.g. BTC 5% in one update)
Handle: use last valid price
Notify: alert + pause internalization
Recover: resume after N consecutive normal updates

Data Consistency Check