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

# Agentic payments

> Payments software makes without a person in the loop, by asset.

An agentic payment is a transfer made under the x402 standard, which lets software pay for something without a person in the loop. `transfer_count_agentic` counts those payments, and it is part of `transfer_count` for the same asset and day, so the two never add together.

Circle Gateway settles its x402 payments in batches that credit each seller with a net amount, so on chains where Gateway runs a batch counts as one payment per seller it credits, at that net value, and the paying addresses are not part of the user counts.

## Coverage

Every issuer with agentic transfers, and the chains they happened on. One row per issuer.

<table>
  <thead>
    <tr>
      <th width="260">Issuer</th>
      <th>Chains</th>
    </tr>
  </thead>

  <tbody>
    <tr><td>`agora`</td><td>`polygon`, `solana`</td></tr>
    <tr><td>`circle`</td><td>`algorand`, `arc`, `base`, `celo`, `polygon`, `solana`, `xdc`</td></tr>
    <tr><td>`jpycoin`</td><td>`polygon`</td></tr>
    <tr><td>`phantom`</td><td>`solana`</td></tr>
    <tr><td>`ripio`</td><td>`celo`</td></tr>
    <tr><td>`stablecoin`</td><td>`base`</td></tr>
    <tr><td>`tether`</td><td>`celo`, `polygon`, `solana`</td></tr>
    <tr><td>`worldlibertyfinancial`</td><td>`solana`</td></tr>
  </tbody>
</table>

## Tables

**Asset**

One row per asset per day. Each measure is its own table in `metrics_assets`, named for its value column plus `_daily`.

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

  <tbody>
    <tr><td>`timestamp`</td><td>TIMESTAMP</td><td>Midnight UTC of the day measured.</td></tr>
    <tr><td>`asset_id`</td><td>STRING</td><td>Identifier of the asset, for example `usdc`. Joins `dimensions.assets`.</td></tr>
    <tr><td>`transfer_count_agentic_native`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the day, summed across the asset's natively-issued deployments.</td></tr>
    <tr><td>`transfer_count_agentic_bridged`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the day, summed across the asset's bridged deployments.</td></tr>
    <tr><td>`transfer_count_agentic`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the day, summed across every deployment. A genuine total.</td></tr>
    <tr><td>`transfer_volume_agentic_native`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the day, USD, summed across the asset's natively-issued deployments.</td></tr>
    <tr><td>`transfer_volume_agentic_bridged`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the day, USD, summed across the asset's bridged deployments.</td></tr>
    <tr><td>`transfer_volume_agentic`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the day, USD, summed across every deployment. A genuine total.</td></tr>
    <tr><td>`daily_active_users_agentic`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the asset on the day, across every deployment.</td></tr>
    <tr><td>`weekly_active_users_agentic`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the asset over the trailing week, across every deployment.</td></tr>
    <tr><td>`monthly_active_users_agentic`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the asset over the trailing month, across every deployment.</td></tr>
  </tbody>
</table>

**Deployment**

