Methodology

How every number on FXscan is made. Short version first; open a topic for the full rules.

In short

What we track
Fiat-backed stablecoins pegged to a currency other than the US dollar.
Supply
We read totalSupply onchain from each chain and subtract named issuer treasuries. 1 stablecoin still shows DefiLlama's figure because a chain read is missing or failed, and 2 stablecoins still show DefiLlama's figure, with an alert, until the gap is explained (see Supply).
Prices
Supply valued at each stablecoin's trading price, or at the reference FX rate where none exists.
Changes
7-day and 30-day changes are in each stablecoin's own currency, so exchange-rate moves don't count.
FX gap and cost
Stablecoin price vs the market rate, in bps (100 bps = 1%). Cost adds pool fee and price impact.
Updates
About once a day. A refresh that fails our checks is not published.
What we trackFiat-backed, non-USD stablecoins only. 14 other stablecoins are left out of every page and total.

We count a stablecoin only if fiat money backs it. On 2026-10-03 we checked every stablecoin DefiLlama labels crypto-backed or algorithmic against its issuer's own documents. Those backed by crypto, a USD-stablecoin vault or a protocol reserve are left out of every page and total. Two more that DefiLlama labels fiat-backed are left out as well: we found no issuer, reserves or redemption for one, and the other's issuer site is parked.

SupplyWe read totalSupply onchain from each chain and subtract named issuer treasuries.

How we get it. We read totalSupply onchain from each chain and subtract named issuer treasuries. Supply on a chain is the sum of those reads. Bridged copies count once.

Chart start. Charts start in Jan 2020. For a stablecoin that launched earlier, the chart starts there and earlier supply isn't shown.

Bridged copies. Bridged copies of a stablecoin are left out of supply totals, so the same coins are not counted twice. Their contracts are still listed on the stablecoin's page, marked “Bridged, not counted in supply”.

Chains without past supply reads. We read today's supply on Algorand, Noble, Hedera and ICP onchain, but not past supply there. Charts use DefiLlama's series for these chains where it has one; where it doesn't, the chart leaves that chain out or shows it as “Chain unknown”. Contracts on these chains are still listed, with a link to the chain's block explorer. Which stablecoins this affects is in each issuer's FAQ.

Replaced contracts. When an issuer replaces a stablecoin's contract, we read the old contract up to the switch, then the new one, and join the two into one line, counted once. Example: Monerium.

Turnover screen. Where we read transfers ourselves, a contract's transfer volume, transfer count and active wallets are left out when its monthly transfer volume was more than 3 times its supply in a recent month. That much movement is a few wallets passing the same coins back and forth, not use. Their supply still counts. Which stablecoins are held out is in each issuer's FAQ.

Known gaps. Each issuer’s known gaps are listed in the FAQ on its page. Exchange rates before July 2022: a few currencies have no monthly reference rate from a central bank or aggregator before then, so their USD values start in July 2022.

What it is. Every stablecoin issued on the chains we read, minus wallets a public source names as the issuer's (not issued yet, treasury or reserve, or waiting to be burned). Each stablecoin's wallets are listed in the FAQ on its own page. When that page says an exclusion is our own on-chain inference, no public source names the wallet.

BBRL on XRPL. Two Braza accounts are left out of supply. Each one is issuer-side stock, not circulating stablecoins. The Domain is on the account page. Balances are from ledger 107727928, closed 2026-10-17 23:59:52 UTC.

rfRE2WcLHmoTJ31GD6HxysckieZNYMt4GX is counted, 405,141.31 BBRL. Its Domain is Braza's retail app (braza.uk/braza-on), and it has paid third-party accounts. Who owns the balance is unverified.

EURQ on XRPL. Both Quantoz accounts are left out of supply. The exclusion is our own on-chain inference from the source transactions, not a name a public source published. The stablecoin page lists a wallet under Left out of supply only when its balance is at least $1,000. The smaller account stays in this list.

IDRP on Polygon. mint() on IDRP.sol credits only the depository, 0x5a84ce5dd91e965b08e16809a966c83d46ab50d3. Six more wallets hold issuer distribution stock and are left out. 0x732c… and 0x16ce… are funded by the depository. They send stock to a burn or to the IDRPController, and they also pay third-party wallets (0x834b…, 0x9dc0…, 0x344b…, 0x6cb5…, 0x2388…) that then burn and hold about nothing today. 0xb447… also sent smaller amounts to third parties. The 30 Nov 2025 read was 12.50bn in the depository and 875m in the distribution wallet 0x732c…. The 31 Jan 2026 read was the low one: the months on either side were stock in 0x0cef…, 0x16ce…, 0xc0ad…, and then in 0x88ca… and 0xb447…. The 28 Feb 2026 read sits between 25,139,990,000 sent to 0x88ca… and 25,140,000,000 sent on to the controller.

IDRP on Kaia. Wallet 0xced9894cb05c4fe41dcd652ab9bed71667e18a55 held 6,012,964,064.54 IDRP at block 230078830, about 32% of the Kaia supply we count as circulating that day. We count that balance as circulating on our own reading. It looks like a customer or custodian wallet, not an issuer wallet.

How we check it. We compare with DefiLlama where it lists the stablecoin. We show our read, and DefiLlama's when a chain read is missing or the gap is not yet explained. On this data: 27 within 1% (cross-checked), 11 differ and we show ours with the reason, 1 shows DefiLlama's figure because a chain read is missing or failed, 2 show DefiLlama's figure with an alert until the gap is explained, and 25 are not on DefiLlama.

Details: when we use DefiLlama's figure

Within 1%, the page says cross-checked. Further apart, we still show our read and say how far it is from DefiLlama. More than 10% apart, the note starts with Alert. We show DefiLlama's figure when we have no contract address for one of the stablecoin's chains, when a chain read fails, or when the gap is wider than 10% and we cannot yet name the unissued or treasury balance behind it. In that last case the note still starts with Alert.

