Overview
Hyperliquid provides several data streams that contain different types of blockchain and exchange events. These streams are available through both gRPC Streaming API and JSON-RPC/WebSocket APIs, allowing you to access real-time and historical data.
Available Data Streams
Stream Filtering
All Hyperliquid data streams support powerful filtering capabilities to help you receive only the data you need. Without filtering, streaming can generate massive amounts of data. Filters allow you to focus on specific trading pairs, users, event types, and more.
Key Benefits:
- Reduced bandwidth - Receive only relevant data instead of processing everything
- Focused applications - Build targeted apps without overwhelming data streams
- Real-time efficiency - Process specific events faster for alerts and decision making
Example filters:
{
"streams": ["trades"],
"filters": {
"coin": ["BTC", "ETH"], // Only BTC and ETH trades
"side": ["B"], // Only buy orders
"user": ["0x123..."] // Only specific user's trades
}
}
Complete Filtering Guide - Detailed documentation with syntax, examples, and field references for all stream types.
Stream Structure
All data streams follow a consistent structure:
{
"local_time": "2025-12-04T17:52:45.734593237",
"block_time": "2025-12-04T17:52:45.554315846",
"block_number": 817863403,
"events": [
// Array of events specific to the stream type
]
}
Common Fields
Data Stream Details
Each data stream has its own unique event structure and use cases:
- Stream Filtering - Complete guide to filtering all stream types with syntax and examples
- Trades - Executed trade data with maker/taker information
- Orders - Complete order lifecycle tracking with 18+ status types
- Book Updates - Real-time order book changes for market depth analysis
- TWAP - Time-weighted average price execution tracking
- Events - Balance changes, transfers, deposits, withdrawals, and vault operations
- Blocks - Raw blockchain data (gRPC only)
- Writer Actions - HyperCore ↔ HyperEVM asset transfers and bridge data
Access Methods
gRPC Streaming API
All streams are available via the gRPC Streaming API for high-performance, real-time data access:
// Subscribe to multiple streams
subscribe: {
stream_type: 'TRADES',
start_block: 0,
filters: {
"coin": ["BTC", "ETH"],
"user": ["0x123..."]
}
}
JSON-RPC API
Historical data access via JSON-RPC methods:
# Get latest blocks
curl -X POST https://your-endpoint.hype-mainnet.quiknode.pro/your-token/hypercore \
-d '{"method": "hl_getLatestBlocks", "params": {"stream": "trades", "count": 10}}'
# Get specific block
curl -X POST https://your-endpoint.hype-mainnet.quiknode.pro/your-token/hypercore \
-d '{"method": "hl_getBlock", "params": ["trades", 817863403]}'
WebSocket API
Real-time subscriptions via WebSocket:
ws.send(JSON.stringify({
"method": "hl_subscribe",
"params": {"streams": ["trades", "orders"]}
}));
For detailed information about each stream type, click on the links above or navigate through the sidebar.