Skip to main content
Removal date set: October 4, 2026. crosschain.stablecoin.* and crosschain.metrics.stablecoin_volume will be permanently removed on this date. The replacement stablecoins.* tables are live now — migrate before the cutover. Customers on Snowflake shares will have STABLECOINS provisioned automatically; no share reconfiguration needed.

Timeline

Table Mappings

Breaking Column Changes

These columns are removed in the new schema. Update queries before the cutover date.
Removed columns (no direct replacement):
  • TOKEN_TYPE — use stablecoin_type from the registry join
  • BLOCK_NUMBER
  • BLOCK_HASH
  • TRANSFER_TYPE
  • TOKEN_ACC_FROM
  • TOKEN_ACC_TO
Added columns (new in stablecoins.core.transfers):
  • PRODUCT_ID — links to stablecoins.registry.catalog
  • IS_NATIVE — true for native-chain stablecoins
  • STABLECOIN_TYPE — fiat-backed, crypto-backed, algorithmic, etc.
  • USD_EXCHANGE_RATE — rate at transfer time
  • ISSUER_ID — links to issuer registry
  • PEG_MECHANISM
crosschain.stablecoin.list combined product-level and deployment-level data in one table. The new schema splits them:
  • stablecoins.registry.catalog — one row per stablecoin product (USDC, USDT, etc.)
  • stablecoins.registry.deployments — one row per chain/address deployment
If you were filtering list by chain, use stablecoins.registry.deployments WHERE chain = '<chain>'. For product metadata, join on product_id.
Removed columns:
  • SUPPLY — replaced by circulating_supply and adjusted_circulating_supply
  • SUPPLY_DELTA
  • NON_CIRCULATING_SUPPLY
Added columns:
  • CIRCULATING_SUPPLY — issuer-reported circulating supply
  • ADJUSTED_CIRCULATING_SUPPLY — nets out bridge escrows, protocol collateral, and savings-vault deposits
  • PRICE_USD — daily close price
Per-chain assets.stablecoin_list tables are discontinued across all 28 EVM chains. Use stablecoins.registry.deployments filtered by chain instead. The crosschain table has the same data with additional registry metadata.
Removed columns (no direct replacement):
  • BASE_ASSET
  • AVG_TRANSFER_COUNT — derive as transfer_count / transfer_tx_count
  • AVG_TRANSFER_VOLUME, AVG_TRANSFER_VOLUME_USD — derive as transfer_volume(_usd) / transfer_count
  • TRANSFER_VOLUME_IS_ANOMALY — anomalous transactions are already excluded upstream in both tables, so the flag is redundant
  • SINGLE_DIRECTION_NET_TRANSFER_VOLUME, SINGLE_DIRECTION_NET_TRANSFER_VOLUME_USD
  • ENTITY_ADJUSTED_SINGLE_DIRECTION_MAX_TRANSFER_VOLUME (native units) — the new table only exposes the adjusted metric in USD
SINGLE_DIRECTION_MAX_TRANSFER_VOLUME(_USD)MAX_TRANSFER_VOLUME(_USD) is not a rename. The legacy column summed, across every transaction that day, each transaction’s single largest transfer leg (deduplicating multi-hop internal transfers). The new column is simply max(amount) for the day — the single largest individual transfer, not a sum. The two are not comparable; do not substitute one for the other in existing queries.
ENTITY_ADJUSTED_SINGLE_DIRECTION_MAX_TRANSFER_VOLUME_USDADJUSTED_VOLUME_USD uses a different methodology. The legacy column excluded known bot/exchange addresses by label and priced volume using the daily median price. The new column instead classifies each transfer’s intent (Real-World Payment, Investment/Trade, Store as Value) and sums only those, priced at transfer time. Expect materially lower values on the same chain/day — this is a stricter definition, not a data quality regression.
Added columns:
  • PRODUCT_ID, ISSUER_ID, PEG_MECHANISM, TOKEN_NAME, IS_NATIVE, STABLECOIN_TYPE — registry metadata joined in directly
  • SENDER_COUNT, RECIPIENT_COUNT
  • ADJUSTED_TRANSFER_COUNT — adjusted transfer-level count, alongside the renamed ADJUSTED_TRANSFER_TX_COUNT (formerly ENTITY_ADJUSTED_SINGLE_DIRECTION_MAX_TRANSFER_TX_COUNT)
  • HAS_ADJUSTED_VOLUME — check before relying on ADJUSTED_VOLUME_USD; it is null (not zero) on chains where has_adjusted_volume = false

EVM Chain-Level Tables (assets.stablecoin_*)

The following per-chain tables are also removed on October 4, 2026: Affected chains (28): arbitrum, avalanche, base, berachain, blast, bsc, celo, codex, ethereum, hyperevm, ink, linea, mode, monad, optimism, plasma, plume, polygon, polygon_zkevm, scroll, sei, soneium, sonic, stable, tempo, unichain, worldchain, zksync. (tempo only ever had stablecoin_transfers, no stablecoin_list.) Migrate <chain>.assets.stablecoin_transfers<chain>.stablecoins.transfers and <chain>.assets.stablecoin_liststablecoins.registry.deployments filtered by chain.

Why we’re migrating

The stablecoins.* schema replaces the crosschain.stablecoin.* family with:
  • Registry metadata joined inproduct_id, issuer_id, is_native, and stablecoin_type are available directly on stablecoins.core.transfers, stablecoins.core.supply_daily, and stablecoins.metrics.volume_daily, without a separate join.
  • A cleaner registry splitstablecoins.registry.deployments (per chain/address) and stablecoins.registry.catalog (per product) replace the overlapping crosschain.stablecoin.list, .catalog, and .deployments tables.
  • New tables with no legacy equivalentstablecoins.core.supply_change (mint/burn events) and stablecoins.core.balances_daily (daily forward-filled holder balances).
  • A more conservative supply methodologystablecoins.core.supply_daily adds adjusted_circulating_supply, which nets out bridge escrows, protocol collateral, and savings-vault deposits on top of the issuer-basis exclusions already in circulating_supply.

Migration Checklist

  • Review the new schema — See the Stablecoins docs for full column-level detail.
  • Update your queries — Replace legacy references using the table mapping above. Pay attention to removed columns.
  • Test your applications — Run existing queries against the new schema to confirm parity.
  • Deploy changes — Update your workflows to use stablecoins.* before October 4, 2026.
Questions: [email protected]