History. History is the same onchain read, taken on the 1st of each month, or daily from our own snapshots. Past supply is a totalSupply read at a past block, where we can make one. Mint and burn events are the count where we use them. Where we have neither, the chart uses DefiLlama's series for that chain and names it. Hyperliquid L1 starts at our first daily read, because its node has no past state. No point is estimated or filled in. A chain with no earlier read is marked on the chart on the day we first counted it. That step is the chain joining the total, not new stablecoins, and earlier days are not filled in. 3 of 66 stablecoins use DefiLlama's daily series because we can't yet read their past supply on every chain.

Details: how the history is built

Where we can read past supply from the contracts on every chain, the chart has one reading per month end since the stablecoin's launch, then one a day. Stablecoins we started reading recently have daily reads only, from the day we started. Where our figure counts chains DefiLlama leaves out, or where our own mint and burn history covers a chain DefiLlama's token series started late, the history is built chain by chain (18 stablecoins): contract reads where we can read past supply, DefiLlama's per-chain series elsewhere. Each point is the sum of the chains in the line that day. A chain with no past data is left out of the line. We name it under the chart when that chain holds at least $1,000. A smaller line stays in the total and is not named.

7-day and 30-day changes. Measured in each stablecoin's own currency, so exchange-rate moves don't count as growth; in USD the change is valued at today's price. A currency's 30-day change is its total supply now vs 30 days ago, across every stablecoin pegged to it, priced or not. The currency page and the rankings show this one figure. The 30-day change leaves out chains published as current supply only. Today's supply includes them.

Large moves. A stablecoin that moved over 100% in 30 days keeps its figure, marked “Large 30d move, check source” and listed below. It is not capped or dropped.

Blank changes. We leave a currency's 30-day change blank (a dash, never a zero) when one stablecoin with no USD price causes more than half of it. A currency with only one stablecoin shows that stablecoin's own change, unless the move is over 100%. On this data: IDR (IDRT), HKD (HKDAP) and MYR (MYRT).

The exact rule

Large moves: the source is DefiLlama's series or our onchain history (including a per-chain contract read). DefiLlama supplies the change when that is the history we show, or when our onchain history does not yet reach back 30 days.

The currency figure is left blank only when one unpriced stablecoin drives more than half of it. Drives more than half means that stablecoin's change in native units is strictly greater than half the currency's absolute native change. Absolute native change is the absolute value of the sum of each included stablecoin's native supply change: supply now, minus supply now divided by one plus that stablecoin's own 30-day change. A stablecoin with no 30-day figure, and a stablecoin down 100% or more, is left out of both sums. Exactly half still shows the currency figure. A currency whose whole basket moved less than 1%, up or down, always shows its figure. A priced stablecoin does not withhold it, even when that stablecoin carries the large-move badge. The blank is a dash on the currency page and in the rankings. It is not stored as zero.

StablecoinCurrency30-day changeSource
HKDAPHKD+1987.1%Onchain
BRSBRL+410.0%Onchain
WMXNMXN+119.3%Onchain

Currencies whose 30-day change is withheld on this data:

CurrencyDriven by
IDRIDRT
HKDHKDAP
MYRMYRT
USD and non-USD market shareNon-USD supply is what we measure. USD supply is DefiLlama's total for stablecoins pegged to the US dollar. A period with no measurement is left blank. Monthly is the default view.

How we get it. The home page chart is the non-USD share of stablecoin supply. Non-USD is the priced supply on the other charts: contract reads, or DefiLlama's history where we cannot read the past yet, in US dollars at the trading price or the reference FX rate. USD is the circulating supply of stablecoins pegged to the US dollar, from DefiLlama's public stablecoin chart (totalCirculatingUSD for peggedUSD only). No API key. The snapshot stores that URL and the time it was fetched.

What is left out. Floating pegs (DefiLlama's peggedVAR), gold, and commodity pegs are not in the USD total and are not in our non-USD total. DefiLlama's own totals for the euro, the real, and other non-USD pegs are not used. The non-USD figure is the one on this site.

Gaps. The home chart is one line of non-USD share. Weekly is each week. Monthly is the last measured week of the month. Yearly is the last measured week of the year. Where we have no non-USD measurement, or DefiLlama has no USD total in that week, that period is a gap in the line. It does not draw $0 or 0%, and it does not connect across the gap.

Share. Non-USD share is our supply divided by our supply plus the USD total. The bottom of the axis does not go below 0%. The top fits the highest measured share, with a little room above it. It is not a 0% to 100% scale.

PricesDeepest onchain pool vs USDC/USDT, else DefiLlama. Some chart history uses the ECB reference rate.

Today's price. The deepest pool against USDC or USDT (taken as $1) on Uniswap v3, Uniswap v4, Aerodrome Slipstream or Curve, preferring one with at least $10,000 on each side. We use it when DefiLlama has no price or agrees within 3%. Otherwise we use DefiLlama's price and say so. When DefiLlama has no price, a pool more than 10% off the ECB reference rate is not used. 32 of 66 stablecoins use a checked pool price.

Thin pools. When no pool has $10,000 on each side, the deepest pool with at least $1,000 on each side can still set the price, under the same checks, but only when DefiLlama has no price. That price is labelled "Thin pool" and shows how much is on each side, in USD.

Same block. Each run reads every pool on a chain at one block: the last block at or before 06:00 UTC, the same height as the supply read. The block is saved for each chain, and each pool records the block it was read at. If a chain's read fails, its tokens keep their last good prices for up to 3 days.

Details: how we read Uniswap v4 pools

A v4 pool has no contract of its own; it lives in Uniswap's PoolManager on each chain. For every stablecoin we try the four standard fee tiers without a hook, plus a reviewed list of other pools (other fees, or hooks), kept in the repository with how each was checked. Each pool's key is read onchain and must match its pool ID. The price comes from StateView, and the depth on each side from Uniswap's ReservesLens: the assets in the pool's price curve, without fees or units a hook holds. Pools whose hook can rewrite swaps (custom accounting) are skipped. We show the pool's fee tier (its LP fee, as Uniswap and GeckoTerminal name the pool; "dynamic" when a hook sets it), plus Uniswap's protocol fee where the pool pays one. Cost to convert uses both. Size costs come from Uniswap's v4 Quoter. v4 pools are not yet in our Swap-event volume index.

Past prices. Past USD values use DefiLlama's daily price. A day's price is skipped as a glitch if it is more than 10% off both that day's ECB reference rate and the stablecoin's median price over the 7 days either side. Some stablecoins have a price today but no price history. Their chart uses each day's ECB reference rate for past points, and today's trading price for the latest point. A currency with no ECB rate (NGN) uses our own daily read of the stablecoin's deepest pool instead, from the first day the pool had a price; with neither it stays out of the USD charts.

No trading price. One rule everywhere: a stablecoin with no trading price is valued at today's reference FX rate (native supply ÷ units per dollar: the ECB reference rate, else the currency's central bank, and CLP and VND at an interim public aggregator), so the overview, rankings, currency, issuer and chain totals all count it and add up to the same figure. Wherever such a stablecoin is part of a figure it is marked FX rate. A note under a header total names the rate (for example "part at the ECB rate", "at the central bank rate" or "at the interim aggregator rate"). Its USD chart uses each day's FX rate. It still has no FX gap, since there is no price to compare. A currency with no reference rate gets no USD value this way.