One row per deployment per day. Each measure is its own table in `metrics_asset_tokens`, named for its value column plus `_daily`.

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

  <tbody>
    <tr><td>`timestamp`</td><td>TIMESTAMP</td><td>Midnight UTC of the day measured.</td></tr>
    <tr><td>`asset_token_id`</td><td>STRING</td><td>Identifier of the deployment, formatted `{asset_id}-{token_address}-{chain_id}`. Joins `dimensions.asset_tokens`.</td></tr>
    <tr><td>`transfer_count_agentic_native`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the deployment on the day. Natively-issued deployments only.</td></tr>
    <tr><td>`transfer_count_agentic_bridged`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the deployment on the day. Bridged deployments only.</td></tr>
    <tr><td>`transfer_count_agentic`</td><td>FLOAT64</td><td>Number of agentic (x402) transfers on the deployment on the day, whichever side it sits on.</td></tr>
    <tr><td>`transfer_volume_agentic_native`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the deployment on the day, USD. Natively-issued deployments only.</td></tr>
    <tr><td>`transfer_volume_agentic_bridged`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the deployment on the day, USD. Bridged deployments only.</td></tr>
    <tr><td>`transfer_volume_agentic`</td><td>FLOAT64</td><td>Value transferred by agentic (x402) flows on the deployment on the day, USD, whichever side it sits on.</td></tr>
    <tr><td>`daily_active_users_agentic_native`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment on the day. Natively-issued deployments only.</td></tr>
    <tr><td>`daily_active_users_agentic_bridged`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment on the day. Bridged deployments only.</td></tr>
    <tr><td>`weekly_active_users_agentic_native`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment over the trailing week. Natively-issued deployments only.</td></tr>
    <tr><td>`weekly_active_users_agentic_bridged`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment over the trailing week. Bridged deployments only.</td></tr>
    <tr><td>`monthly_active_users_agentic_native`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment over the trailing month. Natively-issued deployments only.</td></tr>
    <tr><td>`monthly_active_users_agentic_bridged`</td><td>INT64</td><td>Distinct addresses making agentic (x402) payments in the deployment over the trailing month. Bridged deployments only.</td></tr>
  </tbody>
</table>

## Sample queries

**Assets by agentic payments**

Each measure is its own table, so this joins three of them on `asset_id` at one `timestamp`. `transfer_count` is the denominator that turns the count into a share of the asset's activity.

```sql theme={null}
with agentic as (
    select asset_id, transfer_count_agentic
    from `metrics_assets.transfer_count_agentic_daily`
    where timestamp = timestamp('2026-08-20')
      and transfer_count_agentic > 0
),

volume as (
    select asset_id, transfer_volume_agentic
    from `metrics_assets.transfer_volume_agentic_daily`
    where timestamp = timestamp('2026-08-20')
),

total as (
    select asset_id, transfer_count
    from `metrics_assets.transfer_count_daily`
    where timestamp = timestamp('2026-08-20')
)

select
    assets.name,
    assets.symbol,
    agentic.transfer_count_agentic,
    volume.transfer_volume_agentic,
    safe_divide(agentic.transfer_count_agentic, total.transfer_count) as agentic_share
from agentic
left join volume
    using (asset_id)
left join total
    using (asset_id)
join `dimensions.assets` as assets
    using (asset_id)
order by agentic.transfer_count_agentic desc
limit 25
```

**One asset over time**

A `full join` on `timestamp` keeps a day with payments but no payer count, and the reverse. Bound `timestamp` on every side: an unbounded side reads its whole table.

```sql theme={null}
with payments as (
    select timestamp, transfer_count_agentic
    from `metrics_assets.transfer_count_agentic_daily`
    where asset_id = 'usdc'
      and timestamp >= timestamp('2026-06-01')
),

payers as (
    select timestamp, daily_active_users_agentic
    from `metrics_assets.daily_active_users_agentic_daily`
    where asset_id = 'usdc'
      and timestamp >= timestamp('2026-06-01')
),

payers_monthly as (
    select timestamp, monthly_active_users_agentic
    from `metrics_assets.monthly_active_users_agentic_daily`
    where asset_id = 'usdc'
      and timestamp >= timestamp('2026-06-01')
)

select
    timestamp,
    payments.transfer_count_agentic,
    payers.daily_active_users_agentic,
    payers_monthly.monthly_active_users_agentic
from payments
full join payers
    using (timestamp)
full join payers_monthly
    using (timestamp)
order by timestamp
```

**By chain**

The deployment tables have `asset_token_id` alone, so the chain comes from `dimensions.asset_tokens`.

```sql theme={null}
select
    daily.timestamp,
    deployments.chain_id,
    daily.transfer_count_agentic
from `metrics_asset_tokens.transfer_count_agentic_daily` as daily
join `dimensions.asset_tokens` as deployments
    using (asset_token_id)
where daily.timestamp >= timestamp('2026-08-01')
  and deployments.asset_id = 'usdc'
  and daily.transfer_count_agentic > 0
order by daily.timestamp, daily.transfer_count_agentic desc
```


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