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

# Yields

> The yield an asset pays, per asset and per deployment.

A yield is a rate written as a fraction: `0.05` is five percent. `apy` is the yield over the past year, measured once per asset per day and never added up across assets, deployments or days.

## Coverage

Every issuer that reports a yield, and the chains it pays on. One row per issuer.

<div class="tt-roster">
  <table class="tt-coverage">
    <thead>
      <tr>
        <th width="260">Issuer</th>
        <th class="tt-flex">Chains</th>
      </tr>
    </thead>

    <tbody>
      <tr><td><code>3jane</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>aave</code></td><td class="tt-flex"><code>arbitrum</code>, <code>avalanche</code>, <code>base</code>, <code>bsc</code>, <code>ethereum</code>, <code>gnosis</code>, <code>linea</code>, <code>optimism</code>, <code>plasma</code>, <code>polygon</code>, <code>scroll</code>, <code>sonic</code>, <code>zksyncera</code></td></tr>
      <tr><td><code>accountable</code></td><td class="tt-flex"><code>monad</code></td></tr>
      <tr><td><code>angle</code></td><td class="tt-flex"><code>arbitrum</code>, <code>ethereum</code>, <code>gnosis</code></td></tr>
      <tr><td><code>anzen</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>blast</code>, <code>ethereum</code></td></tr>
      <tr><td><code>apyx</code></td><td class="tt-flex"><code>base</code>, <code>ethereum</code></td></tr>
      <tr><td><code>capapp</code></td><td class="tt-flex"><code>ethereum</code>, <code>katananetwork</code>, <code>megaeth</code>, <code>tempo</code></td></tr>
      <tr><td><code>centrifuge</code></td><td class="tt-flex"><code>arbitrum</code>, <code>avalanche</code>, <code>base</code>, <code>bsc</code>, <code>celo</code>, <code>ethereum</code>, <code>monad</code>, <code>optimism</code>, <code>plumenetwork</code>, <code>solana</code>, <code>stellar</code></td></tr>
      <tr><td><code>circle</code></td><td class="tt-flex"><code>bsc</code>, <code>ethereum</code>, <code>near</code>, <code>solana</code></td></tr>
      <tr><td><code>coinshift</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>curve</code></td><td class="tt-flex"><code>ethereum</code>, <code>xdc</code></td></tr>
      <tr><td><code>dtrinity</code></td><td class="tt-flex"><code>sonic</code></td></tr>
      <tr><td><code>ethena</code></td><td class="tt-flex"><code>aptos</code>, <code>arbitrum</code>, <code>avalanche</code>, <code>base</code>, <code>berachain</code>, <code>blast</code>, <code>bsc</code>, <code>ethereum</code>, <code>hyperevm</code>, <code>linea</code>, <code>manta</code>, <code>megaeth</code>, <code>monad</code>, <code>optimism</code>, <code>plasma</code>, <code>robinhoodchain</code>, <code>solana</code>, <code>tempo</code>, <code>zksyncera</code></td></tr>
      <tr><td><code>etherfi</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>falconfinance</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>fraxstablecoin</code></td><td class="tt-flex"><code>arbitrum</code>, <code>ethereum</code>, <code>fraxtal</code>, <code>katananetwork</code>, <code>seievm</code>, <code>sonic</code></td></tr>
      <tr><td><code>fxprotocol</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>gauntlet</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>gyroscope</code></td><td class="tt-flex"><code>arbitrum</code>, <code>avalanche</code>, <code>ethereum</code>, <code>optimism</code>, <code>polygon</code></td></tr>
      <tr><td><code>hastra</code></td><td class="tt-flex"><code>ethereum</code>, <code>solana</code></td></tr>
      <tr><td><code>inversefinance</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>k3capital</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>kelpdao</code></td><td class="tt-flex"><code>ethereum</code>, <code>megaeth</code></td></tr>
      <tr><td><code>lido</code></td><td class="tt-flex"><code>ethereum</code>, <code>megaeth</code>, <code>robinhoodchain</code></td></tr>
      <tr><td><code>makerdao</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>optimism</code>, <code>unichain</code></td></tr>
      <tr><td><code>mantle</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>maple</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>plasma</code>, <code>robinhoodchain</code>, <code>solana</code></td></tr>
      <tr><td><code>midas</code></td><td class="tt-flex"><code>base</code>, <code>ethereum</code>, <code>monad</code>, <code>plasma</code>, <code>rootstock</code>, <code>starknet</code></td></tr>
      <tr><td><code>morpho</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>hyperevm</code>, <code>monad</code>, <code>optimism</code>, <code>polygon</code>, <code>robinhoodchain</code>, <code>unichain</code>, <code>worldchain</code></td></tr>
      <tr><td><code>mountainprotocol</code></td><td class="tt-flex"><code>arbitrum</code>, <code>avalanche</code>, <code>base</code>, <code>celo</code>, <code>ethereum</code>, <code>optimism</code>, <code>polygon</code>, <code>zksyncera</code></td></tr>
      <tr><td><code>nest</code></td><td class="tt-flex"><code>arbitrum</code>, <code>ethereum</code>, <code>plasma</code>, <code>plumenetwork</code>, <code>solana</code></td></tr>
      <tr><td><code>neutrl</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>noon</code></td><td class="tt-flex"><code>ethereum</code>, <code>starknet</code>, <code>zksyncera</code></td></tr>
      <tr><td><code>ondo</code></td><td class="tt-flex"><code>aptos</code>, <code>arbitrum</code>, <code>ethereum</code>, <code>mantle</code>, <code>polygon</code>, <code>ripple</code>, <code>seievm</code>, <code>solana</code>, <code>stellar</code>, <code>sui</code></td></tr>
      <tr><td><code>openedendigital</code></td><td class="tt-flex"><code>arbitrum</code>, <code>bsc</code>, <code>ethereum</code>, <code>ripple</code>, <code>solana</code></td></tr>
      <tr><td><code>opentrade</code></td><td class="tt-flex"><code>avalanche</code></td></tr>
      <tr><td><code>pareto</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>re</code></td><td class="tt-flex"><code>avalanche</code>, <code>base</code>, <code>ethereum</code>, <code>tempo</code></td></tr>
      <tr><td><code>resupply</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>rocketpool</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>saturn</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>securitize</code></td><td class="tt-flex"><code>aptos</code>, <code>arbitrum</code>, <code>avalanche</code>, <code>bsc</code>, <code>ethereum</code>, <code>optimism</code>, <code>polygon</code>, <code>solana</code></td></tr>
      <tr><td><code>sivo</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>spark</code></td><td class="tt-flex"><code>robinhoodchain</code></td></tr>
      <tr><td><code>spiko</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>polygon</code>, <code>solana</code>, <code>starknet</code>, <code>stellar</code></td></tr>
      <tr><td><code>st0x</code></td><td class="tt-flex"><code>base</code></td></tr>
      <tr><td><code>stakewise</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>strata</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>superstate</code></td><td class="tt-flex"><code>ethereum</code>, <code>solana</code></td></tr>
      <tr><td><code>swell</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>tenbinlabs</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>textilecredit</code></td><td class="tt-flex"><code>base</code>, <code>ethereum</code></td></tr>
      <tr><td><code>theo</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>hyperevm</code></td></tr>
      <tr><td><code>tronusdd</code></td><td class="tt-flex"><code>bsc</code>, <code>ethereum</code></td></tr>
      <tr><td><code>upshiftfinance</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>usdai</code></td><td class="tt-flex"><code>arbitrum</code>, <code>ethereum</code>, <code>plasma</code></td></tr>
      <tr><td><code>usual</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>xsy</code></td><td class="tt-flex"><code>base</code></td></tr>
      <tr><td><code>yieldfi</code></td><td class="tt-flex"><code>arbitrum</code>, <code>base</code>, <code>ethereum</code>, <code>katananetwork</code>, <code>optimism</code>, <code>plumenetwork</code>, <code>sonic</code></td></tr>
      <tr><td><code>yieldnest</code></td><td class="tt-flex"><code>ethereum</code></td></tr>
      <tr><td><code>yieldoptimizer</code></td><td class="tt-flex"><code>base</code></td></tr>
      <tr><td><code>yuzu</code></td><td class="tt-flex"><code>plasma</code></td></tr>
    </tbody>
  </table>
