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

# Registry

> Stablecoin identity: peg currency, MiCA classification, the issuer behind it and every chain it is deployed on.

The identity tables behind every stablecoin figure. Every fact and metric joins to one of them, and [Coverage](https://tokenterminal.com/docs/catalog/stablecoins.md) introduces each grain.

## Tables

**Stablecoins**

One row per stablecoin: `dimensions.assets` filtered on `asset_type = 'stablecoin'`.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`asset_id`</td>
      <td>`STRING`</td>
      <td>Identifier of the asset, for example `usdc`.</td>
    </tr>

    <tr>
      <td>`reference_asset_id`</td>
      <td>`STRING`</td>
      <td>What the asset tracks or wraps. Joins `dimensions.reference_assets`.</td>
    </tr>

    <tr>
      <td>`name`</td>
      <td>`STRING`</td>
      <td>Display name of the asset.</td>
    </tr>

    <tr>
      <td>`symbol`</td>
      <td>`STRING`</td>
      <td>Ticker symbol of the asset.</td>
    </tr>

    <tr>
      <td>`asset_type`</td>
      <td>`STRING`</td>
      <td>What kind of instrument it is: `stablecoin`, `tokenized-stocks`, `tokenized-funds`, `lending-token`, `tokenized-commodities`, `liquid-staking-token`, `tokenized-cryptoasset` or `wrapped_native`.</td>
    </tr>

    <tr>
      <td>`description`</td>
      <td>`STRING`</td>
      <td>Short description of the asset.</td>
    </tr>

    <tr>
      <td>`custom_price_fx_peg`</td>
      <td>`STRUCT`</td>
      <td>A fixed rate the asset is priced at rather than a market quote, in `currency`, `multiplier` and `priority`. Set only where the asset declares one, and `priority` says whether the rate overrides the market price or only fills in where there is none.</td>
    </tr>

    <tr>
      <td>`created_at`</td>
      <td>`TIMESTAMP`</td>
      <td>When the asset entered the registry.</td>
    </tr>

    <tr>
      <td>`metrics_verified_at`</td>
      <td>`TIMESTAMP`</td>
      <td>When the asset's published metrics were last verified. Null while unverified.</td>
    </tr>

    <tr>
      <td>`mica_marker`</td>
      <td>`STRING`</td>
      <td>Which MiCA category the peg implies: `emt_by_peg` for single-currency stablecoins, `art_by_peg` for other stablecoins, `other_crypto_asset` or `out_of_scope_financial_instrument` for everything else. A marker, not a regulatory ruling.</td>
    </tr>

    <tr>
      <td>`mica_authorization_status`</td>
      <td>`STRING`</td>
      <td>Whether the token is authorized under MiCA according to the official register: `emt_authorized`, `art_authorized`, `not_authorized`, `application_withdrawn`, `out_of_scope_mifid`, `other_crypto_asset` or `not_checked`. A sourced regulatory fact, unlike `mica_marker`, which is read off the peg.</td>
    </tr>

    <tr>
      <td>`regulatory_supervised`</td>
      <td>`STRING`</td>
      <td>What the issuer discloses about its own supervision: `true`, `false` or `unknown`. A disclosure, never an inference.</td>
    </tr>

    <tr>
      <td>`regulator`</td>
      <td>`STRING`</td>
      <td>The authority the issuer names as its supervisor, such as `NYDFS/FinCEN`. Empty where the issuer names none.</td>
    </tr>

    <tr>
      <td>`reserves_source`</td>
      <td>`STRING`</td>
      <td>Where the reserve figure comes from: `attestation` for an issuer-published report, `onchain` where the backing addresses are identified and the balance computed here, `none` where the issuer publishes nothing.</td>
    </tr>

    <tr>
      <td>`reserves_attestor`</td>
      <td>`STRING`</td>
      <td>The firm signing the attestation, filled in where `reserves_source` is `attestation`.</td>
    </tr>

    <tr>
      <td>`return_treatment`</td>
      <td>`STRING`</td>
      <td>How the token treats the income the underlying pays: `total_return`, `price_return`, `price_return_with_distribution` or `not_applicable`. Keyed on the token rather than on what it tracks, so two tokenizations of one share can differ.</td>
    </tr>

    <tr>
      <td>`issuer_legal_name`</td>
      <td>`STRING`</td>
      <td>The issuing entity as a government register spells it, which is routinely not the brand.</td>
    </tr>

    <tr>
      <td>`issuer_domicile`</td>
      <td>`STRING`</td>
      <td>ISO 3166-1 alpha-2 country code of where the issuing entity is registered, such as `US`. Resolved from the issuing project, so it is null when that project has no domicile on file.</td>
    </tr>

    <tr>
      <td>`issuer_lei`</td>
      <td>`STRING`</td>
      <td>Legal Entity Identifier of the issuing entity.</td>
    </tr>

    <tr>
      <td>`issuer_cik`</td>
      <td>`STRING`</td>
      <td>SEC Central Index Key of the issuing entity.</td>
    </tr>

    <tr>
      <td>`issuer_regulatory_framework`</td>
      <td>`ARRAY<STRING>`</td>
      <td>Regimes the issuing entity operates under. An array because an entity can sit under several at once.</td>
    </tr>

    <tr>
      <td>`issuer_legal_source_url`</td>
      <td>`STRING`</td>
      <td>The filing or register the legal fields above were read from, with `issuer_legal_retrieved_at` recording when.</td>
    </tr>

    <tr>
      <td>`issuer_legal_retrieved_at`</td>
      <td>`STRING`</td>
      <td>When `issuer_legal_source_url` was last read.</td>
    </tr>

    <tr>
      <td>`use_of_income`</td>
      <td>`STRING`</td>
      <td>What the issuer says it does with the income the underlying pays, in its own words. `return_treatment` is the coded answer to the same question.</td>
    </tr>

    <tr>
      <td>`isin`</td>
      <td>`STRING`</td>
      <td>International Securities Identification Number of the instrument, where it has one.</td>
    </tr>

    <tr>
      <td>`cusip`</td>
      <td>`STRING`</td>
      <td>CUSIP of the instrument, where it has one.</td>
    </tr>

    <tr>
      <td>`peg_currency`</td>
      <td>`STRING`</td>
      <td>ISO currency code of the peg, set when the asset tracks a national currency. Empty otherwise: a fund strategy, a share or a commodity is not a peg.</td>
    </tr>

    <tr>
      <td>`project_relations`</td>
      <td>`ARRAY<STRUCT>`</td>
      <td>Every project linked to the asset, one element per `(project_id, relation)`. `relation` is `issuer`, `asset_manager`, `risk_curator` or `manager`. Most assets link to one project; a few link to several, such as an issuer alongside a separate manager.</td>
    </tr>

    <tr>
      <td>`issuer_project_id`</td>
      <td>`STRING`</td>
      <td>The project whose relation is `issuer`, when exactly one project holds that relation. Empty when none do, and empty when more than one does; read `project_relations` for the full set.</td>
    </tr>

    <tr>
      <td>`coingecko_id`</td>
      <td>`STRING`</td>
      <td>Identifier of the same asset in the CoinGecko catalogue, for joining our record to a public one.</td>
    </tr>

    <tr>
      <td>`coinmarketcap_id`</td>
      <td>`STRING`</td>
      <td>Identifier of the same asset in the CoinMarketCap catalogue, for the same purpose.</td>
    </tr>

    <tr>
      <td>`yahoo_ticker`</td>
      <td>`STRING`</td>
      <td>Ticker the underlying trades under on Yahoo Finance, where it is listed.</td>
    </tr>
  </tbody>
</table>

**Deployments**

One row per token contract on one chain, in `dimensions.asset_tokens`. `bridged_status` is the classification the supply measures split on.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`asset_token_id`</td>
      <td>`STRING`</td>
      <td>Identifier of the deployment, formatted `{asset_id}-{token_address}-{chain_id}`.</td>
    </tr>

    <tr>
      <td>`asset_id`</td>
      <td>`STRING`</td>
      <td>Asset the deployment belongs to. Joins `dimensions.assets`.</td>
    </tr>

    <tr>
      <td>`token_id`</td>
      <td>`STRING`</td>
      <td>Key of the deployment in `dimensions.tokens`, formatted `{token_address}-{chain_id}`.</td>
    </tr>

    <tr>
      <td>`chain_id`</td>
      <td>`STRING`</td>
      <td>Chain the contract is deployed on.</td>
    </tr>

    <tr>
      <td>`token_address`</td>
      <td>`STRING`</td>
      <td>Address of the token contract.</td>
    </tr>

    <tr>
      <td>`is_bridged`</td>
      <td>`BOOL`</td>
      <td>Raw registry flag: bridged in rather than issued natively. Always present, so `false` means native or unstated. Filter on `bridged_status` instead.</td>
    </tr>

    <tr>
      <td>`bridged_status`</td>
      <td>`STRING`</td>
      <td>The classification supply measures split on: `native`, `bridged` or `unclassified`.</td>
    </tr>
  </tbody>
</table>

## Sample queries

**By peg currency**

`peg_currency` holds the ISO code of the national currency the asset tracks, and `off_peg` on [Metrics](https://tokenterminal.com/docs/catalog/stablecoins/metrics.md) measures against that currency's end-of-day rate.

```sql theme={null}
select
    peg_currency,
    count(*) as assets
from `dimensions.assets`
where asset_type = 'stablecoin'
group by peg_currency
order by assets desc
```

**MiCA candidates**

`mica_marker` follows from the peg alone: `art_by_peg` marks a stablecoin that references something other than a single currency, and `emt_by_peg` a single-currency one.

```sql theme={null}
select
    asset_id,
    symbol,
    peg_currency,
    reference_asset_id,
    mica_marker
from `dimensions.assets`
where asset_type = 'stablecoin'
  and mica_marker = 'art_by_peg'
order by asset_id
```

**Who issues what**

`issuer_project_id` is the project holding the `issuer` relation, and it is the row subject of the matrix on [Coverage](https://tokenterminal.com/docs/catalog/stablecoins.md).

```sql theme={null}
select
    assets.issuer_project_id,
    projects.name,
    count(*) as stablecoins
from `dimensions.assets` as assets
join `dimensions.projects` as projects
    on projects.project_id = assets.issuer_project_id
where assets.asset_type = 'stablecoin'
group by assets.issuer_project_id, projects.name
order by stablecoins desc
limit 25
```

**Pegs against deployments**

Counting native and bridged deployments apart shows where wrappers concentrate, and so where a careless supply total double counts.

```sql theme={null}
select
    assets.peg_currency,
    assets.mica_marker,
    count(distinct assets.asset_id) as stablecoins,
    countif(deployments.bridged_status = 'native') as native_deployments,
    countif(deployments.bridged_status = 'bridged') as bridged_deployments,
    count(distinct deployments.chain_id) as chains
from `dimensions.assets` as assets
left join `dimensions.asset_tokens` as deployments
    using (asset_id)
where assets.asset_type = 'stablecoin'
group by assets.peg_currency, assets.mica_marker
order by stablecoins desc
```

**Deployments of one stablecoin**

`bridged_status` reads `native`, `bridged` or `unclassified`, and it is the column issuance filters on.

```sql theme={null}
select
    deployments.asset_token_id,
    deployments.chain_id,
    deployments.token_address,
    deployments.bridged_status
from `dimensions.asset_tokens` as deployments
join `dimensions.assets` as assets
    using (asset_id)
where assets.asset_type = 'stablecoin'
  and assets.asset_id = 'usdc'
order by deployments.chain_id
```


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