> ## 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><code>account\_id</code></td><td>STRING</td><td>Account as one key: <code>\{address}-\{chain\_id}</code>. The key this table is clustered on.</td></tr>
    <tr><td><code>chain\_id</code></td><td>STRING</td><td>Chain the wallet is on.</td></tr>
    <tr><td><code>address</code></td><td>STRING</td><td>The wallet: lowercase on EVM, verbatim base58 on Solana.</td></tr>
    <tr><td><code>funding\_venue\_project\_id</code></td><td>STRING</td><td>Venue that funded the wallet: the earliest edge's venue, from <a href="/docs/catalog/accounts/registry">Accounts ▸ Registry</a>'s Venues tab. Null when the wallet's edges split across venues.</td></tr>
    <tr><td><code>funding\_venue\_type</code></td><td>STRING</td><td><code>cex</code> or <code>fiat-ramps</code>, from Venues. Null iff <code>funding\_venue\_project\_id</code> is null.</td></tr>
    <tr><td><code>funding\_venue\_source</code></td><td>STRING</td><td><code>curated</code> for an edge to a registry anchor, <code>detected</code> for an edge through a detected deposit address. Null iff <code>funding\_venue\_project\_id</code> is null.</td></tr>
    <tr><td><code>funding\_confidence</code></td><td>STRING</td><td><code>high</code>, <code>medium</code> or <code>low</code>, from the tiers described on <a href="/docs/catalog/accounts/registry">Accounts ▸ Registry</a>. Null iff <code>funding\_venue\_project\_id</code> is null.</td></tr>
    <tr><td><code>funding\_evidence\_edges</code></td><td>INT64</td><td>First-contact edges behind the row.</td></tr>
    <tr><td><code>funding\_distinct\_venues</code></td><td>INT64</td><td>Venues the wallet has edges with.</td></tr>
    <tr><td><code>funding\_first\_edge\_at</code></td><td>TIMESTAMP</td><td>Timestamp of the wallet's earliest funding edge.</td></tr>
    <tr><td><code>funding\_jurisdiction</code></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><code>wallet\_set\_version</code></td><td>INT64</td><td>Fingerprint of the venue's anchor set the row was computed under. Null iff <code>funding\_venue\_project\_id</code> 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.
</Warning>

<Tabs>
  <Tab title="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'
    ```
  </Tab>

  <Tab title="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
    ```
  </Tab>

  <Tab title="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
    ```
  </Tab>
</Tabs>


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