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

# Funding

> The venue that funded a wallet, its type, and a confidence tier for the tag.

One row per wallet with at least one funding edge, attributed to a project or not. `funding_venue_project_id` is null wherever a wallet's edges split across venues too evenly to name one.

## Columns

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

  <tbody>
    <tr><td>`account_id`</td><td>STRING</td><td>Account as one key: `{address}-{chain_id}`. The key this table is clustered on.</td></tr>
    <tr><td>`chain_id`</td><td>STRING</td><td>Chain the wallet is on.</td></tr>
    <tr><td>`address`</td><td>STRING</td><td>The wallet: lowercase on EVM, verbatim base58 on Solana.</td></tr>
    <tr><td>`funding_venue_project_id`</td><td>STRING</td><td>Venue that funded the wallet: the earliest edge's venue, from [Accounts ▸ Registry](https://tokenterminal.com/docs/catalog/accounts/registry.md)'s Venues tab. Null when the wallet's edges split across venues.</td></tr>
    <tr><td>`funding_venue_type`</td><td>STRING</td><td>`cex` or `fiat-ramps`, from Venues. Null iff `funding_venue_project_id` is null.</td></tr>
    <tr><td>`funding_venue_source`</td><td>STRING</td><td>`curated` for an edge to a registry anchor, `detected` for an edge through a detected deposit address. Null iff `funding_venue_project_id` is null.</td></tr>
    <tr><td>`funding_confidence`</td><td>STRING</td><td>`high`, `medium` or `low`, from the tiers described on [Accounts ▸ Registry](https://tokenterminal.com/docs/catalog/accounts/registry.md). Null iff `funding_venue_project_id` is null.</td></tr>
    <tr><td>`funding_evidence_edges`</td><td>INT64</td><td>First-contact edges behind the row.</td></tr>
    <tr><td>`funding_distinct_venues`</td><td>INT64</td><td>Venues the wallet has edges with.</td></tr>
    <tr><td>`funding_first_edge_at`</td><td>TIMESTAMP</td><td>Timestamp of the wallet's earliest funding edge.</td></tr>
    <tr><td>`funding_jurisdiction`</td><td>STRING</td><td>ISO 3166-1 alpha-2 of the venue, from Venues. Null unless the venue passes the jurisdiction gate there.</td></tr>
    <tr><td>`wallet_set_version`</td><td>INT64</td><td>Fingerprint of the venue's anchor set the row was computed under. Null iff `funding_venue_project_id` is null.</td></tr>
  </tbody>
</table>

## Sample queries

> [!WARNING]
>
> The table is clustered on `account_id`, one row per wallet. Filter on the account where you have it, or on `chain_id` otherwise; a query that filters on neither reads the whole table.

**One wallet's funding tag**

`account_id` is the address and the chain joined by a hyphen, and the column this table is clustered on, so filtering it is the cheapest lookup.

```sql theme={null}
select
    funding_venue_project_id,
    funding_venue_type,
    funding_confidence,
    funding_jurisdiction,
    funding_first_edge_at
from `facts_accounts.funding`
where account_id = '0x7240234c7bf954cd7fc6323c38bbf6e6e4355e52-ethereum'
```

**Wallets by venue and confidence, on one chain**

`chain_id` is not the cluster key, so bound the column list too: selecting only the columns a query needs keeps a chain-wide scan affordable.

```sql theme={null}
select
    funding_venue_project_id,
    funding_confidence,
    count(*) as wallets
from `facts_accounts.funding`
where chain_id = 'ethereum'
  and funding_venue_project_id is not null
group by funding_venue_project_id, funding_confidence
order by wallets desc
limit 20
```

**High-confidence wallets by venue, with jurisdiction**

`funding_venue_project_id` joins `dimensions.venues` for the venue's display name and jurisdiction.

```sql theme={null}
select
    venues.name,
    venues.venue_type,
    venues.funding_jurisdiction,
    count(*) as wallets
from `facts_accounts.funding` as funding
join `dimensions.venues` as venues
    on funding.funding_venue_project_id = venues.venue_project_id
where funding.chain_id = 'ethereum'
  and funding.funding_confidence = 'high'
group by venues.name, venues.venue_type, venues.funding_jurisdiction
order by wallets desc
```


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