StablecoinSource
ARGt
Arbitrum · USD₮0
Curve
AUDD
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
AUDF
Base · USDC
Aerodrome Slipstream
AUDM
Ethereum · USDC
Uniswap v4
AUDX
DefiLlama has no price, so this thin pool is the price
Uniswap v4
BBRL
DefiLlama has no price, so this thin pool is the price
Curve
BRL1
Polygon · USDT0
Uniswap v3
BRLA
Polygon · USDC
Uniswap v3
BRLV
DefiLlama has no price, so this thin pool is the price
Uniswap v4
BRS
Base · USDC
Aerodrome Slipstream
BRZ
Polygon · USDT0
Uniswap v3
CADC
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
CADD
Ethereum · USDC
Curve
CHFAU
Ethereum · USDC
Uniswap v3
cNGN
Celo · USD₮
Uniswap v3
CNH24
No pool passed our depth rules at the last pool read (deepest smaller side $2.99)
No price
CNHTDefiLlama
COPM
DefiLlama has no price, so this thin pool is the price
Uniswap v3
EUR24No price
EURAU
Ethereum · USDC
Uniswap v3
EURC
Ethereum · USDC
Uniswap v4
EURCV
Ethereum · USDC
Uniswap v3
EURE
Arbitrum · USDC
Uniswap v3
EURI
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
EUROPDefiLlama
EURQ
Ethereum · USDT
Uniswap v3
EURR · StablRNo price
EURR · Bridge Building S.A.No price
EURS
Ethereum · USDC
Curve
EURT
The pool price is more than 10% off the ECB reference rate, so we don't use it
No price
EURWDefiLlama
GBPADefiLlama
GBPeNo price
HKDAPNo price
IBEURCoinGecko
IDRPNo price
IDRTNo price
IDRX
Polygon · USDT0
Uniswap v3
iTRYNo price
JPYC
Polygon · USDC
Uniswap v4
JPYSCDefiLlama
KRWQDefiLlama
MXNB
Arbitrum · USDC
Uniswap v3
MXNTDefiLlama
MYRC
Arbitrum · USD₮0
Uniswap v3
MYRTNo price
NZDD
No pool passed our depth rules at the last pool read (deepest smaller side $17.63)
No price
NZDSNo price
PHPCNo price
QCADDefiLlama
REURNo price
tGBP
Base · USDC
Aerodrome Slipstream
TRYBDefiLlama
VCHF
Base · USDC
Aerodrome Slipstream
VEUR
No pool passed our depth rules at the last pool read (deepest smaller side $70.98)
No price
VGBP
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
VNDC
BSC · USDT
PancakeSwap v2
WARS
Celo · USDC
Uniswap v4
WBRL
Ethereum · USDC
Uniswap v4
WCLP
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
WCOP
Base · USDC
Uniswap v4
WMXN
Its deepest pool is a thin pool, so we use DefiLlama's price
DefiLlama
WPENDefiLlama
XIDRNo price
XSGD
Base · USDC
Aerodrome Slipstream
ZARP
Base · USDC
Aerodrome Slipstream
FX gap and cost to convertThe stablecoin's USD price vs the market rate, in basis points, and the cost at three trade sizes.

Gap. A stablecoin's USD price × the market rate (units per USD) − 1, in basis points (100 bps = 1%). The price is the stablecoin price (its pool, else DefiLlama). + means the stablecoin costs more USD than the market rate, − that it costs less. One market rate per currency per refresh, so a stablecoin shows the same gap on every page. A gap of 5% or more is flagged "check price".

Market rate. For ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, EUR, GBP, HKD, IDR, JPY, KRW, MXN, MYR, NGN, NZD, PEN, PHP, SGD, TRY, VND and ZAR, the mid-market rate on Wise's public rate charts (sourced from Reuters/LSEG), within 60 minutes of the price read. Other currencies use the ECB reference rate (via Frankfurter), marked ECB. It is set once a day, so part of an ECB-based gap is market movement since then.

