5-second and 30-second candles
Candles: 5s and 30s intervals
candleSnapshot(POST /info) and thecandle/allCandlesWebSocket channels accept two new intervals,5sand30s, on top of Hyperliquid’s. Same candle shape;5sand30sWebSocket buckets are final at theirclosedframe (reconciled: false).- Open and close now follow the exact execution order of trades inside a block, as on Hyperliquid, for candles from 1 October 2026 onwards.
Order history: trigger metadata of stops and take-profits
historicalOrders: open and triggered states of trigger orders
- Stops and take-profits now come with their
openandtriggeredstates next to their final state, as in Hyperliquid’s response. These states carrytriggerPx,triggerConditionand the creationtimestamp, which the finalfilledstate of an executed stop resets (triggerPx: "0.0", execution timestamp). A trigger order spans several rows;limitcounts orders. - In window mode, an order is returned when any of its states falls in the window, so a window around a stop’s placement now returns its
openstate.
TWAP membership on fills, complete order history by window, data coverage
Fills: TWAP parent and builder fee everywhere
fillsandrecentFills(POST /info, compact shape) now returntwapIdon every row (null= ordinary fill), plusbuilderFeeandbuilder. Fills of a TWAP carry their parent as soon as they are indexed.userTwapSliceFillsis served from the indexed fills again: it had been reading a table that stopped being fed on 2025-10-11 and returned nothing for recent TWAPs. New optionaltwapIdparameter to get the slices of one parent;startTime/endTimeare inclusive bounds on the fill time.
Orders: complete traversal of a time window
historicalOrders: newstartTime/endTime(inclusive, on the status timestamp) andcursor. In this window mode the result is sorted byoiddescending and paged with theX-Has-More/X-Next-Cursorresponse headers, so a wallet with more thanlimitorders in the window can be read completely. The status returned is the latest one within the window. Without these parameters the behaviour is unchanged.
Pagination headers on POST /info
- When an indexed type is paginated, the response now carries
X-Has-More,X-Next-Cursorand, where available,X-Total-Countheaders. The body keeps its shape. Applies tofills,recentFillsandhistoricalOrdersin window mode.
Leaderboard across every address
GET /users/leaderboard: newwindow=7d|30d|allmode. The ranking is pre-computed over every address that traded in the window and paginated withpage/limit(up to 500 per page,total_countandhas_morein the envelope). New metricswin_rate,pnl_pct(net PnL / traded volume) andunrealized_pnl, next tovolume,pnlandtrades; each row also carries fills, realized PnL, fees, wins, losses, account value andrefreshed_at.7dand30dare refreshed every 5 minutes,allevery hour.min_trades(default 10) keeps one-trade wallets out of thewin_rate/pnl_pctrankings. Withoutwindowthe endpoint behaves as before (live top 100 over the lasthourshours).
New: dataCoverage
dataCoverage(POST /info) returns, per dataset, the start of complete coverage and the latest event timestamp present in the region answering, with the delay in seconds: the way to tell an empty answer from a window that is not covered.
Funding and ledger rebuilt from the node archive, new account WebSocket channels
Per-user funding, rebuilt
userFunding/accountFunding(POST /info) andGET /funding/userFunding: every payment now comes from Hyperliquid’s official node event archive.timeis the exact settlement timestamp in milliseconds;deltagainscoin,fundingRateandnSamples(alwaysnull);hashis the zero hash, as on Hyperliquid. Top-levelcoin,usdcandsziare unchanged. Coverage starts 2025-09-27 10:00 UTC; an earlier window returns[]. Before this update, payments earlier than 3 September 2026 could carry an inverted sign, a position size taken at the wrong moment, or blank rows.
Native ledger
userNonFundingLedgerUpdates(POST /info) now serves the core Hyperliquid ledger in the native{time, hash, delta}shape: deposits, withdrawals, sends, spot, internal, sub-account and perp/spot class transfers, vault create/deposit/withdraw/distribution/commission, liquidations, borrow/lend, staking transfers, rewards and gas auctions. One entry per event and per address involved. Coverage starts 2025-09-27 09:29 UTC. EVM-side transfers stay on/evm/ledger/*.
New WebSocket channels
userFundings: snapshot of the 100 most recent payments, then one frame per hourly settlement, about 30 s after the hour.userNonFundingLedgerUpdates: snapshot of the 100 most recent ledger entries, then new entries within seconds.userEventsnow also carries funding settlements ({"funding": {...}}), one frame per payment.userFills: when the account has no recent live fill, the snapshot is served from storage instead of being empty.candle/allCandles: new30minterval.
Fills
crossedis correct on every fill stored since 2026-09-24 15:53 UTC (earlier stored fills readfalse; a historical correction is scheduled).twapIdis always present in Hyperliquid-shaped fills,nulloutside a TWAP.cloidis never"<nil>": omitted, ornullin the compact shape.timeis the exact millisecond on every fills endpoint, with a stable ISO 8601 format on repeated queries.- Compact
fills/recentFillsrows gaincrossed(0/1) andcloid.
Orders
historicalOrders:lookbackDaysis optional (1–365). Without it, thelimitmost recent orders are returned whatever their age (default 2000, max 5000), as on Hyperliquid. Numbers use Hyperliquid’s format ("93604.0");cloidandtifare always present,nullwhen absent.
Market history and borrow/lend reserve history
Market history
- Seven new endpoints under
/market:coins,bbo/{coin},spread/{coin},depth/{coin},slippage/{coin},book/{coin},liquidity-report/{coin}. Coverage April 2024 to February 2026 from the market data archive, and continuously since 23 September 2026 from the full order book of our own node for the book endpoints. See the Indexed Data REST reference.
Borrow/lend reserve history
borrowLendReserveHistory(POST /info): borrow and supply rates, balance, utilisation, oracle price, LTV, total supplied and borrowed per reserve, one sample per minute since 23 September 2026. Filter bytoken, resample withinterval(1mto1d, last sample of each bucket), window withstartTime/endTime, up to 10,000 rows.
Liquidations stream: follow a list of addresses
liquidationsWebSocket: newusersparameter, up to 50 addresses, matching the liquidated user or a liquidator. Combines withuser,amount_dollarsandbuilder.
Social Trading: batch performance for many wallets
New endpoint
POST /users/batch/performance: Same stats asGET /users/{user}/performancefor up to 500 wallets in one call: one entry per submitted address, in submission order, computed in a single query (~300 ms for 500 wallets).window=7d,30d,90d,all.include_drawdown: trueadds the realized-PnLmax_drawdownper wallet (heavier). The equity-based drawdown stays on the per-wallet endpoint. Billed 3 credits per wallet submitted, the same as one per-wallet call per address (also applies toPOST /builders/{builder_address}/external-activity). See the Social Trading guide.
Live candles: explicit final frame, reconciled against stored trades
WebSocket candle / allCandles: final frame per bucket
- Every bucket now ends with one explicit final update carrying
closed: true, sent ~2 s afterT, whoseo/h/l/c/v/nare recomputed from the stored trades (reconciled: true). A bucket is final when you receive that frame: see candle and allCandles. - Late or out-of-order trades are now applied to their own bucket instead of resetting the current one, and a batch of trades spanning two buckets emits an update for both. This fixes closed bars that could end short of the true trade count without any signal.
reconciled: falseon a final frame means storage was temporarily unavailable and the frame reflects the live state only; a laterclosedframe for the sametsupersedes it.
Builders: detect users trading outside your app
Builders: external activity
POST /builders/{builder_address}/external-activity, Send your builder address and up to 500 wallet addresses; for each wallet you get the fills attributed to other builder codes (externalBuilders[], with fill count, notional, coins, first and last fill) and, unlessincludeNoBuilder=false, the fills carrying no builder code at all (noBuilder), the official Hyperliquid UI, bots, any tool outside the builder program.ownreports the wallet’s activity under your code for context, andflaggedusers come first, sorted by external volume.summarycounts the wallets in each situation.timeframe=1h,24h,7d(default),30d. Builder attribution starts 2025-10-10. See the Builders reference.
Social Trading: equity curve, PnL calendar, account leverage and top trades
Social Trading endpoints
Five endpoints covering a full trader profile for any Hyperliquid address: see the Social Trading guide. Equity, positions and leverage are derived from the on-chain clearinghouse state, read hourly from our own full nodes;account_value matches Hyperliquid’s clearinghouseState.marginSummary.accountValue exactly.New endpoints
GET /users/{user}/equity-history: Account value over time, one point per hourly snapshot (interval=1h) or per day (interval=1d). Each point carriesaccount_value,cash,position_value,unrealized_pnl,account_leverageandn_positions;summaryadds the change over the window and its max drawdown.window=7d(default),30d,90d,all.GET /users/{user}/pnl-calendar: One row per trading day:realized_pnl(from fills),fees,funding,net_pnl = realized − fees + funding,cumulative_net_pnl,fills,volumeandequity_close.totalscounts profitable and losing days. Funding follows the Hyperliquid sign convention (positive = received).window=7d,30d(default),90d,all.GET /users/{user}/account: Latest known state:account_value,cash,position_value,unrealized_pnl,account_leverage(open notional ÷ account value) and every open position withleverage,leverage_type,entry_px,mark_px,unrealized_pnl,roeand accrued funding.as_ofis the snapshot time.GET /users/{user}/top-trades: Best round-trip trades withcoin,direction,leverage,pnl,notional, entry/exit price andclosed_at. Open positions are ranked alongside by unrealized PnL (status: "open", noclosed_at) unlessinclude_open=false.sort=pnl(default),pnl_abs,notional,loss;limit1–50 (default 5).
Updated endpoint
GET /users/{user}/performance: Newwindowparameter (7ddefault,30d,90d,all);start_time/end_timestill take precedence when supplied. Response gainsvolume,longs/shorts/long_short_ratio/long_pct,total_fees,total_funding,best_trade_pnl/worst_trade_pnl, and a second drawdown measured on real account value (equity_max_drawdown_usd,equity_max_drawdown_pct,equity_snapshots) alongside the existingmax_drawdownon the realized-PnL curve. Existing fields are unchanged. An invalid address now returns400instead of500.
Coverage
- Round-trip trades (
/performance,/top-trades): from 2025-09-10. - Account snapshots (
/equity-history,/account,equity_close, per-trade leverage): from 2026-09-05, hourly, accumulating from there. Leverage on trades closed before 2026-09-06 isnull. account_valuecovers the perp account only: spot balances and HIP-3 builder-dex positions are not included yet. A trader with no position and no perp balance returnsaccount_value: 0withperp_account_empty: true, which is a real zero rather than missing data.
HIP-4 permissionless support & order type on fills
HIP-4 permissionless support
Shipped alongside the Hyperliquid permissionless-HIP4 network upgrade (2026-08-29). HIP-4 prediction markets can now be deployed by third-party providers, a deployer address operating a named venue, not only by the Hyperliquid oracle. The API attributes every market, question and fill to its provider. Markets with no on-chain venue (pre-upgrade markets, and markets still emitted by the HL oracle pipeline) are reported under the reserved provider nameoracle so aggregates are complete, see Permissionless providers and the oracle convention.New endpoints
GET /hip4/providers: Per-provider trading statistics aggregated from fills (markets_traded,fills,volume_usdc,unique_users,fees,last_trade), sorted byvolume_usdcdescending. Filters:venue(a venue name, ororacle),start/end(ISO datetime, inclusive),limit/offset. Settlement rows are excluded from all aggregates; a new permissionless venue appears automatically after its first fill.GET /hip4/deployers: The permissionless deployer registry, refreshed from chain metadata every ~10 s:deployer,venue,fee_scale,sub_deployers(a JSON string to parse:[action, [addresses]]pairs of delegated permissions per venue),updated_at.
Updated endpoints
GET /hip4/markets(alias/hip4/outcomes): Three new fields on every market row:venue(""for oracle-emitted markets),deployer(""whenvenueis empty),deployer_fee_scale(0when not applicable). Everything else unchanged.GET /hip4/fills: Two new fields on every fill row:venueanddeployer, joined from the market of the fill’s outcome. The existingmarket_name/market_descriptionfields are unchanged.GET /hip4/questions: Two new fields on every question row:venueanddeployer, derived from the question’s outcomes (resolved via the fallback outcome’s market). Legacy questions reportvenue="oracle",deployer="".
Order type on fills (2026-08-28)
New opt-in query parameterinclude_order_type (boolean, default false) on GET /fills/, GET /fills/recent and GET /fills/user/{user_address}. When true, each fill row gains one field:orderType(string or null): the originating order’s type, resolved server-side from the order status by (user, oid). Observed values includeLimit,Market,Stop Market,Take Profit Limit(an open set, not an enum).- With the default
false, the response is byte-identical to before, the key is absent, not null, so existing integrations are unaffected. orderTypeisnullwhen the originating order status is unknown: orders placed before 2026-06-27 (start of order-status coverage), plus a small share of gaps in that dataset.- Cost: roughly tens of milliseconds per page of 1000 fills.
HIP-3 upgrade support
The indexer now tracks two new L1 actions tied to the HIP-3 upgrade:
agentSendAsset: agent transfers between dexes for the same user.hip3LiquidatorTransfer: deposit/withdraw of principal on the backstop of a HIP-3 dex.
New endpoints
All grouped under/evm/hip3/backstop/*. The backstop address for a dex is 0x4000…00 + dex_index.Principal flows: built from local hip3LiquidatorTransfer rows:GET /evm/hip3/backstop/transfers: Filterable list of backstop principal transfers (filters:dex,signer,is_deposit, time range).GET /evm/hip3/backstop/transfers-summary: Per-dex aggregate:total_deposited_usdc,total_withdrawn_usdc,net_principal_usdc,unique_signers.
GET /evm/hip3/backstop/health: Health overview of every observed HIP-3 backstop. Returns one row per dex (combined principal + fill counters, last/first fill, fees paid, active coins).GET /evm/hip3/backstop/{dex}/health: Same payload for a single dex. Returns404if no backstop activity has ever been observed for that dex.GET /evm/hip3/backstop/{dex}/fills: Paginated stream of raw fills absorbed by the backstop. Filters:coin,side, time range.
Updated endpoints
GET /evm/ledger/transfers: Response extended withsource_dexanddestination_dex(populated foragentSendAsset).action_type=agentSendAssetis now a supported filter value.GET /evm/user/{address}/ledger-events: Newagent_sendevent type, exposingsource_dexanddestination_dex.