Skip to main content
GraphQL surface for the perp data model. Mirrors the /api/sol/perp/* REST endpoints field-for-field. All *UsdE6 and price/size integers are native ClickHouse UInt64 returned as Int64-safe values (divide by 1,000,000 for USD-scaled fields). Timestamps are millis-since-epoch. marketId is always <venue>:<SYMBOL>-PERP (e.g. jup:SOL-PERP). Today only jup is supported.

perpMarkets

List supported perpetuals with last-24h volume and trade counts.

Arguments

Return type

volume24HUsd is in USDC e6 (Jupiter size_usd_delta convention).

Example


perpCandles

OHLCV candles per market and timeframe. Backed by perp_ohlcv_{1s,1m,5m,15m,1h,4h,1d}.

Arguments

Return type

Example


perpOi

Per-minute open-interest series sampled from perp_positions. Read this alongside perpCandles to overlay long/short OI on the chart.

Arguments

Return type


perpTrades

Recent fills (taker prints) on a market, newest first.

Arguments

Return type

action is derived from the fill’s on-chain extra: open opens a new position, add increases an existing one, reduce partially closes, close fully closes. fill means no lifecycle fields were present (Phoenix bridge fills, legacy rows). realizedPnlE6 carries realized PnL for reduce/close.

perpLiquidations

Liquidation events on a market, newest first.

Arguments

Return type


perpMarketOrders

Pending or historical trigger orders on a market — feeds the orderbook view. Aggregates the multi-row perp_orders event log per orderId via argMax. Excludes orders whose underlying position has been liquidated or fully closed.

Arguments

Return type

triggerAbove encodes the comparison direction: true = fire when oracle ≥ triggerPrice, false = fire when oracle ≤ triggerPrice. The combination with side derives whether the order is a TP or SL.

perpWalletPositions

Open positions for one wallet. Latest row per position_pubkey from perp_positions FINAL where is_open = 1.

Arguments

Return type

These are derived snapshots from streaming events. For a live RPC truth-path read, use the trading-side oracle path; this query intentionally returns ClickHouse-derived state.

perpWalletTrades

Fills for one wallet across every market.

Arguments

Return type


perpWalletLiquidations

Liquidation events for one wallet across every market.

Arguments

Return type


perpWalletOrders

Pending or historical trigger orders for one wallet. Same PerpOrder shape as perpMarketOrders.

Arguments

Example


perpWalletPnl

Per-(market, venue) volume and fees aggregate for one wallet. Sourced from the _mv_perp_wallet_positions materialized view.

Arguments

Return type

grossPnlE6 is intentionally 0 until the parser surfaces realized PnL; netPnlE6 exposes only the negative-fees component to make this state explicit. Don’t display either as “PnL” until both fields are populated.

Combined example

A single round trip pulling everything a position dashboard needs: