> ## 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 project's latest figures, with averages, totals and changes over six windows, in one row.

One row per project in `screeners.projects`, 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 of the 30 days ending on `as_of`, and `tvl_7d_change` is TVL on `as_of` against TVL seven days earlier.

## Columns

**Keys**

The two key columns, then one FLOAT64 column per measure, window and aggregation. Every row is a project in `dimensions.projects`, so the join on `project_id` always matches.

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

  <tbody>
    <tr><td>`as_of`</td><td>TIMESTAMP</td><td>The last complete day, the same on every row. Every window ends on it.</td></tr>
    <tr><td>`project_id`</td><td>STRING</td><td>Project the row belongs to, such as `aave`; joins `dimensions.projects`.</td></tr>
  </tbody>
</table>

**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](https://tokenterminal.com/docs/catalog/metric-definitions.md): 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>`<measure>_<window>_avg`</td><td>Mean of the daily values over the window.</td></tr>
    <tr><td>`<measure>_<window>_sum`</td><td>Total of the daily values over the window. Flows only: the measures ticked under Sum.</td></tr>
    <tr><td>`<measure>_<window>_change`</td><td>A comparison of two aggregations: the value on `as_of` against the value one window earlier, as `(now - then) / abs(then)`. Null when either value is missing or the earlier one is 0.</td></tr>
    <tr><td>`<measure>_<window>_trend`</td><td>A comparison of two aggregations: the window's average against the average of the window before it, as `(avg - prior) / abs(prior)`. 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>`<measure>_max_latest`</td><td>The value on `as_of`. Null when there is none.</td></tr>
    <tr><td>`<measure>_max_ath`</td><td>The highest daily value over the project's whole history.</td></tr>
    <tr><td>`<measure>_max_atl`</td><td>The lowest daily value over the project's whole history.</td></tr>
  </tbody>
</table>

**Measures**

Every measure has the `avg`, `change`, `trend` and `max_` columns, and the flows also have `sum`. A distinct count such as `daily_active_users` or `token_holders` takes `avg`, never `sum`.

<table>
  <thead>
    <tr>
      <th width="280">Measure</th>
      <th>Sum</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr><td>`daily_active_addresses`</td><td>✗</td><td>Distinct addresses transacting with the project's contracts per day.</td></tr>
    <tr><td>`monthly_active_addresses`</td><td>✗</td><td>Distinct addresses transacting with the project's contracts over a rolling 30 days.</td></tr>
    <tr><td>`weekly_active_addresses`</td><td>✗</td><td>Distinct addresses transacting with the project's contracts over a rolling 7 days.</td></tr>
    <tr><td>`monthly_active_developers`</td><td>✗</td><td>Number of active developers.</td></tr>
    <tr><td>`active_loans`</td><td>✗</td><td>Value of loans outstanding at day end, in USD.</td></tr>
    <tr><td>`fees_per_daily_active_user`</td><td>✗</td><td>Average fees per user.</td></tr>
    <tr><td>`revenue_per_daily_active_user`</td><td>✗</td><td>Average revenue per user.</td></tr>
    <tr><td>`assets_staked`</td><td>✗</td><td>Value staked at day end, in USD.</td></tr>
    <tr><td>`bridge_deposits`</td><td>✗</td><td>USD value of assets held in the project's bridge contracts on the main chain.</td></tr>
    <tr><td>`bridged_supply`</td><td>✗</td><td>USD value of the project's stablecoins held outside the chain they were issued on.</td></tr>
    <tr><td>`buybacks`</td><td>✓</td><td>USD value of the project's own tokens repurchased from the market.</td></tr>
    <tr><td>`capital_deployed`</td><td>✗</td><td>USD value of user deposits an asset manager has allocated into investments.</td></tr>
    <tr><td>`code_commit_count`</td><td>✓</td><td>Commits to public repositories.</td></tr>
    <tr><td>`cost_of_revenue`</td><td>✓</td><td>Direct supply-side cost of revenue.</td></tr>
    <tr><td>`earnings`</td><td>✓</td><td>What the project kept after costs, in USD. Goes negative when a project pays out more than it retains.</td></tr>
    <tr><td>`notional_trading_volume_exchange`</td><td>✓</td><td>Notional value of perpetual futures traded, attributed to the project whose matching engine settled the trade.</td></tr>
    <tr><td>`expenses`</td><td>✓</td><td>What the project spent, in USD: cost of revenue, token incentives and operating expenses, wherever each is reported onchain.</td></tr>
    <tr><td>`fees`</td><td>✓</td><td>Total fees users paid, in USD. Chain gas plus app trading fees.</td></tr>
    <tr><td>`fees_supply_side`</td><td>✓</td><td>The part of those fees the project passed on to the supply side, in USD.</td></tr>
    <tr><td>`flash_loan_volume`</td><td>✓</td><td>Total flash loan volume.</td></tr>
    <tr><td>`gas_used`</td><td>✓</td><td>Gas consumed by transactions calling the project's contracts.</td></tr>
    <tr><td>`gross_profit`</td><td>✓</td><td>Revenue minus cost of revenue.</td></tr>
    <tr><td>`notional_trading_volume_interface`</td><td>✓</td><td>Notional value of perpetual futures traded, attributed to the project whose interface the trade was placed through.</td></tr>
    <tr><td>`liquidation_volume`</td><td>✓</td><td>USD value of debt covered in liquidations.</td></tr>
    <tr><td>`liquidity_turnover`</td><td>✗</td><td>Trading volume relative to liquidity.</td></tr>
    <tr><td>`market_cap_circulating`</td><td>✗</td><td>Market cap on circulating supply.</td></tr>
    <tr><td>`market_cap_fully_diluted`</td><td>✗</td><td>Market cap on maximum supply.</td></tr>
    <tr><td>`open_interest`</td><td>✗</td><td>USD notional value of all open positions on the project's derivatives markets.</td></tr>
    <tr><td>`operating_expenses`</td><td>✓</td><td>Onchain operating expenses, excluding token incentives.</td></tr>
    <tr><td>`outstanding_supply`</td><td>✗</td><td>Stablecoin supply issued by the project and outstanding today, in USD. Stablecoin issuers only.</td></tr>
    <tr><td>`price_to_fees_circulating`</td><td>✗</td><td>Circulating market cap over annualized fees (trailing 30d run-rate).</td></tr>
    <tr><td>`price_to_fees_fully_diluted`</td><td>✗</td><td>Fully diluted market cap over annualized fees (trailing 30d run-rate).</td></tr>
    <tr><td>`price`</td><td>✗</td><td>Project token price in USD.</td></tr>
    <tr><td>`price_to_revenue_circulating`</td><td>✗</td><td>Circulating market cap over annualized revenue (trailing 30d run-rate).</td></tr>
    <tr><td>`price_to_revenue_fully_diluted`</td><td>✗</td><td>Fully diluted market cap over annualized revenue (trailing 30d run-rate).</td></tr>
    <tr><td>`revenue`</td><td>✓</td><td>Fees the project kept, in USD.</td></tr>
    <tr><td>`staking_market_cap`</td><td>✗</td><td>USD value of the native token staked to secure the chains the project operates, summed across them.</td></tr>
    <tr><td>`take_rate`</td><td>✗</td><td>Share of fees the project retains as revenue.</td></tr>
    <tr><td>`token_incentives`</td><td>✓</td><td>Value of the project's own token paid out as rewards, in USD.</td></tr>
    <tr><td>`token_supply_circulating`</td><td>✗</td><td>Circulating token supply.</td></tr>
    <tr><td>`token_supply_maximum`</td><td>✗</td><td>Maximum token supply.</td></tr>
    <tr><td>`token_trading_volume`</td><td>✓</td><td>Trading volume of the project's own token.</td></tr>
    <tr><td>`token_turnover_circulating`</td><td>✗</td><td>Token trading volume over circulating market cap.</td></tr>
    <tr><td>`token_turnover_fully_diluted`</td><td>✗</td><td>Token trading volume over fully diluted market cap.</td></tr>
    <tr><td>`token_holders`</td><td>✗</td><td>Addresses holding the project's token.</td></tr>
    <tr><td>`trade_count`</td><td>✓</td><td>Number of trades executed.</td></tr>
    <tr><td>`tradeable_asset_count`</td><td>✗</td><td>Number of tokens tradeable on the exchange.</td></tr>
    <tr><td>`tradeable_pair_count`</td><td>✗</td><td>Number of token pairs available for trading on the exchange.</td></tr>
    <tr><td>`trading_volume`</td><td>✓</td><td>Cash value of the trades that took place, in USD.</td></tr>
    <tr><td>`trade_size_average`</td><td>✗</td><td>Average trading volume per trade.</td></tr>
    <tr><td>`trading_volume_per_daily_active_user`</td><td>✗</td><td>Average trading volume per user.</td></tr>
    <tr><td>`transaction_count_contracts`</td><td>✓</td><td>Transactions calling the project's contracts.</td></tr>
    <tr><td>`transaction_volume`</td><td>✓</td><td>USD value of transactions processed by the project.</td></tr>
    <tr><td>`transfer_volume`</td><td>✓</td><td>USD value of assets moved through the project's bridge transfers, counted once per transfer.</td></tr>
    <tr><td>`treasury`</td><td>✗</td><td>Value the project held at day end, in USD, its own token included.</td></tr>
    <tr><td>`treasury_net`</td><td>✗</td><td>Value the project held at day end excluding its own token, in USD.</td></tr>
    <tr><td>`tvl`</td><td>✗</td><td>Value locked in the project's contracts at day end, in USD.</td></tr>
    <tr><td>`daily_active_users`</td><td>✗</td><td>Distinct addresses that used the project that day. A HyperLogLog estimate, not a sum of the daily series.</td></tr>
    <tr><td>`monthly_active_users`</td><td>✗</td><td>Distinct addresses that used the project in the trailing 30 days. A HyperLogLog estimate.</td></tr>
    <tr><td>`weekly_active_users`</td><td>✗</td><td>Distinct addresses that used the project in the trailing 7 days. A HyperLogLog estimate.</td></tr>
  </tbody>
</table>

## Sample queries

**One project**

Every column of one row shares the same `as_of`, so the figures read together.

```sql theme={null}
select
    as_of,
    tvl_max_latest,
    tvl_7d_change,
    fees_30d_sum,
    fees_30d_trend
from `screeners.projects`
where project_id = 'aave'
```

**Top 25 by 30-day fees**

`fees_30d_sum` is the total of the 30 days ending on `as_of`. The join to `dimensions.projects` on `project_id` adds the name.

```sql theme={null}
select
    projects.name,
    screener.fees_30d_sum,
    screener.revenue_30d_sum,
    screener.fees_30d_trend
from `screeners.projects` as screener
join `dimensions.projects` as projects
    using (project_id)
where screener.fees_30d_sum is not null
order by screener.fees_30d_sum desc
limit 25
```

**Biggest 7-day TVL moves**

`tvl_7d_change` compares TVL on `as_of` with TVL seven days earlier, as a fraction. The TVL floor keeps a small base from dominating the ranking.

```sql theme={null}
select
    projects.name,
    screener.tvl_max_latest,
    screener.tvl_7d_change
from `screeners.projects` as screener
join `dimensions.projects` as projects
    using (project_id)
where screener.tvl_max_latest > 10000000
  and screener.tvl_7d_change is not null
order by abs(screener.tvl_7d_change) desc
limit 25
```

**Market cap against yearly revenue**

`revenue_365d_sum` is the revenue of the 365 days ending on `as_of`, and `market_cap_circulating_max_latest` the latest circulating market cap. Their ratio is a price-to-sales multiple.

```sql theme={null}
select
    projects.name,
    screener.market_cap_circulating_max_latest,
    screener.revenue_365d_sum,
    safe_divide(
        screener.market_cap_circulating_max_latest,
        screener.revenue_365d_sum
    ) as price_to_sales
from `screeners.projects` as screener
join `dimensions.projects` as projects
    using (project_id)
where screener.revenue_365d_sum > 1000000
  and screener.market_cap_circulating_max_latest > 0
order by price_to_sales
limit 25
```


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