> ## 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.

# Screener

> Every chain's latest figures and its apps' figures, with averages, totals and changes over six windows, in one row.

One row per chain in `screeners.chains`, every figure as of `as_of`, the last complete day. Each measure has a column per window and aggregation, named `<measure>_<window>_<aggregation>`: `fees_30d_sum` is the fees paid to the chain over the 30 days ending on `as_of`, and `app_fees_30d_sum` is the fees paid to the apps on it.

## Columns

<Tabs>
  <Tab title="Keys">
    The two key columns, then one FLOAT64 column per measure, window and aggregation. Every row is a chain in `dimensions.chains`, so the join on `chain_id` always matches.

    <table>
      <thead>
        <tr>
          <th width="230">Column</th>
          <th width="130">Type</th>
          <th>Description</th>
        </tr>
      </thead>

      <tbody>
        <tr><td><code>as\_of</code></td><td>TIMESTAMP</td><td>The last complete day, the same on every row. Every window ends on it.</td></tr>
        <tr><td><code>chain\_id</code></td><td>STRING</td><td>Chain the row belongs to, such as <code>ethereum</code>; joins <code>dimensions.chains</code>.</td></tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="Aggregations">
    A window is `1d`, `7d`, `30d`, `90d`, `180d` or `365d`, and spans that many days ending on `as_of`, while the `max_` columns read the whole history. Which aggregations a measure has follows its `over_time` in [Metric definitions](/docs/catalog/metric-definitions): only a measure whose `over_time` is `sum` has `sum`.

    <table>
      <thead>
        <tr>
          <th width="380">Column</th>
          <th>What it holds</th>
        </tr>
      </thead>

      <tbody>
        <tr><td><code>\<measure>\_\<window>\_avg</code></td><td>Mean of the daily values over the window.</td></tr>
        <tr><td><code>\<measure>\_\<window>\_sum</code></td><td>Total of the daily values over the window. Flows only: the measures ticked under Sum.</td></tr>
        <tr><td><code>\<measure>\_\<window>\_change</code></td><td>A comparison of two aggregations: the value on <code>as\_of</code> against the value one window earlier, as <code>(now - then) / abs(then)</code>. Null when either value is missing or the earlier one is 0.</td></tr>
        <tr><td><code>\<measure>\_\<window>\_trend</code></td><td>A comparison of two aggregations: the window's average against the average of the window before it, as <code>(avg - prior) / abs(prior)</code>. Null unless the window before has a value on every one of its days, and null when its average is 0.</td></tr>
        <tr><td><code>\<measure>\_max\_latest</code></td><td>The value on <code>as\_of</code>. Null when there is none.</td></tr>
        <tr><td><code>\<measure>\_max\_ath</code></td><td>The highest daily value over the chain's whole history.</td></tr>
        <tr><td><code>\<measure>\_max\_atl</code></td><td>The lowest daily value over the chain's whole history.</td></tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="Measures">
    Every measure has the `avg`, `change`, `trend` and `max_` columns, and the flows also have `sum`. The `app_` measures are the apps on the chain added together. Price, market cap and developers sit on the [project screener](/docs/catalog/projects/screener), for the project `dimensions.chains` names in `project_id`.

    <div class="tt-roster">
      <table class="tt-coverage">
        <thead>
          <tr>
            <th width="280">Measure</th>
            <th>Sum</th>
            <th class="tt-flex">What it holds</th>
          </tr>
        </thead>

        <tbody>
          <tr><td><code>daily\_active\_addresses</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Distinct addresses transacting on the chain per day.</td></tr>
          <tr><td><code>monthly\_active\_addresses</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Distinct addresses transacting on the chain over a rolling 30 days.</td></tr>
          <tr><td><code>weekly\_active\_addresses</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Distinct addresses transacting on the chain over a rolling 7 days.</td></tr>
          <tr><td><code>app\_monthly\_active\_addresses</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Distinct addresses using the apps' contracts on the chain over a rolling 30 days, each app's count added up, so an address using two apps counts twice.</td></tr>
          <tr><td><code>app\_active\_loans</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Open loans in the apps on the chain, USD.</td></tr>
          <tr><td><code>app\_assets\_staked</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Assets staked with the apps on the chain, USD.</td></tr>
          <tr><td><code>app\_bridged\_supply</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Stablecoins bridged onto the chain, USD.</td></tr>
          <tr><td><code>app\_fees</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Fees paid to the apps on the chain, USD.</td></tr>
          <tr><td><code>app\_gas\_used</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Gas consumed by transactions calling the apps' contracts on the chain.</td></tr>
          <tr><td><code>app\_outstanding\_supply</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Stablecoin supply issued on the chain, USD.</td></tr>
          <tr><td><code>app\_trading\_volume</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Trading volume of the exchanges on the chain, USD. Derivatives venues and aggregators are left out: an aggregator's volume is counted at the exchange it routes to.</td></tr>
          <tr><td><code>app\_transaction\_count\_contracts</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Transactions calling the apps' contracts on the chain.</td></tr>
          <tr><td><code>app\_tvl</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Value locked in the apps on the chain, USD.</td></tr>
          <tr><td><code>app\_monthly\_active\_users</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Monthly active users of the apps on the chain, each app's count added up, so a user of two apps counts twice.</td></tr>
          <tr><td><code>block\_time\_average</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Average time between blocks.</td></tr>
          <tr><td><code>bridge\_deposits</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">USD value of assets held in the chain's canonical bridge on the chain it settles to.</td></tr>
          <tr><td><code>daily\_contract\_deployers</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Distinct addresses deploying contracts.</td></tr>
          <tr><td><code>contract\_deployment\_count</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Contracts deployed on the chain.</td></tr>
          <tr><td><code>cost\_of\_revenue</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">The chain's direct cost of revenue, such as data posted to the chain it settles to.</td></tr>
          <tr><td><code>expenses</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">What the chain spent, in USD.</td></tr>
          <tr><td><code>fees</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Fees paid to the chain (gas / sequencer).</td></tr>
          <tr><td><code>fees\_supply\_side</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Fees the chain does not retain (pass-throughs to builders / operators); fees = revenue + fees\_supply\_side. 0 where there are no pass-throughs, e.g. HyperEVM gas.</td></tr>
          <tr><td><code>validators</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Number of validators securing the chain's consensus.</td></tr>
          <tr><td><code>revenue</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Revenue retained by the chain (gas / sequencer fees net of pass-throughs; equals fees where there are none, e.g. HyperEVM).</td></tr>
          <tr><td><code>staking\_market\_cap</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">USD value of the chain's native token staked to secure the network.</td></tr>
          <tr><td><code>token\_incentives</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Value of tokens the chain distributed as incentives.</td></tr>
          <tr><td><code>transaction\_count</code></td><td><span class="tt-check">✓</span></td><td class="tt-flex">Transactions processed by the chain.</td></tr>
          <tr><td><code>transaction\_fee\_average</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Average fee per transaction.</td></tr>
          <tr><td><code>transaction\_fee\_median</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Median fee per transaction.</td></tr>
          <tr><td><code>transactions\_per\_second</code></td><td><span class="tt-cross">✗</span></td><td class="tt-flex">Average transactions per second.</td></tr>
        </tbody>
      </table>
    </div>
  </Tab>
