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

# Metrics

> Daily real-world asset supply, holders, transfer activity, price and yield.

Circulating market cap, price, yield, holders, mints, redemptions and transfer activity. One row per thing per day, at three grains: asset, asset and chain, and deployment.

## Tables

A tab per grain. [Coverage](https://tokenterminal.com/docs/catalog/real-world-assets.md) shows which issuers report which measure.

**Asset**

One row per asset per day. Price and yield belong to the asset itself; every other measure is the asset's deployments added together.

<table>
  <thead>
    <tr>
      <th width="380">Table</th>
      <th width="270">Value column</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr><td>`metrics_assets.price_daily`</td><td>`price`</td><td>Asset price in USD (canonical across sources).</td></tr>
    <tr><td>`metrics_assets.app_tvl_daily`</td><td>`app_tvl`</td><td>Value of the asset deposited into onchain apps -- lending markets, DEX pools and vaults</td></tr>
    <tr><td>`metrics_assets.app_trading_volume_daily`</td><td>`app_trading_volume`</td><td>Value of spot trades involving the asset on onchain venues -- DEX pools and onchain order books -- USD</td></tr>
    <tr><td>`metrics_assets.apy_daily`</td><td>`apy`</td><td>Annualized yield, native-market-cap-weighted across deployments.</td></tr>
    <tr><td>`metrics_assets.market_cap_circulating_native_daily`</td><td>`market_cap_circulating_native`</td><td>Circulating market cap of natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.market_cap_circulating_bridged_daily`</td><td>`market_cap_circulating_bridged`</td><td>Circulating market cap of bridged deployments only, wrapped representations of supply issued elsewhere.</td></tr>
    <tr><td>`metrics_assets.market_cap_circulating_daily`</td><td>`market_cap_circulating`</td><td>Circulating market cap across every representation of the asset, native issuance plus bridged wrappers plus any off-chain component.</td></tr>
    <tr><td>`metrics_assets.market_cap_circulating_offchain_daily`</td><td>`market_cap_circulating_offchain`</td><td>Circulating market cap the issuer reports off-chain, the portion of a fund's NAV no token contract represents.</td></tr>
    <tr><td>`metrics_assets.holders_daily`</td><td>`holders`</td><td>Distinct holders summed across every deployment of the asset; an address on two chains counts twice.</td></tr>
    <tr><td>`metrics_assets.holders_native_daily`</td><td>`holders_native`</td><td>Distinct holders across the asset's natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.holders_bridged_daily`</td><td>`holders_bridged`</td><td>Distinct holders across the asset's bridged deployments only.</td></tr>
    <tr><td>`metrics_assets.mints_native_daily`</td><td>`mints_native`</td><td>Value minted (issued) on natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.mints_bridged_daily`</td><td>`mints_bridged`</td><td>Value minted (issued) on bridged deployments only.</td></tr>
    <tr><td>`metrics_assets.mints_daily`</td><td>`mints`</td><td>Value minted (issued) across every deployment; a bridged mint is a distinct event, so this is a real total.</td></tr>
    <tr><td>`metrics_assets.redemptions_native_daily`</td><td>`redemptions_native`</td><td>Value redeemed (burned) on natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.redemptions_bridged_daily`</td><td>`redemptions_bridged`</td><td>Value redeemed (burned) on bridged deployments only.</td></tr>
    <tr><td>`metrics_assets.redemptions_daily`</td><td>`redemptions`</td><td>Value redeemed (burned) across every deployment; a bridged burn is a distinct event, so this is a real total.</td></tr>
    <tr><td>`metrics_assets.transfer_count_native_daily`</td><td>`transfer_count_native`</td><td>Number of transfers on natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.transfer_count_bridged_daily`</td><td>`transfer_count_bridged`</td><td>Number of transfers on bridged deployments only.</td></tr>
    <tr><td>`metrics_assets.transfer_count_daily`</td><td>`transfer_count`</td><td>Number of transfers across every deployment; a bridged transfer is a distinct event, so this is a real total.</td></tr>
    <tr><td>`metrics_assets.transfer_volume_native_daily`</td><td>`transfer_volume_native`</td><td>Value transferred on natively-issued deployments only.</td></tr>
    <tr><td>`metrics_assets.transfer_volume_bridged_daily`</td><td>`transfer_volume_bridged`</td><td>Value transferred on bridged deployments only.</td></tr>
    <tr><td>`metrics_assets.transfer_volume_daily`</td><td>`transfer_volume`</td><td>Value transferred across every deployment; a bridged transfer is a distinct event, so this is a real total.</td></tr>
    <tr><td>`metrics_assets.daily_active_users_daily`</td><td>`daily_active_users`</td><td>Distinct addresses sending the asset on the day, across every deployment.</td></tr>
    <tr><td>`metrics_assets.weekly_active_users_daily`</td><td>`weekly_active_users`</td><td>Distinct addresses sending the asset in the trailing 7 days, across every deployment.</td></tr>
    <tr><td>`metrics_assets.monthly_active_users_daily`</td><td>`monthly_active_users`</td><td>Distinct addresses sending the asset in the trailing 30 days, across every deployment.</td></tr>
  </tbody>
</table>

**Asset and chain**

One row per asset per chain per day. Keyed on `asset_id`, `chain_id` and `timestamp`, and joins `dimensions.assets_by_chain` on `asset_id` and `chain_id`. Every measure rolls up the asset's deployments on that chain.

<table>
  <thead>
    <tr>
      <th width="380">Table</th>
      <th width="270">Value column</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr><td>`metrics_assets_by_chain.apy_daily`</td><td>`apy`</td><td>Annualized yield, native-market-cap-weighted across deployments</td></tr>
    <tr><td>`metrics_assets_by_chain.app_tvl_daily`</td><td>`app_tvl`</td><td>Value of the asset deposited into onchain apps -- lending markets, DEX pools and vaults</td></tr>
    <tr><td>`metrics_assets_by_chain.app_trading_volume_daily`</td><td>`app_trading_volume`</td><td>Value of spot trades involving the asset on onchain venues -- DEX pools and onchain order books -- USD</td></tr>
    <tr><td>`metrics_assets_by_chain.market_cap_circulating_native_daily`</td><td>`market_cap_circulating_native`</td><td>Circulating market cap of natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.market_cap_circulating_bridged_daily`</td><td>`market_cap_circulating_bridged`</td><td>Circulating market cap of bridged deployments only, wrapped representations of supply issued elsewhere</td></tr>
    <tr><td>`metrics_assets_by_chain.market_cap_circulating_daily`</td><td>`market_cap_circulating`</td><td>Circulating market cap of the asset on the chain, USD, summed across every deployment there, native and bridged.</td></tr>
    <tr><td>`metrics_assets_by_chain.holders_daily`</td><td>`holders`</td><td>Distinct holders summed across every deployment of the asset, native and bridged</td></tr>
    <tr><td>`metrics_assets_by_chain.holders_native_daily`</td><td>`holders_native`</td><td>Distinct holders across the asset's natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.holders_bridged_daily`</td><td>`holders_bridged`</td><td>Distinct holders across the asset's bridged deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.mints_native_daily`</td><td>`mints_native`</td><td>Value minted (issued) on natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.mints_bridged_daily`</td><td>`mints_bridged`</td><td>Value minted (issued) on bridged deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.mints_daily`</td><td>`mints`</td><td>Value minted (issued) across every deployment; a bridged mint is a distinct event, so this is a real total</td></tr>
    <tr><td>`metrics_assets_by_chain.redemptions_native_daily`</td><td>`redemptions_native`</td><td>Value redeemed (burned) on natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.redemptions_bridged_daily`</td><td>`redemptions_bridged`</td><td>Value redeemed (burned) on bridged deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.redemptions_daily`</td><td>`redemptions`</td><td>Value redeemed (burned) across every deployment; a bridged burn is a distinct event, so this is a real total</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_count_native_daily`</td><td>`transfer_count_native`</td><td>Number of transfers on natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_count_bridged_daily`</td><td>`transfer_count_bridged`</td><td>Number of transfers on bridged deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_count_daily`</td><td>`transfer_count`</td><td>Number of transfers across every deployment; a bridged transfer is a distinct event, so this is a real total</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_volume_native_daily`</td><td>`transfer_volume_native`</td><td>Value transferred on natively-issued deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_volume_bridged_daily`</td><td>`transfer_volume_bridged`</td><td>Value transferred on bridged deployments only</td></tr>
    <tr><td>`metrics_assets_by_chain.transfer_volume_daily`</td><td>`transfer_volume`</td><td>Value transferred across every deployment; a bridged transfer is a distinct event, so this is a real total</td></tr>
    <tr><td>`metrics_assets_by_chain.daily_active_users_daily`</td><td>`daily_active_users`</td><td>Distinct addresses sending the asset on the day, across every deployment</td></tr>
    <tr><td>`metrics_assets_by_chain.weekly_active_users_daily`</td><td>`weekly_active_users`</td><td>Distinct addresses sending the asset in the trailing 7 days, across every deployment</td></tr>
    <tr><td>`metrics_assets_by_chain.monthly_active_users_daily`</td><td>`monthly_active_users`</td><td>Distinct addresses sending the asset in the trailing 30 days, across every deployment</td></tr>
  </tbody>
</table>

**Deployment**

One row per deployment per day. Each deployment is either natively issued or bridged in, and its rows sit in the matching `_native` or `_bridged` tables.

<table>
  <thead>
    <tr>
      <th width="400">Table</th>
      <th width="290">Value column</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr><td>`metrics_asset_tokens.apy_daily`</td><td>`apy`</td><td>Annualized yield of the deployment.</td></tr>
    <tr><td>`metrics_asset_tokens.app_tvl_daily`</td><td>`app_tvl`</td><td>Value of the deployment deposited into onchain apps -- lending markets, DEX pools and vaults</td></tr>
    <tr><td>`metrics_asset_tokens.app_trading_volume_daily`</td><td>`app_trading_volume`</td><td>Value of spot trades involving the deployment on onchain venues -- DEX pools and onchain order books -- USD, all venues together</td></tr>
    <tr><td>`metrics_asset_tokens.market_cap_circulating_native_daily`</td><td>`market_cap_circulating_native`</td><td>Circulating market cap of the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.market_cap_circulating_bridged_daily`</td><td>`market_cap_circulating_bridged`</td><td>Circulating market cap of the deployment; bridged deployments only, wrapped representations of supply issued elsewhere.</td></tr>
    <tr><td>`metrics_asset_tokens.market_cap_circulating_daily`</td><td>`market_cap_circulating`</td><td>Circulating market cap of the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.holders_daily`</td><td>`holders`</td><td>Addresses holding a non-zero balance of the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.holders_native_daily`</td><td>`holders_native`</td><td>Addresses holding a non-zero balance of the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.holders_bridged_daily`</td><td>`holders_bridged`</td><td>Addresses holding a non-zero balance of the deployment; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.mints_native_daily`</td><td>`mints_native`</td><td>Value minted (issued) on the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.mints_bridged_daily`</td><td>`mints_bridged`</td><td>Value minted (issued) on the deployment; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.mints_daily`</td><td>`mints`</td><td>Value minted (issued) on the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.redemptions_native_daily`</td><td>`redemptions_native`</td><td>Value redeemed (burned) on the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.redemptions_bridged_daily`</td><td>`redemptions_bridged`</td><td>Value redeemed (burned) on the deployment; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.redemptions_daily`</td><td>`redemptions`</td><td>Value redeemed (burned) on the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_count_native_daily`</td><td>`transfer_count_native`</td><td>Transfers on the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_count_bridged_daily`</td><td>`transfer_count_bridged`</td><td>Transfers on the deployment; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_count_daily`</td><td>`transfer_count`</td><td>Transfers on the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_volume_native_daily`</td><td>`transfer_volume_native`</td><td>Value transferred on the deployment; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_volume_bridged_daily`</td><td>`transfer_volume_bridged`</td><td>Value transferred on the deployment; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.transfer_volume_daily`</td><td>`transfer_volume`</td><td>Value transferred on the deployment, native or bridged.</td></tr>
    <tr><td>`metrics_asset_tokens.daily_active_users_native_daily`</td><td>`daily_active_users_native`</td><td>Distinct addresses sending the deployment's token on the day; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.daily_active_users_bridged_daily`</td><td>`daily_active_users_bridged`</td><td>Distinct addresses sending the deployment's token on the day; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.weekly_active_users_native_daily`</td><td>`weekly_active_users_native`</td><td>Distinct addresses sending the deployment's token in the trailing 7 days; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.weekly_active_users_bridged_daily`</td><td>`weekly_active_users_bridged`</td><td>Distinct addresses sending the deployment's token in the trailing 7 days; bridged deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.monthly_active_users_native_daily`</td><td>`monthly_active_users_native`</td><td>Distinct addresses sending the deployment's token in the trailing 30 days; natively-issued deployments only.</td></tr>
    <tr><td>`metrics_asset_tokens.monthly_active_users_bridged_daily`</td><td>`monthly_active_users_bridged`</td><td>Distinct addresses sending the deployment's token in the trailing 30 days; bridged deployments only.</td></tr>
  </tbody>
</table>

## Sample queries

**One fund's daily read**

Each measure is its own table, so a row with all three is a join on `asset_id` and `timestamp`, bounded on each side. Join with `full join`: a fund can publish a price on a day no supply figure landed.

```sql theme={null}
with supply as (
    select timestamp, market_cap_circulating_native
    from `metrics_assets.market_cap_circulating_native_daily`
    where asset_id = 'buidl'
      and timestamp >= timestamp('2026-06-01')
),

price as (
    select timestamp, price
    from `metrics_assets.price_daily`
    where asset_id = 'buidl'
      and timestamp >= timestamp('2026-06-01')
),

yield as (
    select timestamp, apy
    from `metrics_assets.apy_daily`
    where asset_id = 'buidl'
      and timestamp >= timestamp('2026-06-01')
)

select
    timestamp,
    supply.market_cap_circulating_native,
    price.price,
    yield.apy
from supply
full join price
    using (timestamp)
full join yield
    using (timestamp)
order by timestamp
```

**Tokenized stocks by supply**

The metric tables hold every asset type, so the type filter comes from `dimensions.assets` on the join. `market_cap_circulating_native` counts the supply the issuer minted, the figure for how much of the instrument exists.

```sql theme={null}
select
    assets.asset_id,
    assets.symbol,
    daily.market_cap_circulating_native
from `metrics_assets.market_cap_circulating_native_daily` as daily
join `dimensions.assets` as assets
    using (asset_id)
where daily.timestamp = timestamp('2026-08-01')
  and assets.asset_type = 'tokenized-stocks'
order by daily.market_cap_circulating_native desc
limit 25
```

**One issuer's book**

`issuer_project_id` is the project holding the `issuer` relation, and it is the column the coverage matrix groups on. The supply side is a `left join`: an asset enters the registry on the day it is listed, ahead of its first daily figure.

```sql theme={null}
select
    assets.asset_id,
    assets.symbol,
    assets.asset_type,
    daily.market_cap_circulating
from `dimensions.assets` as assets
left join `metrics_assets.market_cap_circulating_daily` as daily
    on daily.asset_id = assets.asset_id
   and daily.timestamp = timestamp('2026-08-01')
where assets.issuer_project_id = 'securitize'
  and assets.asset_type in (
      'tokenized-stocks', 'tokenized-funds',
      'tokenized-commodities'
  )
order by daily.market_cap_circulating desc
```

**One asset across chains**

`asset_token_id` is the deployment key, and `dimensions.asset_tokens` has the chain and the `bridged_status` behind it. The deployment rows of an additive measure add back up to the asset row.

```sql theme={null}
select
    deployments.chain_id,
    deployments.bridged_status,
    daily.market_cap_circulating
from `metrics_asset_tokens.market_cap_circulating_daily` as daily
join `dimensions.asset_tokens` as deployments
    using (asset_token_id)
where daily.timestamp = timestamp('2026-08-01')
  and deployments.asset_id = 'buidl'
order by daily.market_cap_circulating desc
```

**Chains by real-world asset supply**

Summing the native table across deployments counts each unit of supply once, because a bridged wrapper stands for supply already minted somewhere else. The type filter needs both dimension tables: the chain sits on the deployment, the type on the asset.

```sql theme={null}
select
    deployments.chain_id,
    count(distinct deployments.asset_id) as instruments,
    sum(daily.market_cap_circulating_native) as native_supply
from `metrics_asset_tokens.market_cap_circulating_native_daily` as daily
join `dimensions.asset_tokens` as deployments
    using (asset_token_id)
join `dimensions.assets` as assets
    using (asset_id)
where daily.timestamp = timestamp('2026-08-01')
  and assets.asset_type in (
      'tokenized-stocks', 'tokenized-funds',
      'tokenized-commodities'
  )
group by deployments.chain_id
order by native_supply desc
```

**Yield across a type**

A rate needs a weight before it reads across assets. Native circulating supply is that weight, the one `apy` is weighted by across the asset's deployments.

```sql theme={null}
select
    daily.timestamp,
    sum(daily.apy * supply.market_cap_circulating_native)
        / sum(supply.market_cap_circulating_native) as weighted_apy
from `metrics_assets.apy_daily` as daily
join `metrics_assets.market_cap_circulating_native_daily` as supply
    using (asset_id, timestamp)
join `dimensions.assets` as assets
    on assets.asset_id = daily.asset_id
where assets.asset_type = 'tokenized-funds'
  and daily.timestamp >= timestamp('2026-08-01')
group by daily.timestamp
order by daily.timestamp
```


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