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

# Stablecoins

> Supply, transfer volume and active addresses by stablecoin and by chain

## Snapshot by stablecoin

```bash theme={null}
curl -s "https://data-svc.artemisxyz.com/v2/data/STABLECOIN_SUPPLY,STABLECOIN_TRANSFER_VOLUME,STABLECOIN_DAU?symbols=usdc,usdt,dai,usde&startDate=2026-08-01&endDate=2026-08-01&summarize=true&APIKey=$ARTEMIS_API_KEY"
```

| Stablecoin | Supply | Transfer volume | Active addresses |
| - | - | - | - |
| USDT | \$184.22B | \$28.25B | 3,155,414 |
| USDC | \$73.34B | \$82.78B | 1,039,965 |
| DAI | \$3.85B | \$1.14B | 111,987 |
| USDe | \$3.55B | \$0.18B | 1,237 |

USDC turns over more than its own supply in a day; USDT turns over about 15% of its. That's a velocity comparison, not a ratio of like quantities. Supply is a closing-balance snapshot and transfer volume is a daily `SUM`. `summarize=true` returns the `endDate` day's value for each metric here, not a period aggregate; see [Core concepts](/docs/artemis-api/core-concepts).

## Metrics

| Metric | Label | Unit | Aggregation |
| - | - | - | - |
| `STABLECOIN_SUPPLY` | Stablecoin Supply | Currency | `FIRST` |
| `STABLECOIN_TRANSFER_VOLUME` | Stablecoin Transfer Volume | Currency | `SUM` |
| `STABLECOIN_DAU` | Stablecoin Daily Active Users | Nominal | `AVERAGE` |
| `STABLECOIN_DAILY_TXNS` | Stablecoin Transactions | Nominal | `SUM` |

`STABLECOIN_DAU`, like every `*DAU` metric, aggregates `AVERAGE`: a period figure is an average of daily actives, never a summed count.

<Note>
  `STABLECOIN_SUPPLY` is a closing-balance snapshot: each monthly bucket carries that month's **last** day. Verified against the daily series for May 2026 (matches 2026-05-31) and June 2026 (matches 2026-06-30).
</Note>

<Note>
  Transfer volume reflects **gross transfers** as of the July 2026 methodology change, and the previously available Artemis-filtered and P2P variants have been retired. See [Stablecoin metrics methodology](/docs/data-reference/stablecoin-methodology).
</Note>

## Split supply by chain

```bash theme={null}
curl -s "https://data-svc.artemisxyz.com/v2/data/STABLECOIN_SUPPLY?symbols=usdc&startDate=2026-08-01&endDate=2026-08-01&dimensionType=CHAIN&APIKey=$ARTEMIS_API_KEY"
```

29 rows come back, one per chain, `asset` named `<chain>-usdc` (`ethereum-usdc`, `solana-usdc`, and so on) with a human-readable `display_name`. The top eight on 2026-08-01:

| Chain | Supply | Share |
| - | - | - |
| Ethereum | \$48.59B | 66.3% |
| Solana | \$6.96B | 9.5% |
| Hyperevm | \$5.65B | 7.7% |
| Base | \$4.19B | 5.7% |
| Arbitrum | \$2.32B | 3.2% |
| Polygon PoS | \$1.74B | 2.4% |
| BNB Chain | \$1.63B | 2.2% |
| Avalanche C-Chain | \$0.48B | 0.6% |

All 29 rows sum to \$73,339,893,117.60, exactly the undifferentiated `STABLECOIN_SUPPLY` total for `usdc` on the same day, so this particular cut is a clean partition. That's worth checking rather than assuming: `cuts` in `/supported-metrics/` lists what a metric *advertises*, not what it delivers, and a listed `dimensionType` can still fail to reconcile, or fail outright. Confirm with a live call before publishing a breakdown built on one.

## Track supply over time

```python theme={null}
import datetime
import os
import requests

resp = requests.get(
    "https://data-svc.artemisxyz.com/v2/data/STABLECOIN_SUPPLY",
    params={
        "symbols": "usdc,usdt",
        "startDate": "2026-05-01",
        "endDate": "2026-08-01",
        "granularity": "MONTH",
        "APIKey": os.environ["ARTEMIS_API_KEY"],
    },
    timeout=120,
)
resp.raise_for_status()

for s in resp.json()["series"]:
    print(s["display_name"])
    for ts, v in s["data"]:
        if v is not None:
            date = datetime.datetime.utcfromtimestamp(ts / 1000).date()
            print(f"  {date}  ${v/1e9:,.2f}B")
```

```
USDC
  2026-05-01  $73.47B
  2026-06-01  $74.68B
  2026-07-01  $73.26B
USDT
  2026-05-01  $188.69B
  2026-06-01  $185.07B
  2026-07-01  $184.25B
```

Each month is labelled by its **first** day, so `2026-06-01` is June's bucket. That's the same start-of-period convention every ordinary time series uses (see [Core concepts](/docs/artemis-api/core-concepts)), even though the value inside it is that month's **closing** supply, not its opening one.

Only three months print for a range that asks for four, because a `MONTH` bucket resolves once `endDate` reaches that period's end. For a period still in progress, it resolves to the most recent day with data.

Keep the `if v is not None` guard: an unresolved bucket comes back as a well-formed row with a null value, the same shape covered in [Sector leaderboards](/docs/artemis-api/recipes/sector-leaderboards).


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