Dollar limits. These rates are not the gap. Transfer-activity dollar limits use a monthly average: the ECB reference rate where the ECB publishes one, and otherwise the currency's own central bank. CLP and VND stay on the interim line below until that feed is connected.ARS: Central Bank of Argentina wholesale reference rate (public API v4, variable 5), business days.COP: Banco de la República TRM (public SDMX daily series), business days.PEN: Central Reserve Bank of Peru 13:30 selling close (series PD04646PD), business days, Lima.NGN: Central Bank of Nigeria NFEM volume-weighted average (the bank's rates API), business days. Before December 2024, the bank's earlier US dollar central rate.CLP and VND: interim rate from a public aggregator until the central-bank feed is connected.Figures already saved still use the previous average until the monthly job rewrites them.

Cost to convert. Once a day we ask the stablecoin's deepest pool for a read-only quote at $1k, $10k and $50k each way. Cost = gap + pool fee + price impact, against the market rate; positive means you receive less than at the market rate. One pool, no routing, so an aggregator may do better. Gas and bank or ramp fees are not included. A size is "too thin" when the quote fails or moves the price more than 1% beyond the fee.

No pool quote. We read pools on Uniswap v3, Uniswap v4, Aerodrome Slipstream and Curve only, with at least $10,000 on each side. A stablecoin whose liquidity is elsewhere (another venue, or a chain we don't read) or whose pools are one-sided has no cost to convert, and its gap uses DefiLlama's price.

History. The same pool read at the ECB fixing time (14:10 Frankfurt time) on each working day of the last 12 months, against the market rate nearest that moment. Stablecoins without a pool use DefiLlama's daily price. Wise's hourly history is short, so older points mostly use the ECB reference rate; each stablecoin's chart says how many days use which. The /fx and stablecoin-page charts show the last 90 days by default (both can switch to 12 months), with a band for the 90-day average ± one standard deviation. Its target is our own yardstick: 5 bps for EUR, 10 bps for GBP, JPY, CHF, AUD, CAD, NZD, SGD and HKD, and 25 bps for every other currency.

No liquid market. These stablecoins have a market rate for their currency but no trading price, so there is no gap to show. They stay off the /fx table.

  • CNH24 (CNY). No CNH24 price: no pool passed our depth rules at the last pool read (deepest smaller side $2.99).
  • EUR24 (EUR). No EUR24 market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • EURR · StablR (EUR). No EURR market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • EURR · Bridge Building S.A. (EUR). No EURR market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • EURT (EUR). No EURT market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • REUR (EUR). No REUR market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • VEUR (EUR). No VEUR price: no pool passed our depth rules at the last pool read (deepest smaller side $70.98).
  • GBPe (GBP). No GBPe market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • HKDAP (HKD). No HKDAP market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • IDRP (IDR). No IDRP market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • IDRT (IDR). No IDRT market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • XIDR (IDR). No XIDR market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • MYRT (MYR). No MYRT market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • NZDD (NZD). No NZDD price: no pool passed our depth rules at the last pool read (deepest smaller side $17.63).
  • NZDS (NZD). No NZDS market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • PHPC (PHP). No PHPC market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
  • iTRY (TRY). No iTRY market meets our price rules: no pool against USDC or USDT has $10,000 on each side, and DefiLlama has no price.
Trading volumeTrading volume is the US dollar value of every swap in the pools we track. On EVM chains we read each pool's swap events onchain. On Solana, months older than the last 180 days come from Dune's DEX trade data. 125 published pools we have not read this way yet still use GeckoTerminal. Monthly history uses those readings for each month they cover. The 30-day and 24-hour totals stay on GeckoTerminal where those readings do not cover that window. Charts show each month or week on its own, never a running total.

Trading volume is the US dollar value of every swap in the pools we track. On EVM chains we read each pool's swap events onchain. On Solana, months older than the last 180 days come from Dune's DEX trade data. 125 published pools we have not read this way yet still use GeckoTerminal. Monthly history uses those readings for each month they cover. The 30-day and 24-hour totals stay on GeckoTerminal where those readings do not cover that window. A pool holding two local stablecoins counts half to each. GeckoTerminal is still how we find pools. A pool whose price is more than 10% from ours is left out. Not included: RFQ and aggregator venues, small or closed pools, and chains GeckoTerminal doesn't index. Charts show each month on its own, or each complete week (Monday to Sunday, UTC); never a running total.

Transfer volume and active addressesShown for 22 currencies, each spot-checked on one stablecoin and one chain. How they are counted: largest transfer per transaction, no bots or pass-through wallets, EVM, Stellar and Tron chains only.

Status. EVM, Stellar and Tron chains only. Shown for 22 currencies: ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, EUR, GBP, IDR, JPY, KRW, MXN, MYR, NGN, NZD, PEN, SGD, TRY, VND, ZAR. We spot-checked them by recounting stablecoins straight from the blockchain (transfers, raw volume and active addresses, for a month and a week in each year from 2022, the busiest stablecoin of each large currency plus Base and EURC), compared with rwa.xyz where it lists the stablecoin. Not shown yet (they say "Coming soon"): HKD (not counted yet). Figures are full calendar months and full weeks: July 2022 – September 2026 for EUR, CNY; July 2022 – September 2026 for EUR, JPY, CHF, GBP, BRL, AUD, SGD, ARS, TRY; July 2022 – September 2026 for CAD, MXN, KRW, COP, CLP, PEN, NGN, ZAR, IDR, VND, MYR, NZD; July 2022 – September 2026 for AUD, CHF, CLP, EUR, JPY, NGN. Each currency starts at its first month with transfers (EURC, the first, in July 2022). Transfer figures go back no further than July 2022, so transfers before then aren't counted.Months to September 2026 use the stablecoin list of 11 Oct 2026 (stablecoins and contracts added later that day count from October 2026). Each new month is added on the 2nd of the next month, with that day's stablecoin list. Running the same query again gives the same result: the pass-through test uses an exact middle value and ties are always broken the same way.

Words we use

Wallet:
An address on a blockchain that holds tokens. It can belong to a person, a company or a smart contract.
Transfer:
One movement of a stablecoin from one wallet to another, as recorded by the stablecoin's contract (an ERC-20 Transfer event). A transfer of zero doesn't count.
Transaction:
One action sent to the blockchain. One transaction can hold several transfers, for example a swap that passes through a router.
Mint and burn:
A mint creates new tokens, a burn destroys them. Neither counts as a transfer.
Self-transfer:
A wallet sending to itself.
Month:
A calendar month in UTC, the same month end as supply charts. Every rule below is applied to each month on its own.
Week:
Monday to Sunday (UTC). A week uses the bot and pass-through decisions of its month; active addresses are counted in the week itself, not added up from days.

Transfer volume

The money moved between wallets in a month. We start from every transfer of every stablecoin we list for that currency, then apply three rules:

  1. Largest transfer per transaction. In each transaction we keep only the largest transfer of that currency on that chain. A swap through a router can move the same money in several hops; this counts it once.
  2. No bot wallets. A wallet is a bot if it made more than 1,000 transfers, or more than $10M sent, in the month, counting all currencies in the query. A wallet that was a bot by that test in the previous month stays a bot while it still sends at least $1M that month, so a wallet that drops just under the limit doesn't suddenly count in full. This looks back one month only; July 2022, the first month, uses the test alone. Every transfer a bot sent that month is left out.
  3. No pass-through wallets. A pass-through wallet passes on almost all the money it receives. In one currency and month, a wallet that sent at least $10,000 is a pass-through wallet if either:
    • it is a router: what it sent and what it received differ by 2% or less, it sent at least 3 times, and right after a typical send it holds at most 1% of what it sent that month. "Typical" means the middle value over all its sends that month (with an even number of sends, halfway between the two middle ones).
    • it forwards inside a transaction: at least 90% of what it sent came in during the same transaction (for example a contract that relays a payment).
    Every transfer such a wallet sent that month is left out: the money was already counted when it was sent to that wallet. We can't see a wallet's balance before the month starts, so we count from its lowest balance in the month. Example: a wallet receives $100,000 and sends all of it on within minutes, 20 times in the month: it is a pass-through wallet. An exchange or market-maker wallet that keeps $2M on hand between sends is not, even if its money in and out balance. This removes settlement loops and wallets that bounce money between chains, without removing exchanges and market makers.

Mints, burns and self-transfers never count. The first two rules follow the "adjusted volume" method that Visa and Artemis use for stablecoins; the pass-through rule is ours. Raw volume (every transfer, nothing removed) is kept as a second figure only: routers, exchanges and bots move the same money many times, so it can be many times larger.

In US dollars. Each stablecoin's volume is valued at its trading price that month, like supply. A stablecoin with no trading price is valued at the month's average FX rate, the rate supply uses for such stablecoins (Sep 2026: EUR24, EURR (Bridge Building S.A.), EURR (StablR), EURT, IDRT, NZDD, NZDS, REUR, VEUR and XIDR); the figure then says "at FX rate".

Active addresses

The number of wallets that sent at least $0.25 of the currency in the month. A wallet counts once per currency, even if it used several stablecoins or chains of that currency. Stellar and Tron are each read by their own query and their addresses are not EVM addresses, so a wallet on an EVM, Stellar and Tron chain counts once on each and the counts add up. Transfers under $0.25 don't make a wallet active (they are mostly spam). Self-transfers don't count, and bot and pass-through wallets (the rules above) are left out. Receiving alone does not make a wallet active. Only stablecoins listed on FXscan count.

The queries also read a few stablecoins FXscan doesn't list. They count wallets per currency, per chain and per stablecoin on a chain, so those stablecoins' wallets can't yet be taken out of a currency's count exactly. For those currencies we show the smaller of the currency count and the sum of its per-chain counts, so the figure can be slightly high (Sep 2026: KRW up to 8%, CHF up to 4%, EUR up to 4%, MXN up to 2%, BRL up to 1%, CLP up to 1%, JPY up to 1%, NGN up to 1%). Every other currency is exact.

A page for part of a currency (one stablecoin or one issuer) counts each chain on its own and says "summed over chains": a wallet that used two chains counts twice there. On charts split by stablecoin, chain or issuer, each bar counts its own wallets, so the bars can add up to more than the page total.

Dollar limits

The $0.25, $10,000 and $10M limits are converted into each currency at that month's average exchange rate. Where the ECB publishes a rate, that is the ECB reference rate. For the others, the rate is that currency's central bank, except the interim line for CLP and VND:ARS: Central Bank of Argentina wholesale reference rate (public API v4, variable 5), business days.COP: Banco de la República TRM (public SDMX daily series), business days.PEN: Central Reserve Bank of Peru 13:30 selling close (series PD04646PD), business days, Lima.NGN: Central Bank of Nigeria NFEM volume-weighted average (the bank's rates API), business days. Before December 2024, the bank's earlier US dollar central rate.CLP and VND: interim rate from a public aggregator until the central-bank feed is connected.Figures already saved still use the previous average until the monthly job rewrites them.

Turnover

Turnover = transfer volume in a month ÷ circulating supply. Circulating supply is supply as defined in the Glossary, counted on the chains these queries read: units issued, minus excluded issuer wallets (units minted but not issued yet, treasury or reserve wallets, and redemption wallets, for example JPYC's issuer and redemption wallets). These are the same wallets taken out of supply elsewhere on FXscan; each is listed on its stablecoin's page. Total supply is not used. Where an issuer's wallets are not publicly named, they stay in, so that stablecoin's turnover can look lower than it is. A self-read contract is left out of the transfer figures only when its reason reads ~Nx circulating supply a month, that multiple is over 3, and a committed log for that chain is marked verified.

Chains

Transfers on EVM chains come from Dune's public tables. Stellar transfers are read from Horizon (a payment, a path payment, or a Soroban balance change). Tron transfers are read from TronGrid, or from Tronscan when a contract's events do not decode. The same rules apply on every chain (details below). Where our Stellar read missed movements (adjusted volume more than 5% off Dune's for the same stablecoin and month), that currency's month uses Dune's figures instead; the months are listed in each issuer's FAQ. Some EVM contracts the Dune queries do not cover (added after those runs, such as BRLV, BRS, EURe on Arbitrum and AUDX) are read by us instead: every ERC-20 Transfer event of the contract, from its launch, through our own node provider, with the same rules. Two differences: their bot check sees only those contracts, not every currency in the Dune query, so a wallet that is a bot only because of its transfers in other stablecoins is not flagged there; and their active wallets are added to the Dune count, so a wallet active in both a Dune-read and a self-read stablecoin of one currency in the same month is counted twice. Both are small next to the totals, and their months follow the Dune months. Issuer treasury and internal-account wallets (the ones we subtract from supply) count as mints and burns there, not transfers. A self-read contract is left out when its reason reads ~Nx circulating supply a month with that multiple over 3, and a committed log for that chain is marked verified (the Dune baskets run at about half their supply a month). A few exchange or market-maker wallets cycle the same float. Which ones is in each issuer's FAQ. EVM, Stellar and Tron chains only. Covered: Arbitrum, Arc, Avalanche, Base, BSC, Celo, Ethereum, Fantom, Gnosis, Hyperliquid L1 (HyperEVM), Kaia, Linea, Monad, OP Mainnet, Plasma, Polygon, Sonic, Stellar, Tron, World Chain. Not covered: Hedera, ICP, Redbelly, Solana, Tempo, XDC, XRPL, Zilliqa, and any other chain not listed as covered. Transfers there are not counted, so a currency with much of its supply on those chains is understated.

Details

Tron and Stellar each have their own query, so bots and pass-through wallets there are judged within that chain. On Tron the issuer's own wallets also count as mints and burns, so issuing and redeeming there are not transfers. Stellar has no transfer events for its assets, so there a transfer is a successful payment or path payment of the asset, or a Soroban contract moving it (the operation's balance changes). A path payment counts once, from its sender to its receiver; when it swaps into or out of the asset on Stellar's exchange, that side is the exchange, which is a bot wallet like a pool on EVM. Money sent by or to the asset's issuer account is a mint or a burn.

Issuer-only transfers. A stablecoin whose transfers are almost all between its issuer's own wallets is excluded; see the issuer's FAQ.

AUD: AUDD on XRPL, XDC, Solana and Redbelly not counted yet; AUDF on Arc and Redbelly not counted yet; AUDM on Redbelly and Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

BRL: BBRL on XRPL not counted yet; BRLV on Ethereum not counted yet; BRS on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

CAD: CADC on Solana not counted yet; CADD on Solana not counted yet; QCAD on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

CHF: VCHF on Solana and ICP not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

CNY: CNH24 on Arbitrum and Mantle not counted yet; CNHT on Ethereum not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

COP: COPM on Celo and Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

EUR: EUR24 on Mantle not counted yet; EURC on Solana and Cronos not counted yet; EURCV on XRPL and Solana not counted yet; EURE on Noble, Linea and Algorand not counted yet; EUROP on Solana and XRPL not counted yet; EURS on Algorand not counted yet; VEUR on Solana and Fraxtal not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

GBP: GBPA on Tempo and Solana not counted yet; GBPe on Gnosis and Linea not counted yet; tGBP on Solana not counted yet; VGBP on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

IDR: IDRP on Kaia and Polygon not counted yet; IDRX on Solana not counted yet; XIDR on Zilliqa not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

MYR: MYRC on Ethereum and Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

NGN: cNGN on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

NZD: NZDS on Polygon not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

SGD: XSGD on Zilliqa, Solana, Hedera and XRPL not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

TRY: TRYB on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

ZAR: ZARP on Solana not counted yet. Labelled partial wherever it appears; the issuer's FAQ says which chains are not counted.

Not counted yet: CNHT and MYRC on Ethereum.

Not counted yet: NZDS and IDRP on Polygon.

Not counted yet: COPM on Celo.

Not counted yet: CNH24 on Arbitrum.

Not counted yet: GBPe on Gnosis.

Not counted yet: AUDF on Arc.

Not counted yet: IDRP on Kaia.

Not counted yet: EURE and GBPe on Linea.

Not counted yet on Solana, Cronos, XRPL, Ethereum, Noble, Linea, Algorand, Zilliqa, Hedera, XDC, Redbelly, Arc, Mantle, ICP, Tempo, Polygon, Celo, Fraxtal, Kaia, Gnosis and Arbitrum.

Partial: 21 chains not counted

EUR: Not counted yet on Solana, Cronos, XRPL, Noble, Linea, Algorand, Mantle and Fraxtal.

Partial: 8 chains not counted

BRL: Not counted yet on Ethereum, XRPL and Solana.

CHF: Not counted yet on Solana and ICP.

GBP: Not counted yet on Solana, Tempo, Gnosis and Linea.

Partial: 4 chains not counted

SGD: Not counted yet on Zilliqa, Solana, Hedera and XRPL.

AUD: Not counted yet on XRPL, XDC, Solana, Redbelly and Arc.

Partial: 5 chains not counted

TRY: Not counted yet on Solana.

IDR: Not counted yet on Solana, Kaia, Polygon and Zilliqa.

CAD: Not counted yet on Solana.

ZAR: Not counted yet on Solana.

CNY: Not counted yet on Ethereum, Arbitrum and Mantle.

NGN: Not counted yet on Solana.

COP: Not counted yet on Celo and Solana.

NZD: Not counted yet on Polygon.

MYR: Not counted yet on Ethereum and Solana.

EURC: Not counted yet on Solana and Cronos.

EURCV: Not counted yet on XRPL and Solana.

BRLV: Not counted yet on Ethereum.

EURE: Not counted yet on Noble, Linea and Algorand.

tGBP: Not counted yet on Solana.

XSGD: Not counted yet on Zilliqa, Solana, Hedera and XRPL.

EUROP: Not counted yet on Solana and XRPL.

EURS: Not counted yet on Algorand.

AUDD: Not counted yet on XRPL, XDC, Solana and Redbelly.

ZARP: Not counted yet on Solana.

AUDF: Not counted yet on Arc and Redbelly.

cNGN: Not counted yet on Solana.

CNHT: Not counted yet on Ethereum.

EUR24: Not counted yet on Mantle.

VCHF: Not counted yet on Solana and ICP.

GBPA: Not counted yet on Tempo and Solana.

AUDM: Not counted yet on Redbelly and Solana.

TRYB: Not counted yet on Solana.

QCAD: Not counted yet on Solana.

CADC: Not counted yet on Solana.

MYRC: Not counted yet on Ethereum and Solana.

CADD: Not counted yet on Solana.

NZDS: Not counted yet on Polygon.

IDRX: Not counted yet on Solana.

VEUR: Not counted yet on Solana and Fraxtal.

VGBP: Not counted yet on Solana.

XIDR: Not counted yet on Zilliqa.

BRS: Not counted yet on Solana.

Europe: Not counted yet on Solana, Cronos, XRPL, Noble, Linea, Algorand, Mantle, ICP, Tempo, Fraxtal and Gnosis.

Asia-Pacific: Not counted yet on Zilliqa, Solana, Hedera, XRPL, XDC, Redbelly, Arc, Ethereum, Polygon, Kaia, Arbitrum and Mantle.

Americas: Not counted yet on Ethereum, Solana, Celo and XRPL.

Africa: Not counted yet on Solana.

Middle East & Türkiye: Not counted yet on Solana.

Updates

EVM figures come from queries we run on Dune, one row per calendar month and per ISO week, written to cover 1 Jul 2022 to 30 Sep 2026. Tron is read from TronGrid with the same rules, from each token's launch through the latest full month. Stellar is read from public Horizon, which keeps one year of history, so those months start in September 2025; earlier Stellar months stay on the previous read. A month that has not ended is marked month to date. Run so far under these rules: Tron: EUR and CNY and PHP, July 2022–September 2026; Top 10 currencies, Jul 2022 – Sep 2026; Other currencies, Jul 2022 – Sep 2026; Stellar backfill, July 2022 to September 2026. The figures on the site come from these runs, and each says the month it covers. A scheduled job adds each new month on the 2nd of the next month. Charts show each month (or each week, Monday to Sunday in UTC) on its own, never a running total.

IDRX shows two volumes. Raw is every non-zero Transfer. Adjusted leaves out mints, burns and transfers that touch a wallet we infer is the issuer's (treasury and settlement vaults on Kaia and Celo). Every month carries its block range and source. Supply is reconciled against the scans with DestroyedBlackFunds counted, which removes supply without a Transfer.

Updates and checksAbout once a day, at a time that varies; a refresh that fails the checks is not published.

Data refreshes once a day, starting at 06:15 UTC, with a backup run at 12:37 UTC if the first one fails. The time varies. A refresh that fails our checks is not published. The table below shows when each part of the data on this page was last read.

Before a refresh is published, it is compared with the last one. It is blocked if the stablecoin list shrinks by more than 10%, a stablecoin's supply moves more than 50%, a pool price moves more than 20%, any value is not a real number, or FX rates are more than 7 days old. Real moves beyond those limits that are still in force are listed below.

SnapshotLast updated
DefiLlama list and history2026-10-31 17:08 UTC
USD stablecoin supply (DefiLlama peggedUSD)2026-10-31 17:08 UTC
Onchain supply reads2026-10-31 17:08 UTC
Pool prices2026-10-31 17:08 UTC
ECB reference rates (latest date)2026-10-30 UTC
StablecoinKindApplies throughNote
BRSSupply2026-11-02Only the verified BRS Base mint, blocks 53059956–53103156, supply 135,485.58 → 296,175.93 (mint txs 0xa42fa6aa…, 0x72979bee…, 0x8ad64eee…).

Changes

  • 2026-10-26: Removed GYEN. GMO-Z.com Trust announced the wind-down of GYEN on 15 May 2026; redemption closes 11 Nov 2026.
  • 2026-10-26: Removed CHF24.
MiCA statusWhich stablecoins are MiCA-authorised, checked against ESMA's register.

We checked 25 stablecoins against the e-money token file of the ESMA interim MiCA register. ESMA last updated it on 7 Oct 2026; we checked it on 10 Oct 2026. Authorised: the stablecoin's issuer is listed for it. Not authorised: it is not listed. Other stablecoins show no MiCA line.

File: ESMA register CSV ↗ (SHA-256 5d63159cf4a5f11ffff065d0a48cc84384c7e7bd4a5c4d1e4896ddf3f2c198c3) · ESMA MiCA page ↗ · ESMA opinion on services related to non-MiCA-compliant stablecoins (ESMA75-113276571-1742) ↗

Not legal advice.

Issuer confirmationA Confirmed badge means FXscan checked the issuer. It shows for 100 days.

A "Confirmed" badge on an issuer's page and its stablecoin pages means FXscan checked the issuer. We check three things: it is the legal entity behind the stablecoin, its reserve, attestation or licence links on its own site work and were recorded, and the contract addresses it publishes match ours (where it publishes them). We only add a badge after that check.

The badge shows for 100 days from the day of the check, then it hides. Issuers can ask for a check from the "Verify and integrate" box on their issuer or stablecoin page.

It is not a guarantee of reserves, solvency or regulatory status.

Known limitsWhat the data does not cover yet.

A USD chart needs a price history for each stablecoin: DefiLlama's daily prices, or the reference rate for a stablecoin with a price today but no price history. A stablecoin with no trading price uses each day's reference rate. Stablecoins with no USD value at all, and histories that stopped updating, are left out of the chart. They still count in totals and tables. The chart's "?" names them ("Chart covers $X of $Y. Not in the chart: …"), and so does the issuer's FAQ.

A chart is drawn whenever it covers any of today's supply. A view with nothing to plot says its history isn't complete yet. A history more than 14 days behind is marked stale, and its changes are left blank. One-day spikes over 20% are dropped. A gap inside a history carries the last reading for up to 7 days.

Currency pages show supply in US dollars first: each stablecoin at today's trading price, or at today's reference rate when it has none (marked). Every point of that chart uses today's value, so the line shows supply changes, not exchange-rate moves. The same chart in the currency's own units ("Supply, EUR") counts every stablecoin pegged to it, priced or not. A native chart below 5% of the page total is replaced by a note.

Transfer volume and active addresses are shown only for the currencies that passed our check (see Transfer volume and active addresses); they cover EVM, Stellar and Tron chains only. Issuers we can't confirm stay Unattributed; mint and redeem details we can't confirm are left blank.

GlossaryThe words FXscan uses, each with one meaning.
Supply (circulating supply):
The stablecoins in circulation: all units issued on the chains we read, minus excluded issuer wallets. Charts show supply at each month end (or week end); the last point is the latest reading.
Excluded issuer wallets:
Wallets a public source names as the issuer's: units minted but not issued yet, treasury or reserve wallets, and redemption wallets (units returned, waiting to be burned). Their balance is left out of supply, and out of turnover's supply too. Each stablecoin page lists them under Left out of supply. Where an issuer's wallets are not publicly named, they stay in, except where that page says the exclusion is our own on-chain inference.
Cross-checked:
Our onchain total is within 1% of DefiLlama's figure. A stablecoin DefiLlama doesn't list has nothing to check against, and its page says so.
Stablecoin price:
The stablecoin's USD price, from its deepest pool against USDC or USDT, else DefiLlama. The stablecoin page names the source. A stablecoin with neither is valued at today's reference FX rate (marked FX rate): the ECB reference rate, else the currency's central bank (monthly average), and CLP and VND at an interim public aggregator.
Market rate:
The exchange rate a stablecoin is compared with: the market rate (Wise mid-market, from Reuters) for ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, EUR, GBP, HKD, IDR, JPY, KRW, MXN, MYR, NGN, NZD, PEN, PHP, SGD, TRY, VND and ZAR, else the ECB reference rate.
ECB reference rate:
The European Central Bank's rate, set once a day at about 14:10 Frankfurt time (CET in winter, CEST in summer). Used to value some supply history, and as the market rate where Wise has none (marked ECB). Monthly averages for activity dollar limits use this rate where the ECB publishes the currency; the other four are listed under FX gap and cost to convert.
Gap:
How far a stablecoin's USD price is from the market rate, in bps (100 bps = 1%). +: the stablecoin costs more USD than the market rate. −: it costs less.
bps:
Basis points. 100 bps = 1%.
Month end:
The end of each calendar month in UTC (our contract reads are taken at 00:00 UTC on the 1st). History starts at the stablecoin's launch or our first read, and each chart shows its start date.
Pool depth:
The value on a pool's smaller side. A pool needs at least $10,000 there before we use its price.

Words for transfer activity (wallet, transfer, transaction, mint and burn, self-transfer, month) are under Transfer volume and active addresses.

SourcesEvery external source we read.
  • Public blockchain nodes ↗

    We read supply straight from the token contracts, on every chain we read.

  • Uniswap v3 pools ↗

    Stablecoin prices, read from the pool contracts through the same public nodes.

  • Uniswap v4 pools ↗

    Stablecoin prices and size quotes from the PoolManager, StateView, Quoter and ReservesLens contracts. Pools with hooks that can rewrite swaps are skipped.

  • Aerodrome Slipstream ↗

    Concentrated-liquidity pools on Base, read the same way as Uniswap v3

  • Curve MetaRegistry ↗

    Curve pools against USDC/USDT, priced from the pool's own exchange rate

  • DefiLlama stablecoins API ↗

    A second figure to compare our onchain supply with. Also supply history where we can't yet read past supply from the contracts. Where that history is one chain's series, the chart names it. Prices where no pool passes our checks.

  • DefiLlama stablecoin charts ↗

    Daily circulating supply of stablecoins pegged to the US dollar (peggedUSD only), for the home-page market share chart. No API key. Gold, commodity, and floating pegs are not included.

  • Market rate (Wise mid-market, from Reuters) ↗

    The market rate behind FX gaps against USD for every currency on the site that Wise publishes (mid-market rate sourced from Reuters/LSEG); the ECB reference rate where a Wise point is missing.

  • ECB reference rates (via Frankfurter) ↗

    The ECB's once-a-day rate: used to value some supply history, and as the market rate where Wise has no rate (marked ECB).

  • Dune ↗

    Solana trading volume before GeckoTerminal's last 180 days (DEX trades per pool per day). Stablecoin transfers on EVM chains for transfer volume and active addresses (shown for 22 currencies, the rest coming soon).

  • Stellar Horizon ↗

    Stellar stablecoin transfers (payments, path payments and Soroban balance changes) for transfer volume and active addresses. Public Horizon keeps one year of history, so this read starts in September 2025.

  • TronGrid and Tronscan ↗

    Tron TRC-20 transfers for transfer volume and active addresses, from each contract's launch. Tronscan is used when a contract's events do not decode.

  • GeckoTerminal ↗

    Pool discovery, and daily volume for the last 180 days on Solana, and for published pools we have not read from swap events or Dune yet.

  • CoinGecko ↗

    Contract addresses per chain, each checked onchain before we use it, and the API we use to discover GeckoTerminal pools.