</div>

## Tables

<Tabs>
  <Tab title="Asset">
    One row per asset per day, in `metrics_assets.apy_daily`.

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

      <tbody>
        <tr><td><code>timestamp</code></td><td>TIMESTAMP</td><td>Midnight UTC of the day measured.</td></tr>
        <tr><td><code>asset\_id</code></td><td>STRING</td><td>Identifier of the asset, for example <code>usdc</code>. Joins <code>dimensions.assets</code>.</td></tr>
        <tr><td><code>apy</code></td><td>FLOAT64</td><td>The asset's yield over the past year, written as a fraction: <code>0.05</code> means five percent. Measured once per asset per day, and never added up.</td></tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="Deployment">
    One row per deployment per day, in `metrics_asset_tokens.apy_daily`. A deployment is one token contract on one chain.

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

      <tbody>
        <tr><td><code>timestamp</code></td><td>TIMESTAMP</td><td>Midnight UTC of the day measured.</td></tr>
        <tr><td><code>asset\_token\_id</code></td><td>STRING</td><td>Identifier of the deployment, formatted <code>\{asset\_id}-\{token\_address}-\{chain\_id}</code>. Joins <code>dimensions.asset\_tokens</code>.</td></tr>
        <tr><td><code>apy</code></td><td>FLOAT64</td><td>Yield over the past year, written as a fraction and kept within <code>(0, 0.50]</code>. Measured once per asset, on the deployment with the largest circulating market cap, then copied onto the asset's other deployments. Never added up.</td></tr>
      </tbody>
    </table>
  </Tab>
