Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

HyperLiquid Indexer

Complete perpetual trading data with nanosecond precision. Query every fill, funding payment, and TWAP execution.

:::info Access $200/month with trial available. Contact us to get started. :::


What's Indexed

TableDescriptionSize
fillsAll perpetual trade executions2.8B rows
fundingsFunding rate payments156M rows
twapsTWAP order executions12M rows
user_fundingsPer-user funding records89M rows

Coverage: All perpetual markets since May 2025. Updated in real-time.


Key Features

Nanosecond Timestamps

Every fill includes the exact microsecond it occurred—not just block time. Critical for:

  • Latency analysis between signal and execution
  • Cross-venue arbitrage timing (vs CEX, Solana)
  • Order flow pattern detection

Complete Position Context

Each trade includes:

  • Entry/exit price
  • Position size before and after
  • Realized PnL
  • Liquidation flags
  • TWAP correlation

Smart Wallet Discovery

Find wallets with consistent profitability patterns:

SELECT
    user,
    count(*) as trades,
    sum(closedPnl) / 1e6 as realized_pnl,
    sum(closedPnl) / nullIf(sum(abs(closedPnl)), 0) as win_rate
FROM fills
WHERE time > now() - INTERVAL 30 DAY
GROUP BY user
HAVING trades > 100
ORDER BY realized_pnl DESC
LIMIT 50

Sample Queries

Recent Large Fills

SELECT
    time,
    user,
    coin,
    side,
    px,
    sz,
    closedPnl / 1e6 as pnl_usd
FROM fills
WHERE time > now() - INTERVAL 1 HOUR
  AND sz * px > 100000  -- > $100k notional
ORDER BY sz * px DESC
LIMIT 20

Funding Rate History

SELECT
    toStartOfHour(time) as hour,
    coin,
    avg(fundingRate) as avg_funding,
    sum(fundingRate) as cumulative_funding
FROM fundings
WHERE time > now() - INTERVAL 7 DAY
  AND coin = 'BTC'
GROUP BY hour, coin
ORDER BY hour

TWAP Execution Analysis

SELECT
    user,
    coin,
    count(*) as twap_fills,
    sum(sz) as total_size,
    avg(px) as avg_price,
    min(time) as started,
    max(time) as ended
FROM twaps
WHERE time > now() - INTERVAL 24 HOUR
GROUP BY user, coin
ORDER BY total_size DESC
LIMIT 20

-> More examples


Connection Details

FieldValue
Host51.68.240.215
Port28123 (HTTP) / 29000 (native)
Databasehyperliquid

Python

import clickhouse_connect
 
client = clickhouse_connect.get_client(
    host='51.68.240.215',
    port=28123,
    username='your_user',
    password='your_pass',
    database='hyperliquid'
)
 
df = client.query_df("""
    SELECT * FROM fills
    WHERE time > now() - INTERVAL 1 HOUR
    LIMIT 1000
""")

DBeaver

  1. New Connection -> ClickHouse
  2. Host: 51.68.240.215, Port: 28123
  3. Database: hyperliquid
  4. Enter credentials and test connection

Next Steps

HyperLiquid Indexer$200/month
Unlimited queries · Direct support · Community access
Start Free Trial →
Join traders already using our infrastructure