# USDC CCTP and USDT0 Cross-Chain Flows

> Daily USDC transfers through Circle's CCTP and USDT0 moves through LayerZero: volume by route, net flow per chain, transfer times and the USDT0 lockbox.

Markdown copy of https://voltfincrypto.com/apps/usdc-cctp-usdt0-cross-chain-flows

**Question:** How much USDC and USDT moves between chains through CCTP and USDT0 each day, and on which routes?

- Kind: Dashboard in Voltfin Vantage
- Topic: [Stablecoins](https://voltfincrypto.com/topics/stablecoins)
- Chains: Multi-chain, Ethereum, Arbitrum, Base, OP Mainnet, Polygon, Avalanche, Unichain, Ink, HyperEVM, Plasma, Solana
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Circle's Cross-Chain Transfer Protocol, CCTP, moves USDC by burning it on one chain and minting the same amount on another, so no wrapped copy is created. USDT0 does the same for Tether's dollar through LayerZero: USDT locked on Ethereum backs the USDT0 issued on other chains, and USDT0 moves between those chains by burn and mint. This dashboard reads both from their contracts to show how much moves every day, and on which routes.

Each transfer leaves two records, a burn or lock on the source chain and a mint on the destination, linked by a message identifier. The dashboard matches the pairs, so a route's volume counts only completed transfers, and the gap between the two blocks gives the transfer time. Transfers still waiting for their mint are shown as in transit.

Net flow per chain shows where dollars are going: a chain that receives more than it sends gains stablecoin supply without any new issuance. Read it beside the supply pages to tell a chain growing through new mints from one growing because dollars arrived from elsewhere.

## Blueprint

### Flows

Daily volume by protocol and route.

- **Moved yesterday** (USD): Completed transfers of the selected token on the last full day.
- **Transfers yesterday** (count): Completed transfers counted on the same day.
- **In transit** (USD): Burns and sends not yet matched to a mint on their destination at the latest block.
- **Median transfer time** (minutes): The median time from burn to mint for transfers completed in the period.
- **Every route**: Each source and destination pair with volume, transfers, median time and share of the total, for the selected token and period.
- **Volume by day** (USD): Completed volume by day, split into CCTP standard transfers, CCTP fast transfers and USDT0.

### By chain

Net flow per chain and the USDT0 lockbox.

- **USDT0 lockbox** (USDT): USDT held in the USDT0 lockbox on Ethereum at the latest day-end block.
- **Largest net inflow** (USD): The chain with the largest net inflow in the period, and that inflow.
- **Net flow by chain** (USD): Completed transfers in minus transfers out for each chain over the period.
- **Net flow and supply of the selected chain** (USD): Daily net flow of the selected chain beside its stablecoin supply, so arrivals can be told apart from new mints.

Filters: Token (USDC through CCTP, USDT0 or both); Chain (Every chain CCTP or USDT0 reaches, or all chains); Period (Last 7, 30 or 90 days).

## How it will be measured

- CCTP transfers are DepositForBurn events on each source chain matched to the MessageReceived and mint events on the destination by source domain and nonce, for both CCTP versions.
- USDT0 transfers are OFTSent events matched to OFTReceived events by their LayerZero message identifier, and the Ethereum lockbox's USDT balance is read at each day-end block.
- Volume counts each matched transfer once, on the day of its mint; transfer time is the gap between the burn's block time and the mint's block time.
- CCTP fast transfers, which mint before the source chain is final, are labelled apart from standard transfers, with their fee where one is charged.
- Net flow per chain is completed transfers in minus completed transfers out, kept separate for USDC and USDT0.

## Data it needs

- `bridge_flows_daily` (to build): Deposits into and withdrawals out of canonical and major third-party bridges by chain, token and day, plus escrow balances at day end.
- `stablecoin_flows_daily` (to build): Stablecoin mints, burns, transfer volume and active addresses per stablecoin and chain per day.
- `stablecoin_supply_daily` (published): Native supply of each USD and EUR stablecoin on each covered chain at the chain's last block of each day, from totalSupply() reads, with bridged copies kept apart.
- Source: CCTP TokenMessenger DepositForBurn events on each source chain
- Source: CCTP MessageTransmitter MessageReceived and token minter events on each destination
- Source: USDT0 OFTSent and OFTReceived events on every USDT0 chain
- Source: USDT balance of the USDT0 lockbox on Ethereum at day-end blocks
- Source: Solana CCTP program burn and mint instructions

## Questions

### What is CCTP?

CCTP, Circle's Cross-Chain Transfer Protocol, moves native USDC between chains. USDC is burned on the source chain, Circle attests to the burn and the same amount is minted on the destination, so USDC stays native on every chain instead of becoming a bridged copy.

### What is USDT0?

USDT0 is Tether's dollar on chains where Tether does not issue USDT itself, built on LayerZero's token standard. USDT deposited into a lockbox on Ethereum backs it, and moving USDT0 between chains burns it on one and mints it on the other.

### How long does a CCTP transfer take?

It depends on the source chain and the transfer type. A standard transfer waits for the source chain to finalize before Circle attests, while a fast transfer mints sooner for a fee. The dashboard measures actual times from the two blocks of each transfer.

### Does a cross-chain transfer change stablecoin supply?

Not in total. Supply falls on the source chain and rises on the destination by the same amount, so per-chain supply moves while the issuer's total stays the same. That is why net flows explain supply changes that no mint or burn accounts for.

### Which routes carry the most volume?

The routes table ranks every pair of source and destination chains by completed volume for the selected period, separately for USDC and USDT0, so the answer reflects the latest data rather than a fixed list.

## Glossary

- **Burn and mint**: A transfer method that destroys tokens on one chain and creates the same amount on another, keeping one native token.
- **Lockbox**: The Ethereum contract that holds the USDT backing every USDT0 on other chains.
- **Domain**: CCTP's identifier for a chain, used to route each burn to its destination.

## Related apps

- [Bridged Token Backing: Locked vs Minted Supply](https://voltfincrypto.com/apps/bridged-token-backing)
- [USDT vs USDC Supply by Chain](https://voltfincrypto.com/apps/usdt-vs-usdc-supply-by-chain)
- [Stablechain Tracker: Plasma, Tempo, Arc and Stable](https://voltfincrypto.com/apps/stablechain-tracker)
- [Stablecoin Market Cap and Total Supply](https://voltfincrypto.com/apps/stablecoin-market-cap)
- [Cross-Chain Intents: Volume, Solvers and Fill Times](https://voltfincrypto.com/apps/cross-chain-intents-solvers)
- [Stablecoin Market Share by Issuer](https://voltfincrypto.com/apps/stablecoin-market-share-by-issuer)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
