# Hyperliquid Ledger and Funding — Bitquery Data Store HyperCore ledger events: deposits, withdrawals, sends, vault flows, funding payments, staking and bridge events, plus actions written from HyperEVM contracts. Dataset page: https://bitquery.io/datastore/datasets/hyperliquid-ledger Network: Hyperliquid Category: Transfers, Events Tables: 2 Columns: 65 Coverage: first block to 2026-09-23 Format: Apache Parquet, Snappy compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is Hyperliquid ledger and funding data from the HyperCore L1. The misc_events table holds every non-trading account event: ledger updates (deposits, withdrawals, sends, sub-account and account class transfers, vault flows), funding payments, bridge deposits and withdrawals, staking delegations, validator rewards and gossip. InnerType says which event a row is, and only that group's columns are filled. The core_writer_actions table records actions HyperEVM contracts wrote into HyperCore through the CoreWriter precompile, with the HyperEVM transaction hash that triggered each. Balances are not a table here; derive them by summing ledger deltas per User and Token from a known starting point, and add the fills from the Hyperliquid Trades dataset for perp position changes. Amounts are decimal strings, addresses are 0x-prefixed hex, and Time is epoch nanoseconds. ## What people use it for - Deposit, withdrawal and transfer flows by wallet, token and day - Funding payments received and paid per wallet and market - Vault deposits, withdrawals and leader commissions - HyperEVM to HyperCore activity: spot sends, orders and transfers placed through CoreWriter, with the EVM transaction hash ## Tables (2) ### misc_events — 38 columns Ledger updates (deposits, withdrawals, sends, transfers, vault flows), funding payments, bridge events, delegations, validator rewards and gossip. InnerType says which; only that group's columns are filled. S3 prefix: hyperliquid/misc_events File naming: _.parquet, 200 blocks per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/hyperliquid/misc_events/1075858800_1075858999.parquet Sample updated: Sep 2, 2026 | column | type | description | | --- | --- | --- | | Block_Number | UInt64 | HyperCore block number; the join key across all seven tables | | Block_Time | UInt64 | Block time, epoch nanoseconds | | Time | UInt64 | Event time, epoch nanoseconds | | Hash | String | L1 transaction hash, 0x-prefixed hex; not a join key, one transaction spans many events and TWAP trades carry 32 zero bytes | | InnerType | String | Which event this row is: LedgerUpdate, Funding, CDeposit, CWithdrawal, Delegation, ValidatorRewards or Gossip | | LedgerUpdate_Users | Array | Accounts touched by the ledger update | | LedgerUpdate_Delta_Type | String | Ledger delta type: send, deposit, withdraw, accountClassTransfer, subAccountTransfer, vaultDeposit, and so on | | LedgerUpdate_Delta_User | String | Account the delta applies to | | LedgerUpdate_Delta_Amount | Decimal | Amount moved, in the token's units | | LedgerUpdate_Delta_Token | String | Token moved, for example USDC | | LedgerUpdate_Delta_Usdc | Decimal | USDC amount for deltas denominated in USDC, else null | | LedgerUpdate_Delta_UsdcValue | Decimal | USD value of the delta | | LedgerUpdate_Delta_Destination | String | Receiving account for sends and transfers | | LedgerUpdate_Delta_DestinationDex | String | Destination HIP-3 dex for cross-dex transfers, empty otherwise | | LedgerUpdate_Delta_SourceDex | String | Source HIP-3 dex for cross-dex transfers, empty otherwise | | LedgerUpdate_Delta_Fee | Decimal | Fee charged on the delta | | LedgerUpdate_Delta_FeeToken | String | Token the fee was charged in, empty when no fee | | LedgerUpdate_Delta_NativeTokenFee | Decimal | Fee charged in the native token | | LedgerUpdate_Delta_Nonce | UInt64 | Nonce of the originating action | | LedgerUpdate_Delta_ToPerp | Bool | For account class transfers: true when moving spot to perp, else null | | LedgerUpdate_Delta_Operation | Nullable(String) | Operation label for vault and staking deltas, else null | | LedgerUpdate_Delta_InterestAmount | Decimal | Interest component for lending deltas, else null | | LedgerUpdate_Delta_Vault | String | Vault address for vault deltas, else null | | LedgerUpdate_Delta_Basis | Decimal | Cost basis for vault withdrawals, else null | | LedgerUpdate_Delta_ClosingCost | Decimal | Closing cost for vault withdrawals, else null | | LedgerUpdate_Delta_Commission | Decimal | Vault leader commission, else null | | LedgerUpdate_Delta_NetWithdrawnUsd | Decimal | Net USD withdrawn from a vault, else null | | LedgerUpdate_Delta_RequestedUsd | Decimal | USD requested in a vault withdrawal, else null | | LedgerUpdate_Delta_IsDeposit | Bool | True for deposit-type deltas, else null | | LedgerUpdate_Delta_Extra | Map | Forward-compatibility map; non-empty when the node emitted a field not yet modelled | | LedgerUpdate_Extra | Map | Forward-compatibility map; non-empty when the node emitted a field not yet modelled | | Funding | Map | Funding payment details when InnerType is Funding, else null | | CDeposit | Map | Bridge deposit details when InnerType is CDeposit, else null | | CWithdrawal | Map | Bridge withdrawal details when InnerType is CWithdrawal, else null | | Delegation | Map | Staking delegation details when InnerType is Delegation, else null | | ValidatorRewards | Map | Validator reward details when InnerType is ValidatorRewards, else null | | Gossip | Map | Gossip event details when InnerType is Gossip, else null | | Extra | Map | Forward-compatibility map; non-empty when the node emitted a field not yet modelled | ### core_writer_actions — 27 columns Actions written into HyperCore from HyperEVM contracts through the CoreWriter precompile: spot sends, orders, vault and class transfers, staking, with the HyperEVM transaction hash. S3 prefix: hyperliquid/core_writer_actions File naming: _.parquet, 200 blocks per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/hyperliquid/core_writer_actions/1075858800_1075858999.parquet Sample updated: Sep 2, 2026 | column | type | description | | --- | --- | --- | | Block_Number | UInt64 | HyperCore block number; the join key across all seven tables | | Block_Time | UInt64 | Block time, epoch nanoseconds | | User | String | System address that emitted the action, 0x-prefixed hex | | Nonce | UInt64 | Action nonce | | EvmTxHash | String | HyperEVM transaction hash that triggered the action, 0x-prefixed hex | | Action_Type | String | Action type, for example SystemSpotSendAction, LimitOrderAction, VaultTransferAction | | Action_Destination | String | Destination address for send actions, else null | | Action_Token | UInt64 | Token index for send actions, else null | | Action_Wei | UInt64 | Amount in wei for send actions, else null | | Action_DestinationDexOrSpot | Nullable(String) | Destination dex or spot for transfers, else null | | Action_SourceDexOrSpot | Nullable(String) | Source dex or spot for transfers, else null | | Action_FromSubAccount | String | Sub-account the action came from, else null | | Action_Ntl | Decimal | Notional for USD class transfers, else null | | Action_ToPerp | Bool | For class transfers: true when moving to perp, else null | | Action_Grouping | Nullable(String) | Order grouping (na, normalTpsl, positionTpsl) for order actions, else null | | Action_Orders | Array | Orders placed by an order action, empty otherwise | | Action_AgentAddress | String | Agent address for approve-agent actions, else null | | Action_AgentName | Nullable(String) | Agent name for approve-agent actions, else null | | Action_SignatureChainId | Nullable(String) | Chain id the action was signed for, else null | | Action_HyperliquidChain | Nullable(String) | Mainnet or Testnet, else null | | Action_Validator | String | Validator address for staking actions, else null | | Action_IsUndelegate | Bool | True for undelegate actions, else null | | Action_ActionNonce | UInt64 | Nonce inside the signed action, else null | | Action_Builder | String | Builder address for approve-builder-fee actions, else null | | Action_MaxFeeRate | Nullable(String) | Maximum builder fee rate approved, else null | | Action_Extra | Map | Forward-compatibility map; non-empty when the node emitted a field not yet modelled | | Extra | Map | Forward-compatibility map; non-empty when the node emitted a field not yet modelled | ## Price - Latest month (Aug 23, 2026 → Sep 23, 2026): $75 one-time, USD One-time purchase. The files are yours to keep under the licence above. ## Questions buyers ask Q: What is included in Hyperliquid Ledger and Funding? A: Two Parquet tables from HyperCore: misc_events and core_writer_actions, with 65 documented columns. Every row carries Block_Number and Block_Time, so the tables join on block with each other and with the Hyperliquid Trades and Order Book datasets. Q: How big is it? A: Small next to the order book. In a measured 1,000-block slice (about 73 seconds) we counted 32 misc events and 10 CoreWriter actions. Scaled to a day that is roughly 40,000 ledger rows; exact row counts and sizes come with the delivery manifest, and these figures are estimates. Q: Does it include account balances? A: No. It includes every event that changes a balance, so balances can be derived per User and Token by summing LedgerUpdate_Delta_Amount from a starting point. Perp position changes come from fills in the Hyperliquid Trades dataset. Q: How do I find funding payments? A: Filter misc_events on InnerType = Funding. The Funding column holds the payment details for that row; the LedgerUpdate_ columns are null on funding rows. Q: What is a CoreWriter action? A: A HyperEVM smart contract calling into HyperCore: placing an order, sending spot tokens, moving funds to a vault, staking. Each row names the action type, its fields and the EvmTxHash on HyperEVM that caused it, so the two chains can be joined. Q: How far back does it go? A: 30 days. HyperCore history is kept as a rolling 30-day window, so a purchase covers the 30 days up to yesterday and there is no longer window to buy. For a continuous feed beyond that, ask about the live stream. Q: Why are there two time units? A: Because the node emits them that way and we keep the values as emitted. Block_Time and the Time column on statuses and events are epoch nanoseconds; Fill.Time and Order.Timestamp are epoch milliseconds. Divide by 1e9 or 1e3 respectively when converting to timestamps. Q: What does a non-empty Extra column mean? A: The node emitted a field that the schema does not model yet, and we kept it rather than dropping it. Extra is empty on nearly every row. When a new field appears it lands there first, so nothing is silently lost between schema versions. Q: How do I load a file? A: With DuckDB: SELECT * FROM read_parquet('fills/*.parquet'). With pandas: pd.read_parquet('fills/'). Parse Px, Sz, Fee and the other money columns with Decimal rather than float; they are stored as decimal strings on purpose. Q: Does this match the live stream? A: Yes. These field definitions are the ones Bitquery's Hyperliquid Kafka topics use, so a backtest reading this archive and a production consumer reading the live stream decode with the same code. Q: How is the data delivered, and how current is it? A: As flat Parquet files under a stable S3 layout, one prefix per table and one file per 200-block range, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed once the files are prepared. Refreshed daily with T+1 latency; a purchase made today includes everything up to yesterday. Q: Can I try before I buy? A: Yes. Every table links to a public sample Parquet file from a real 1,000-block slice, and the sample repository on GitHub shows the first records of each table as readable JSON. No email address required. ## What this file is, and is not This is a description of one dataset sold by Bitquery, written for assistants and for people. It lists every column, but holds no data rows — the sample files linked under each table are real Parquet and are free to download. Figures here come from the product record and are exact unless marked otherwise; the delivery manifest is authoritative for a purchased file. If a question needs a row that is not in a sample, say so rather than guessing at it.