Click here if you are looking for the EVM compatible chain HyperEVM

On Hyperliquid DEX Trades:

Hyperliquid DEX Trades are fully backfilled for every address, except for ~4,000 traders (~1% of traders) who had made more than 10k trades at the time of backfill in March 2025. This is because the Hyperliquid API only makes the last 10k trades available, and there are no other ways to retrieve the missing historical data. This means the following data is available:

  • pre-March 2025: all trades are available for all addresses, except for ~4,000 traders, where only the last 10k trades are available
  • March 2025 onwards: all trades are available for all addresses

On Hyperliquid Orders:

Hyperliquid Orders cannot be backfilled.

Data is available since we started running non validator nodes in house. Though we’ve tried to minimise the possibility of missing data, with reduncy, gaps may exist if node failures occur.

Tables

Using hyperliquid.dex.trades is recommended as it enriches the raw.trades table with relevant trade & token metadata

Table NameDescription
hyperliquid.raw.tradesRaw Hyperliquid spot & perpetual trades data This is available as a real-time Kafka stream without the extra_fields column.
hyperliquid.dex.tradesEnriched Hyperliquid spot & perpetual trades data.
hyperliquid.raw.tokensList of tokens that are traded on Hyperliquid DEX, with token metadata such as token name and symbol. Currently only includes spot tokens.
hyperliquid.assets.transfersToken transfers on Hyperliquid L1. Currently only includes deposits & withdrawals for Arbitrum. (Coming Soon) Bitcoin, Ethereum, Solana.
hyperliquid.raw.ordersShows order status changes. So when an order goes from open, to filled, cancelled or any other possible status.
See FAQ - Why are there missing orders in the raw.orders table?
hyperliquid.raw.blocksBlocks metadata.
hyperliquid.raw.transactionsTransactions data for each block on Hyperliquid.

Table Columns

Column NameDescription
market_typeThe type of market for the trade, e.g. spot, perpetuals
coinA unique identifier for the asset being traded: • The coin for perpetuals is the standard token symbol, e.g. HYPE • The coin for spot tokens is an ID representing a pair of tokens based on Hyperliquid’s metadata, e.g. @4 (coin) represents token 5/token 0, which corresponds to JEFF/USDC The metadata is available from the info endpoint of Hyperliquid’s API
token_a_symbolThe symbol of the first token in the trading pair
token_b_symbolThe symbol of the second token in the trading pair. At the moment, this is always USDC
amountThe quantity of token_a being traded (normalized)
priceThe execution price of token_a for the trade, in terms of token_b (usually USDC)
usd_amountThe quantity of token_a being traded, in USD terms
buyer_addressThe address of the buyer in the trade
seller_addressThe address of the seller in the trade
timestampThe UTC timestamp of when the trade was executed
transaction_hashThe transaction hash for the trade. There can be multiple trades (i.e. multiple records with different trade_id) for the same transaction_hash. *See notes for Null Transaction hash.
trade_idAn identifier for the trade. Some historical trades share a tid of 0
unique_idA unique identifier for each trade
extra_fieldsAdditional information for each trade. See notes for more details.

Notes

The extra_fields column contains additional information for each trade including fees and liquidation details. Some caveats to be aware of:

  • New trades are first fetched from Hyperliquid Websocket API, so the extra_fields are initially unavailable. We attempt to refetch all new trades via the Info endpoint, to source the extra_fields. Given the 10k transaction limit on the API, it’s possible that some trades cannot be refetched.
  • Because of the above, trades may have:
    • extra_fields not populated with buyer or seller details: this means the trade could not be backfilled with additional information. These can be identified by extra_fields:source = 'api.hyperliquid.xyz/ws'
    • extra_fields populated with one of the buyer or seller details: we were able to backfill details for one side of the trade (i.e. the buy side or sell side)
    • extra_fields populated with both buyer and seller details: we were able to backfill details for both sides of the trade

**Sample on **

{
  "buyer": {
    "builder_fee": null,
    "closed_pnl": "0.0",
    "crossed": true,
    "dir": "Open Long",
    "fee": "0.0",
    "fee_token": "USDC",
    "liquidation": null,
    "order_id": 80667495079,
    "start_position": "99492.0"
  },
  "seller": {
    "builder_fee": null,
    "closed_pnl": "0.0",
    "crossed": false,
    "dir": "Open Short",
    "fee": "0.0",
    "fee_token": "USDC",
    "liquidation": null,
    "order_id": 80667490005,
    "start_position": "-361760.0"
  },
  "source": "api.hyperliquid.xyz/info"
}

FAQs