> ## Documentation Index
> Fetch the complete documentation index at: https://tokenterminal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To query the Token Terminal data catalog, read https://tokenterminal.com/docs/catalog/agents-manual.md first. It is the whole catalog as one page: table naming grammar, key columns, partition and cluster rules, units, additivity, and the tables that are documented but not served yet.
> Never query a catalog table on a time bound alone. Also filter its cluster key, which you read from INFORMATION_SCHEMA.COLUMNS; an empty result means the object is a view, whose pruning contract is on its page. Compute is billed to the caller's own Google Cloud project.

# Raw

> The standardized HyperCore blocks, fills, orders, book changes and funding settlements.

The `hypercore` dataset holds the standardized HyperCore tables. HyperCore is an exchange rather than a general-purpose chain, so where an EVM chain publishes logs and internal calls, HyperCore publishes the streams its matching engine emits: what filled, what was ordered, how the book moved, and what funding was settled.

## Tables

<table>
  <thead>
    <tr>
      <th width="290">Table</th>
      <th width="140">Since</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`blocks`</td>
      <td>2025-07</td>
      <td>One row per block, with the number of records each stream emitted in it.</td>
    </tr>

    <tr>
      <td>`node_trades`</td>
      <td>2025-03</td>
      <td>One row per side of a trade, the taker's and the maker's, in a slim shape: the account, market, side, price, size and whether that side was the taker.</td>
    </tr>

    <tr>
      <td>`node_fills`</td>
      <td>2025-07</td>
      <td>One row per fill, in the full shape: the fee and the token it was paid in, the builder credited, the position direction and the liquidation fields where the fill closed a position.</td>
    </tr>

    <tr>
      <td>`node_fills_without_block_number`</td>
      <td>2025-05 to 2025-07</td>
      <td>The fills the node recorded before block numbers were attached to them, in the same shape as `node_fills`.</td>
    </tr>

    <tr>
      <td>`node_funding`</td>
      <td>2025-09</td>
      <td>One row per market per funding settlement, with the rate it applied and the amount settled on each side.</td>
    </tr>

    <tr>
      <td>`events`</td>
      <td>2025-09</td>
      <td>One row per exchange event outside trading, typed by `event_kind` and, for ledger updates, by `ledger_type`.</td>
    </tr>

    <tr>
      <td>`orders`</td>
      <td>2025-11</td>
      <td>One row per order status change, with the limit price, the size, the order type and the time in force.</td>
    </tr>

    <tr>
      <td>`book`</td>
      <td>2025-11</td>
      <td>One row per change to a resting order level, with the price and the level size before and after.</td>
    </tr>

    <tr>
      <td>`twap`</td>
      <td>2025-11</td>
      <td>One row per state change of a TWAP order, with the size and notional executed so far, and the stop price and trigger where the order sets them.</td>
    </tr>

    <tr>
      <td>`writer_actions`</td>
      <td>2025-12</td>
      <td>One row per action written into HyperCore from HyperEVM, such as a spot send or a delegation, with the EVM transaction that sent it.</td>
    </tr>
  </tbody>
</table>

Blocks are keyed on `block_number`, fills on `block_number`, `coin` and `trade_id` together with the account and side, trades on `trade_timestamp`, `coin`, `trade_id` and `is_taker` from 2025-05-25, orders and TWAPs on `order_id` and `twap_id`, and funding on the market and settlement time. `coin` is the market symbol as the venue lists it, and it is the join back to the market registries on [Perpetuals](https://tokenterminal.com/docs/catalog/chain-verticals/hyperliquid/perpetuals.md).

Three columns hold JSON, because their shape depends on a type column: `event_json` in `events`, `children` in `orders` and `action` in `writer_actions`. Read the type column first, then extract the fields that type defines.

## Sample queries

> [!WARNING]
>
> Every table splits by day on `block_timestamp`. Bound it in every query and keep it bare on the left of the comparison; wrapping it in a function reads every partition. `book` and `orders` hold every resting-order change and every order state change, so they are the two largest tables here: bound them to a single day.

**Daily trading**

**Count daily trades and the accounts behind them.** `node_trades` holds one row per side of a trade, and the taker row counts each trade once. It is the slim trade stream, the lowest-cost table for volume and participation questions.

```sql theme={null}
select
    timestamp_trunc(block_timestamp, day) as day,
    countif(is_taker) as trades,
    count(distinct account_address) as accounts
from `hypercore.node_trades`
where block_timestamp >= timestamp('2026-08-16')
  and block_timestamp < timestamp('2026-08-23')
group by day
order by day
```

**Busiest markets**

**Rank markets by notional traded on one day, with the fees they produced.** A fill's notional is its price times its size, and both are BIGNUMERIC, so the multiplication stays exact.

```sql theme={null}
select
    coin,
    count(*) as fills,
    sum(price * size) as notional,
    sum(fee) as fees
from `hypercore.node_fills`
where block_timestamp >= timestamp('2026-08-20')
  and block_timestamp < timestamp('2026-08-21')
group by coin
order by notional desc
limit 20
```

**Funding settlements**

**Read the funding paid on each market over one week.** `funding_rate` is the rate the settlement applied, and the long and short amount columns split the settled amount by the side of the position.

```sql theme={null}
select
    coin,
    count(*) as settlements,
    avg(funding_rate) as average_rate,
    sum(long_funding_amount) as long_amount,
    sum(short_funding_amount) as short_amount
from `hypercore.node_funding`
where block_timestamp >= timestamp('2026-08-16')
  and block_timestamp < timestamp('2026-08-23')
group by coin
order by abs(sum(total_funding_amount)) desc
limit 20
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.