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

# Attested country

> The country of residence Coinbase attested for a wallet, and the attestation it comes from.

One row per wallet holding a live Coinbase Verified Country attestation: the country of residence Coinbase recorded when it verified the holder. The attestation is issued on Base, opt-in and revocable, and revoked or expired attestations are dropped.

## Columns

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

  <tbody>
    <tr><td>`address`</td><td>STRING</td><td>The wallet the attestation was issued to, lowercase. The key this table is clustered on.</td></tr>
    <tr><td>`chain_family`</td><td>STRING</td><td>Always `evm`: the country applies to the address on every EVM chain, so join on `address` and the chain's `chain_family` from [Chains ▸ Registry](https://tokenterminal.com/docs/catalog/chains/registry.md).</td></tr>
    <tr><td>`attested_chain_id`</td><td>STRING</td><td>Chain the attestation was issued on, always `base`.</td></tr>
    <tr><td>`attested_country`</td><td>STRING</td><td>ISO 3166-1 alpha-2 country of residence recorded in the attestation.</td></tr>
    <tr><td>`attested_at`</td><td>TIMESTAMP</td><td>Timestamp the attestation was issued. A wallet with several live attestations keeps the latest.</td></tr>
    <tr><td>`attestation_uid`</td><td>STRING</td><td>Unique id of the attestation.</td></tr>
    <tr><td>`attester`</td><td>STRING</td><td>Address of the issuer, lowercase.</td></tr>
  </tbody>
</table>

## Sample queries

> [!WARNING]
>
> The table is clustered on `address`, one row per wallet. Filter on the address where you have it; a query that filters on anything else reads the whole table.

**One wallet's attested country**

`address` is the cluster key, so filtering it is the cheapest lookup.

```sql theme={null}
select
    attested_country,
    attested_at
from `facts_accounts.attested_country`
where address = '0x0000000000000000000000000000000000000001'
```

**Attested wallets by country**

Wallets per country of residence.

```sql theme={null}
select
    attested_country,
    count(*) as wallets
from `facts_accounts.attested_country`
group by attested_country
order by wallets desc
limit 20
```

**Attested country by funding venue**

A wallet joins on `address` and the chain's `chain_family`, which reaches its funded rows on every EVM chain. `dimensions.chains` maps each `chain_id` to its `chain_family`.

```sql theme={null}
select
    funding.funding_venue_project_id,
    attested.attested_country,
    count(*) as wallets
from `facts_accounts.funding` as funding
join `dimensions.chains` as chains
    on funding.chain_id = chains.chain_id
join `facts_accounts.attested_country` as attested
    on funding.address = attested.address
    and chains.chain_family = attested.chain_family
where funding.chain_id = 'ethereum'
  and funding.funding_venue_project_id is not null
group by funding.funding_venue_project_id, attested.attested_country
order by wallets desc
limit 20
```


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