Confirmation numbers
Confirmations show how safe a transaction is from reorg. The confirmation number is how many blocks must be added until a block is considered permanent. Each chain’s confirmation number is different, and determined by Circle. Confirmation numbers are based on a variety of factors, including the chain’s history, potential for reorg, and overall network architecture. For L2 chains, Circle waits for blocks on the L1 chain. This happens after the L2 block gets included in an L1 block| Chain | Confirmations/Blocks | Approximate Time |
|---|---|---|
| Algorand (USDC) | 1 | ~3 seconds |
| Aptos (USDC) | 1 | ~500 milliseconds |
| Arbitrum (USDC) | 300 | ~3 minutes |
| Avalanche (USDC, EURC) | 1 | ~2 seconds |
| Base (USDC, EURC) | 12 ETH Blocks | ~3 to 9 minutes |
| Celo (USDC) | 65 ETH Blocks | ~13 to 19 minutes |
| Codex (USDC) | 65 ETH Blocks | ~13 to 19 minutes |
| Ethereum (USDC, EURC) | 12 | ~3 minutes |
| Flow (USDC)* | - | - |
| Hedera (USDC) | N/A | ~3 seconds |
| HyperEVM (USDC) | 1 | <1 second |
| Ink (USDC) | 65 ETH Blocks | ~60 minutes |
| Linea (USDC) | 65 ETH Blocks | ~6 to 32 hours |
| NEAR (USDC) | 1 | ~2 seconds |
| Noble (USDC) | 1 | ~1.53 seconds |
| OP Mainnet (USDC) | 12 ETH Blocks | ~3 to 9 minutes |
| Plume (USDC) | 65 ETH Blocks | ~30 minutes |
| Polkadot Asset Hub (USDC) | 1 | ~12 seconds |
| Polygon PoS (USDC) | 50 | ~2 minutes |
| Sei (USDC) | 1 | ~400 milliseconds |
| Solana (USDC, EURC) | 1 | ~400 milliseconds |
| Sonic (USDC) | 1 | ~1 second |
| Stellar (USDC, EURC) | 1 | ~5 seconds |
| Sui (USDC) | 1 | ~500 milliseconds |
| TRON (USDC)** | 19 | ~1 minute |
| Unichain (USDC) | 12 ETH Blocks | ~3 to 9 minutes |
| World Chain (USDC) | 65 ETH Blocks | ~13 to 19 minutes |
| XDC (USDC) | 3 | ~6 seconds |
| XRPL (USDC) | 1 | ~5 seconds |
| ZKsync Era (USDC) | 65 ETH Blocks | ~5 to 7 hours |
HederaHedera is built on a hashgraph, not a blockchain. As such, there isn’t a count of confirmations before Circle considers a transfer valid. This determination is performed on Hedera directly and is then shared back to Circle. See Hedera consensus to learn more.
Transfer status
When an incoming transfer is included in a block, the API makes it available for you. However, the transfer remains in the running status. It won’t credit the balance of the associated wallet with the transfer amount until the required number of confirmations has been reached. Once the confirmation number is reached, the transfer status changes to completed. If you subscribed to webhook notifications, you’ll get a message about this change. You can use transfers in your processes before they reach completed status. This comes with risk. Chain reorgs are rare, but they can happen. If you use transfers before they get enough confirmations, you take on this risk.Waiting for confirmations only applies to onchain transfers. These are transfers where the
source is type blockchain. Transfers between hosted wallets don’t need to wait. These transfers have a source type of wallet and happen instantly.