Skip to main content

Solana HyperSync

Highly experimental

Solana HyperSync is highly experimental: the API may change without notice and stability is not guaranteed.

Only the most recent chain data is retained: a rolling window—not a fixed history from one slot forever. The current retention floor is roughly slot 391791680; as new slots are indexed, older slots fall off. Use GET https://solana.hypersync.xyz/height for the current synced head and do not hard-code historical lower bounds.

HyperSync for Solana exposes https://solana.hypersync.xyz: one JSON (or Arrow) API over slots, transactions, instructions, logs, balances, token balances, and rewards. Use the Rust client or any HTTP client (for example curl). Details: Query & Response, curl Examples.

Slots vs blocks: Some slots have no block (skipped leader, etc.). A query over [from_slot, to_slot) can return fewer block rows than the slot span implies; that is normal, not a bug.

Differences vs EVM HyperSync

ConceptEVMSolana
Unit of progressblockslot
Range boundsfrom_block / to_blockfrom_slot / to_slot
Primary filterlogs, transactions, tracesinstructions, transactions, logs
Match keyevent topic + addressprogram ID + discriminator + account positions
LogsContract events (topics + structured log data)Program output lines (free-form strings; filter by emitter program_id and parsed kind)
Paginationnext_blocknext_slot

Endpoints

PathDescription
POST /queryJSON query, JSON response.
POST /query/arrowSame JSON query; response is Apache Arrow IPC (stream-encoded record batches—typically smaller and faster to decode than JSON).
GET /heightCurrent synced slot (JSON). Example: curl https://solana.hypersync.xyz/height.
GET /height/sseServer-sent events stream of the head slot (see curl Examples).
GET /healthHealth check.
POST /, POST /rpcExperimental Solana JSON-RPC-compatible facade for tooling that already speaks JSON-RPC; coverage may be incomplete—prefer POST /query for indexing.

Minimal first query

curl -sS "https://solana.hypersync.xyz/query" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from_slot": 391800000,
"to_slot": 391800010,
"fields": { "instruction": ["slot", "program_id", "d8"] },
"instructions": [
{ "program_id": ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"] }
]
}'

Expect JSON with instructions (and any joined tables you asked for), next_slot, optional rollback_guard, and other keys empty or omitted. API tokens are the same as for EVM HyperSync (Authorization: Bearer).