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

# Region distribution

> Senders by region and confidence, a trailing 90-day snapshot per chain.

One row per chain, trailing 90-day window ending `window_end`, region and confidence tier. `senders` counts every address in that band over the window, including the region `null` at a null confidence.

## 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 senders transacted on.</td></tr>
    <tr><td><code>window\_end</code></td><td>DATE</td><td>Last UTC day of the trailing 90-day window the row summarizes. Partition column.</td></tr>
    <tr><td><code>region</code></td><td>STRING</td><td>One of seven UTC-offset bands: <code>utc-11..-9</code>, <code>utc-8..-5</code>, <code>utc-4..-2</code>, <code>utc-1..+2</code>, <code>utc+3..+6</code>, <code>utc+7..+9</code>, <code>utc+10..+12</code>. Null when <code>region\_confidence</code> is null.</td></tr>
    <tr><td><code>region\_confidence</code></td><td>STRING</td><td><code>high</code>, <code>medium</code> or <code>low</code>, from the same thresholds as <a href="/docs/catalog/accounts/registry">Accounts ▸ Registry</a>'s <code>region\_confidence</code>, and null where <code>region</code> is null.</td></tr>
    <tr><td><code>senders</code></td><td>INT64</td><td>Senders on that chain, in that window, region and confidence tier.</td></tr>
    <tr><td><code>tx\_count</code></td><td>INT64</td><td>Transactions those senders initiated over the window.</td></tr>
    <tr><td><code>sender\_share</code></td><td>FLOAT64</td><td><code>senders</code> divided by the window's total senders on the chain, from <code>safe\_divide</code>.</td></tr>
    <tr><td><code>tx\_share</code></td><td>FLOAT64</td><td><code>tx\_count</code> divided by the window's total transactions on the chain, from <code>safe\_divide</code>.</td></tr>
  </tbody>
</table>

## Sample queries

<Tabs>
  <Tab title="One chain's latest snapshot">
    Each row is one region and confidence pair for the window ending `window_end`; the `null` region at a null confidence is the share with no signal.

    ```sql theme={null}
    select
        region,
        region_confidence,
        senders,
        sender_share
    from `reports_accounts.region_distribution`
    where chain_id = 'ethereum'
      and window_end = date('2026-09-01')
    order by senders desc
    ```
  </Tab>

  <Tab title="Regioned share of a chain's transactions">
    Summing `tx_share` across every non-null confidence tier gives the share of the chain's transactions from senders with any region signal, whether or not they are attributed to a project.

    ```sql theme={null}
    select
        chain_id,
        sum(tx_share) as regioned_tx_share
    from `reports_accounts.region_distribution`
    where window_end = date('2026-09-01')
      and region_confidence is not null
    group by chain_id
    order by regioned_tx_share desc
    ```
  </Tab>

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

    ```sql theme={null}
    select
        chains.name,
        dist.region,
        dist.region_confidence,
        dist.senders
    from `reports_accounts.region_distribution` as dist
    join `dimensions.chains` as chains
        using (chain_id)
    where dist.window_end = date('2026-09-01')
      and dist.chain_id = 'solana'
    order by dist.senders desc
    ```
  </Tab>
</Tabs>