</Tabs>

## Sample queries

<Tabs>
  <Tab title="One chain">
    Every column of one row shares the same `as_of`, so the figures read together. `fees` is what users paid the chain, and `app_fees` what they paid the apps running on it.

    ```sql theme={null}
    select
        as_of,
        fees_30d_sum,
        app_fees_30d_sum,
        transaction_count_30d_sum,
        app_tvl_max_latest,
        app_tvl_30d_change
    from `screeners.chains`
    where chain_id = 'ethereum'
    ```
  </Tab>

  <Tab title="Top chains by app fees">
    `app_fees_30d_sum` is the fees paid to the apps on the chain over the 30 days ending on `as_of`. The join to `dimensions.chains` on `chain_id` adds the name.

    ```sql theme={null}
    select
        chains.name,
        screener.app_fees_30d_sum,
        screener.transaction_count_30d_sum,
        screener.app_fees_30d_trend
    from `screeners.chains` as screener
    join `dimensions.chains` as chains
        using (chain_id)
    where screener.app_fees_30d_sum is not null
    order by screener.app_fees_30d_sum desc
    limit 25
    ```
  </Tab>

  <Tab title="Chain fees against app fees">
    Both sides are 30-day totals over the same window, so their ratio compares the gas users paid the chain with the fees they paid its apps. The app fee floor keeps a small base from dominating the ranking.

    ```sql theme={null}
    select
        chains.name,
        screener.fees_30d_sum,
        screener.app_fees_30d_sum,
        safe_divide(screener.fees_30d_sum, screener.app_fees_30d_sum) as chain_to_app_fees
    from `screeners.chains` as screener
    join `dimensions.chains` as chains
        using (chain_id)
    where screener.app_fees_30d_sum > 100000
    order by chain_to_app_fees desc
    limit 25
    ```
  </Tab>
</Tabs>


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