Skip to main content

Hyperliquid Data Streams

Updated on
Jan 07, 2026

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 Type
TRADES
Description
All executed trades with price, size, and direction
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Trading analytics, price tracking
Stream Type
ORDERS
Description
Order lifecycle events (18+ status types including fills, cancellations)
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Order management, execution monitoring
Stream Type
BOOK_UPDATES
Description
Order book changes with bid/ask prices and quantities
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Market depth analysis, liquidity monitoring
Stream Type
TWAP
Description
TWAP execution data and algorithm progress
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Algorithmic trading, execution analytics
Stream Type
EVENTS
Description
Balance changes, transfers, deposits, withdrawals, vault operations
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Fund flow analysis, account monitoring
Stream Type
BLOCKS
Description
Raw L1 blockchain data (all transaction types)
API Availability
gRPC only
Primary Use Case
Blockchain analysis, data archiving
Stream Type
WRITER_ACTIONS
Description
HyperCore ↔ HyperEVM asset transfers and bridge data
API Availability
gRPC + JSON-RPC/WSS
Primary Use Case
Cross-environment asset tracking, DeFi analytics

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

Field
Type
Description
local_time
string
Local server timestamp in ISO 8601 format
block_time
string
Blockchain block timestamp in ISO 8601 format
block_number
integer
Sequential block number on Hyperliquid chain
events
array
Array of events specific to the stream type

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.

Share this doc