⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

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 symbol
  • side: Buy (B) or Sell (A)
  • time: Execution timestamp (ISO 8601)
  • px: Execution price
  • sz: Trade size
  • hash: Transaction hash
  • trade_dir_override: Direction override flag
  • side_info: Array containing details for both sides of the trade
    • user: Wallet address
    • start_pos: Position before trade
    • oid: Order ID
    • twap_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 pair
    • px: Fill price
    • sz: Fill size
    • side: Buy (B) or Ask (A)
    • time: Unix timestamp (milliseconds)
    • startPosition: Position before fill
    • dir: Trade direction (Open Long, Close Short, etc.)
    • closedPnl: Realized PnL from closed positions
    • hash: Transaction hash
    • oid: Order ID
    • crossed: Whether order crossed the spread
    • fee: Trading fee (negative for maker, positive for taker)
    • tid: Trade ID
    • cloid: Client order ID
    • feeToken: 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 timestamp
  • block_time: Blockchain block timestamp
  • block_number: Block height
  • events: 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 →