RWA Perps
RWA perps are perpetual futures on real-world assets: equities like TSLA and NVDA, pre-IPO names, ETFs, indices, commodities and FX. They trade 24/7 while the underlying prints ~32.5 market hours a week. The Sharpe API normalizes funding and carry across 19 venues into one interval-true, mechanism-true endpoint: CEXs (Binance, Bybit, OKX, Bitget, Gate, Kraken, Coinbase), perp DEXs (Aster, Lighter, Extended, GRVT, ApeX, Pacifica, Orderly), Hyperliquid HIP-3 builder markets, and the borrow-based venues Ostium and Avantis. Settlement intervals genuinely differ per venue and per market (the same stock can fund every 4 hours on one venue and every 8 on another), so every rate is annualized from the venue's own reported interval.
Get rwa-perp rates
A single endpoint that returns current per-market snapshots, session-tagged settlement history, or summary stats depending on the type parameter.
Query parameters
- Name
type- Type
- string
- Description
The kind of rwa-perp data to return. One of
current,history,stats. Defaults tocurrent.
- Name
symbol- Type
- string
- Description
Underlying equity ticker (e.g.,
TSLA,NVDA,MSTR). Optional filter forcurrent. Required forhistory.GOOG(Ostium) andGOOGL(Hyperliquid, Kraken) are different share classes and are never merged.
- Name
venue- Type
- string
- Description
Filter to a single venue, e.g.
Binance,Bybit,OKX,Kraken,Coinbase,Aster,Lighter,Ostium, or a Hyperliquid HIP-3 builder market. Registry-driven rather than a fixed enum.
- Name
days- Type
- integer
- Description
Lookback window in days for
type=history. Integer from1to90. Defaults to7. Ignored for other types.
- Name
limit- Type
- integer
- Description
Maximum records per page (
1to5000). Enables cursor pagination.
- Name
cursor- Type
- string
- Description
Opaque pagination cursor from a previous response.
Mechanism semantics
Every row carries a mechanism field:
builder_set(the three Hyperliquid HIP-3 builder venues: Hyperliquid, Kinetiq, Paragon): the market deployer runs the oracle; funding is Hyperliquid-standard, settled hourly.funding_rateis the fraction per interval; positive means longs pay shorts.standard(most CEXs and perp DEXs): classic long-pays-short perp funding, clamped per instrument where the venue publishes a cap. This covers Binance, Bybit, OKX, Bitget, Gate, Kraken, Coinbase, Aster, Lighter, Extended, GRVT, ApeX, Pacifica, and Orderly. Venue-internal caps are retained for product calculations but the default API payload intentionally omits internalmeta.funding_plus_borrow(Ostium, Avantis): these stock pairs charge no long/short funding; the holding cost is a carry-anchored rollover accrued per block and charged to both sides. It is reported asborrow_apr_annualand is deliberately excluded from cross-venue funding spreads: a both-sides cost is not sign-comparable with a long-pays-short transfer. Avantis charges it on collateral rather than notional; that source detail is retained internally rather than returned in the default payload.
funding_apr annualizes each venue's own settlement interval (rate × 8760 / interval_hours), never an assumed 8-hour interval.
History and session phases
type=history returns settled funding for Hyperliquid and Kraken (Ostium has no per-settlement feed). Each settlement is tagged with the equity-session phase it occurred in, computed in exchange time (America/New_York, DST-correct): market, after_hours, weekend, or holiday. This is the raw material for weekend-carry analysis, because perps trade 168 hours a week against ~32.5 hours of underlying price discovery.
Freshness
Rates refresh every 30 minutes. Rows are flagged is_stale after 90 minutes without a sync, and responses carry X-Data-Stale, X-Data-As-Of, and X-Freshness-Sla-Seconds headers.
Request
curl -G https://www.sharpe.ai/api/v1/rwa-perps/rates \
-H "Authorization: Bearer $SHARPE_API_KEY" \
-d type=current \
-d symbol=TSLA
Response (type=current)
{
"data": [
{
"venue": "Hyperliquid",
"market": "xyz:TSLA",
"symbol": "TSLA",
"mechanism": "builder_set",
"funding_rate": 0.0000071158,
"interval_hours": 1,
"funding_apr": 0.062334,
"borrow_apr_annual": null,
"mark_price": 306.63,
"oracle_price": 306.51,
"open_interest_usd": 44868000,
"next_funding_time": "2026-07-28T19:00:00.000Z",
"updated_at": "2026-07-28T18:56:03.389Z",
"is_stale": false
},
{
"venue": "Ostium",
"market": "TSLA",
"symbol": "TSLA",
"mechanism": "funding_plus_borrow",
"funding_rate": null,
"funding_apr": null,
"borrow_apr_annual": 0.048442,
"is_stale": false
}
],
"meta": { "request_id": "…", "timestamp": "…", "elapsed_ms": 12 }
}
Response (type=history)
{
"data": [
{
"venue": "Kraken",
"market": "PF_TSLAXUSD",
"symbol": "TSLA",
"rate": 0.000035036,
"interval_hours": 1,
"session_phase": "market",
"settled_at": "2026-07-28T18:00:00.000Z"
}
],
"meta": { "request_id": "…", "timestamp": "…", "elapsed_ms": 12 }
}