Data and limits

Quaestor reads Hyperliquid's public info API (POST https://api.hyperliquid.xyz/info). It is free and needs no key.

What is indexed

Data Endpoint Reach
Fills userFillsByTime (2,000 per page) Documented as the 10,000 most recent fills; paging forward by time often reaches further, but not back to the first fill of a long-running, busy account
Live fills websocket userFills Up to 10 accounts at once (Hyperliquid's per-IP limit for user subscriptions); every account is also polled each minute
Funding userFunding (paged by time) Full history
Deposits, withdrawals, transfers, liquidations userNonFundingLedgerUpdates (paged by time) Full history
Account value and PnL portfolio (all-time, month, week and day windows merged) Full account life, sampled by Hyperliquid
Positions and leverage clearinghouseState Snapshot every ten minutes
Sub-accounts, API wallets, account type subAccounts, extraAgents, userRole Current
BTC and HYPE daily closes candleSnapshot About three years

Requests are spaced 1.5 s apart, about 800 weight per minute, under Hyperliquid's 1,200.

The 10,000-fill limit

Returns, drawdown, Sharpe and Sortino use the account value and PnL history, which covers the whole account life. Trade statistics (win rate, leverage rebuilt from fills, wash checks) use the fills on record. When the first backfill of an account comes back full (about 10,000 fills), older fills are assumed out of reach and the record carries the partial-history note.

Full history from S3: switched off

Hyperliquid publishes every fill since launch in the S3 bucket hl-mainnet-node-data. That bucket is requester pays: every read is billed to the reader. Stage A does not read it.

The backfill is built so it can be plugged in later: apps/engine/src/backfill.ts defines a BackfillSource interface with an api source (on) and an s3 source (off, throws if called). To enable it, implement S3Source.fills() to stream node_fills_by_block for the account and set S3_BACKFILL=on with AWS credentials. Nothing else changes: fills land in the same table and the Merkle root covers them.

Example accounts

The site shows a handful of well-known public Hyperliquid vaults as example accounts (apps/engine/src/examples.ts). They are indexed from public data with the same code, labelled as examples on every page, never posted on chain, and never presented as Quaestor agents.