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

# Activity coverage

> The share of each chain's daily active senders that are attributed.

One row per chain per day. Coverage is reported three ways, by senders, by transactions and by native value, because a low share of addresses can still cover most activity.

## Columns

<table>
  <thead>
    <tr>
      <th width="200">Column</th>
      <th width="120">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr><td><code>chain\_id</code></td><td>STRING</td><td>Chain the day's senders transacted on.</td></tr>
    <tr><td><code>activity\_date</code></td><td>DATE</td><td>UTC calendar day the senders are counted for. Partition column. The latest date is partial until the UTC day closes and is rewritten by the next run.</td></tr>
    <tr><td><code>active\_senders</code></td><td>INT64</td><td>Distinct senders active on the chain that day.</td></tr>
    <tr><td><code>tx\_count</code></td><td>INT64</td><td>Transactions initiated on the chain that day, across every sender.</td></tr>
    <tr><td><code>native\_value</code></td><td>NUMERIC</td><td>Native value moved on the chain that day, summed across every sender, in the chain's smallest unit. Null on solana, which has no transaction-level native value.</td></tr>
    <tr><td><code>attributed\_senders</code></td><td>INT64</td><td>Of those, the senders present in <code>dimensions.accounts</code>.</td></tr>
    <tr><td><code>attributed\_share</code></td><td>FLOAT64</td><td><code>attributed\_senders</code> divided by <code>active\_senders</code>, from <code>safe\_divide</code>.</td></tr>
    <tr><td><code>regioned\_senders</code></td><td>INT64</td><td>Of the day's active senders, the ones whose <code>region\_confidence</code> on <a href="/docs/catalog/accounts/registry">Accounts ▸ Registry</a> is not null.</td></tr>
    <tr><td><code>regioned\_share</code></td><td>FLOAT64</td><td><code>regioned\_senders</code> divided by <code>active\_senders</code>, from <code>safe\_divide</code>.</td></tr>
    <tr><td><code>regioned\_tx\_share</code></td><td>FLOAT64</td><td>Transactions from regioned senders divided by <code>tx\_count</code>, from <code>safe\_divide</code>.</td></tr>
    <tr><td><code>regioned\_value\_share</code></td><td>FLOAT64</td><td>Native value from regioned senders divided by <code>native\_value</code>, from <code>safe\_divide</code>.</td></tr>
  </tbody>
</table>

## Sample queries

<Tabs>
  <Tab title="One chain, one day">
    `attributed_share` is null rather than a divide error on a day with zero active senders, since the column comes from `safe_divide`.

    ```sql theme={null}
    select
        active_senders,
        attributed_senders,
        attributed_share
    from `reports_accounts.activity_coverage`
    where chain_id = 'robinhoodchain'
      and activity_date = date('2026-09-01')
    ```
  </Tab>

  <Tab title="30-day trend for one chain">
    One row per day already, so a trend is a bounded range with no aggregation.

    ```sql theme={null}
    select
        activity_date,
        attributed_share
    from `reports_accounts.activity_coverage`
    where chain_id = 'robinhoodchain'
      and activity_date >= date('2026-08-01')
      and activity_date < date('2026-08-31')
    order by activity_date
    ```
  </Tab>

  <Tab title="Chain name alongside the share">
    `chain_id` joins `dimensions.chains` for the display name.

    ```sql theme={null}
    select
        chains.name,
        coverage.activity_date,
        coverage.attributed_share
    from `reports_accounts.activity_coverage` as coverage
    join `dimensions.chains` as chains
        using (chain_id)
    where coverage.activity_date = date('2026-09-01')
    order by coverage.attributed_share desc
    ```
  </Tab>

  <Tab title="Sender share against value share">
    `regioned_share` counts senders and `regioned_value_share` counts native value moved; a chain can show a low sender share here while still covering most of the day's value.

    ```sql theme={null}
    select
        chain_id,
        activity_date,
        regioned_share,
        regioned_value_share
    from `reports_accounts.activity_coverage`
    where activity_date = date('2026-09-01')
    order by regioned_value_share desc
    ```
  </Tab>
</Tabs>
