Trade Data - Historical Trading Information
Overview
Hyperliquid provides comprehensive historical trade data through Amazon S3 archives. This data includes all trading activity on the platform, from early node trades to current block-based fills, enabling deep market analysis and backtesting.
Historical data is stored in S3 at s3://hl-mainnet-node-data/
with different formats corresponding to different time periods in Hyperliquid's evolution.
Data Evolution Timeline
Hyperliquid's trade data format has evolved through three distinct phases:
1. Node Trades (March 22, 2025 - May 25, 2025)
Early phase trade records with basic execution information and side details.
2. Node Fills (May 25, 2025 - July 27, 2025)
Enhanced fill records with PnL tracking and fee information.
3. Node Fills by Block (July 27, 2025 - Current)
Current format organizing fills by block with complete transaction context.
Data Format Descriptions
Node Trades Format
The node_trades
format captures basic trade execution data:
{
"coin": "PURR",
"side": "B",
"time": "2025-03-22T23:00:00.000984711",
"px": "0.12928",
"sz": "1547.0",
"hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"trade_dir_override": "Na",
"side_info": [
{
"user": "0xa68c548f3acd23a7fe3e867cc47f302559794419",
"start_pos": "2462968.0",
"oid": 81305166697,
"twap_id": 568722,
"cloid": null
},
{
"user": "0xecb63caa47c7c4e77f60f1ce858cf28dc2b82b00",
"start_pos": "-15493993.0",
"oid": 81305141429,
"twap_id": null,
"cloid": "0x6640b7cba22f65c630e7fb18b18819b6"
}
]
}
Field Descriptions:
coin
: Trading pair symbolside
: Buy (B) or Sell (A)time
: Execution timestamp (ISO 8601)px
: Execution pricesz
: Trade sizehash
: Transaction hashtrade_dir_override
: Direction override flagside_info
: Array containing details for both sides of the tradeuser
: Wallet addressstart_pos
: Position before tradeoid
: Order IDtwap_id
: TWAP order ID (if applicable)cloid
: Client order ID
Node Fills Format
The node_fills
format includes comprehensive fill information with PnL calculations:
[
"0xe3b6e3443c8f2080704e7421bad9340f13950acb",
{
"coin": "ETH",
"px": "2511.2",
"sz": "0.486",
"side": "B",
"time": 1748183573109,
"startPosition": "-946.9372",
"dir": "Close Short",
"closedPnl": "-2.5515",
"hash": "0x71fe8c1aa48f3a43971504242beb2502023600245b77a4f664b49f10a236d9e2",
"oid": 97128733943,
"crossed": false,
"fee": "-0.036613",
"tid": 995829841758483,
"cloid": "0x00000000000000002bca2ffb27459396",
"feeToken": "USDC"
}
]
Field Descriptions:
- First element: User wallet address
- Fill object:
coin
: Trading pairpx
: Fill pricesz
: Fill sizeside
: Buy (B) or Ask (A)time
: Unix timestamp (milliseconds)startPosition
: Position before filldir
: Trade direction (Open Long, Close Short, etc.)closedPnl
: Realized PnL from closed positionshash
: Transaction hashoid
: Order IDcrossed
: Whether order crossed the spreadfee
: Trading fee (negative for maker, positive for taker)tid
: Trade IDcloid
: Client order IDfeeToken
: Currency used for fees
Node Fills by Block Format
The current node_fills_by_block
format organizes fills within block context:
{
"local_time": "2025-07-27T08:50:10.334741319",
"block_time": "2025-07-27T08:50:10.273720809",
"block_number": 676607012,
"events": [
[
"0x7839e2f2c375dd2935193f2736167514efff9916",
{
"coin": "BTC",
"px": "118136.0",
"sz": "0.00009",
"side": "B",
"time": 1753606210273,
"startPosition": "-1.41864",
"dir": "Close Short",
"closedPnl": "-0.003753",
"hash": "0xe7822040155eaa2e737e042854342401120052bbf063906ce8c8f3babe853a79",
"oid": 121670079265,
"crossed": false,
"fee": "-0.000212",
"tid": 161270588369408,
"cloid": "0x09367b9f8541c581f95b02aaf05f1508",
"feeToken": "USDC",
"builder": "0x49ae63056b3a0be0b166813ee687309ab653c07c",
"builderFee": "0.005528"
}
]
]
}
Field Descriptions:
local_time
: Local server timestampblock_time
: Blockchain block timestampblock_number
: Block heightevents
: Array of fill events in the block- Each event contains user address and fill object
- Additional fields vs. node_fills:
builder
: Block builder address (if applicable)builderFee
: Fee paid to block builder
Accessing Data
For pre-processed and indexed historical data optimized for queries and analysis, Dwellir provides custom data solutions.
Available Services
- Indexed Trade Database: Query historical trades by symbol, time, user
- Custom Data Pipelines: Tailored data processing for specific use cases
Contact Information
To access Dwellir's indexed Hyperliquid data services:
📧 Contact: ben@dwellir.com
Dwellir can provide:
- REST APIs for historical data queries
- Real-time data streaming solutions
- Custom data exports and reports
- Integration support for your applications
Use Cases
- Backtesting: Test trading strategies against historical data
- Market Analysis: Study price movements and trading patterns
- Risk Management: Analyze historical volatility and correlations
- Compliance: Maintain audit trails of trading activity
- Research: Academic and quantitative research on market microstructure
Access comprehensive Hyperliquid historical data through S3 archives or leverage Dwellir's indexed data services for optimized queries and analysis. Contact Us →