</Tabs>

## Sample queries

<Tabs>
  <Tab title="Highest asset yields">
    Yield and supply are two tables, joined on `asset_id` at one `timestamp`. `market_cap_circulating_total` is the weight to read a rate against.

    ```sql theme={null}
    with yields as (
        select asset_id, apy
        from `metrics_assets.apy_daily`
        where timestamp = timestamp('2026-08-20')
    ),

    supply as (
        select asset_id, market_cap_circulating_total
        from `metrics_assets.market_cap_circulating_total_daily`
        where timestamp = timestamp('2026-08-20')
    )

    select
        assets.name,
        assets.asset_type,
        yields.apy,
        supply.market_cap_circulating_total
    from yields
    left join supply
        using (asset_id)
    join `dimensions.assets` as assets
        using (asset_id)
    order by yields.apy desc
    limit 25
    ```
  </Tab>

  <Tab title="One asset over time">
    A `full join` on `timestamp` keeps a day with a yield but no supply figure, and the reverse. Bound `timestamp` on both sides: an unbounded side reads its whole table.

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

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

    select
        timestamp,
        yields.apy,
        supply.market_cap_circulating_total
    from yields
    full join supply
        using (timestamp)
    order by timestamp
    ```
  </Tab>

  <Tab title="Supply-weighted average">
    Each day's rates are weighted by circulating market cap, so a large asset moves the average more than a small one. `asset_type` on `dimensions.assets` is what narrows the average to one class of asset.

    ```sql theme={null}
    with yields as (
        select asset_id, timestamp, apy
        from `metrics_assets.apy_daily`
        where timestamp >= timestamp('2026-07-01')
    ),

    supply as (
        select asset_id, timestamp, market_cap_circulating_total
        from `metrics_assets.market_cap_circulating_total_daily`
        where timestamp >= timestamp('2026-07-01')
          and market_cap_circulating_total > 0
    )

    select
        yields.timestamp,
        sum(yields.apy * supply.market_cap_circulating_total)
            / sum(supply.market_cap_circulating_total) as weighted_apy
    from yields
    join supply
        using (asset_id, timestamp)
    join `dimensions.assets` as assets
        using (asset_id)
    where assets.asset_type = 'rwa'
    group by yields.timestamp
    order by yields.timestamp
    ```
  </Tab>

  <Tab title="Yield by chain">
    The deployment table has `asset_token_id` alone, so the chain comes from `dimensions.asset_tokens`.

    ```sql theme={null}
    select
        daily.timestamp,
        deployments.chain_id,
        daily.apy
    from `metrics_asset_tokens.apy_daily` as daily
    join `dimensions.asset_tokens` as deployments
        using (asset_token_id)
    where deployments.asset_id = 'buidl'
      and daily.timestamp >= timestamp('2026-08-01')
    order by daily.timestamp, deployments.chain_id
    ```
  </Tab>
</Tabs>
