> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dune.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stablecoin Balances (Solana)

> Daily stablecoin balances per wallet on Solana

export const StablecoinBalancesSupplyNote = ({filterHint, includeCoverageGap = false, includeAddressCategoryBridge = false, hasIsCirculatingField = false}) => <>
    <h2>Interpreting balances vs circulating supply</h2>
    <ul>
      <li>This table records onchain balances per address per day. Totals are not equivalent to circulating supply by default — bridge-locked, issuer-escrow, and CEX proof-of-assets balances are intentionally retained so you can analyze them.</li>
      <li>
        Two metrics, two recipes:
        <ul>
          <li><strong>Total balances</strong> — sum <code>balance_usd</code> with no exclusion filter. Includes bridge-locked funds (e.g., more than $4B USDT can appear in the Tether <code>USDT0Adapter</code> contract on Ethereum while representing circulating <code>USDT0</code> on other chains), issuer escrow, and CEX-locked balances.</li>
          {hasIsCirculatingField ? <li><strong>Circulating supply</strong> — add <code>WHERE is_circulating = true</code>. The flag excludes lock-and-mint / rollup-escrow / check-balance / non-minting bridges (<code>address_subcategory</code> in <code>bridge_lockAndMint</code>, <code>bridge_rollup_escrow</code>, <code>bridge_check_balance</code>, <code>bridge_nonMinting</code>), issuer bridge escrow, and CEX proof-of-assets wallets (e.g., Binance Stablecoin Proof of Assets).</li> : <li><strong>Circulating supply</strong> — this foundation table does not carry the <code>is_circulating</code> flag. Use the enriched balances table (<code>stablecoins_evm.balances_enriched</code>, <code>stablecoins_solana.balances_enriched</code>, or <code>stablecoins_tron.balances_enriched</code>) and filter <code>WHERE is_circulating = true</code>.</li>}
        </ul>
      </li>
      <li>We retain bridge / issuer-escrow / CEX-locked balances in the table itself because exclusions are not objective across bridge designs, and some bridge-held balances represent liquidity for chains not covered elsewhere. The <code>is_circulating</code> flag encodes Dune's best-known classification — readable, auditable, and revisable as coverage improves.</li>
      {includeCoverageGap && <li>Excluding only selected bridges would also be incomplete in practice: some bridge-held balances represent liquidity for chains not covered elsewhere (for example Lighter and Hyperliquid bridge balances).</li>}
      {includeAddressCategoryBridge && <li>Bridge exposure is directly analyzable with <code>address_category = 'bridge'</code>.</li>}
      {filterHint && <li>{filterHint}</li>}
    </ul>
  </>;

export const TableSample = ({tableName, tableSchema}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}&darkMode=true`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
  </>;

export const PrepackagedEnrichedCtaCard = ({href, title = "Upgrade to the enriched dataset"}) => <Card title={title} icon="info" href={href}>
    Skip manual reconstruction. The enriched version packages attribution and methodology so you can move from raw data to insights faster.
  </Card>;

The `stablecoins_solana.balances` table contains daily stablecoin balances per wallet on Solana.

One row represents one wallet-token balance snapshot for a specific day. Coverage includes both SPL and SPL2022 stablecoin balances.

<PrepackagedEnrichedCtaCard href="/data-catalog/curated/stablecoins/balances-enriched/stablecoins-solana-balances-enriched" />

## Table schema

| Column           | Type        | Description                                |
| ---------------- | ----------- | ------------------------------------------ |
| `blockchain`     | `VARCHAR`   | Chain name (`solana`)                      |
| `day`            | `DATE`      | Balance date                               |
| `address`        | `VARCHAR`   | Wallet address                             |
| `token_symbol`   | `VARCHAR`   | Token symbol                               |
| `token_address`  | `VARCHAR`   | Token mint address                         |
| `token_standard` | `VARCHAR`   | Token standard (`spl_token` / `token2022`) |
| `token_id`       | `VARCHAR`   | Token id (typically NULL)                  |
| `currency`       | `VARCHAR`   | ISO 4217 currency code                     |
| `balance_raw`    | `UINT256`   | Raw balance                                |
| `balance`        | `DOUBLE`    | Decimals-adjusted balance                  |
| `balance_usd`    | `DOUBLE`    | USD value                                  |
| `last_updated`   | `TIMESTAMP` | Last balance update time                   |

<TableSample tableSchema="stablecoins_solana" tableName="balances" />

## Sample Queries

```sql theme={null}
SELECT
    b.day
    , b.token_symbol
    , SUM(b.balance_usd) AS total_supply_usd
FROM stablecoins_solana.balances AS b
WHERE b.balance > 0
    AND b.day >= CURRENT_DATE - INTERVAL '30' DAY
GROUP BY b.day, b.token_symbol
ORDER BY b.day DESC, total_supply_usd DESC
```

## Notes

* Balances are forward-filled by day.
* For best performance, filter by `day`.
* For multichain aggregate balances, see `stablecoins_multichain.balances`.

<StablecoinBalancesSupplyNote />
