Transfer stages
A CCTP transfer consists of three stages:- Burn: USDC is burned on the source blockchain
- Attestation: Circle’s Attestation Service observes the burn and signs a message
- Mint: The signed attestation is submitted to mint USDC on the destination blockchain
Identify where your transfer is stuck
Use the following steps to determine the current state of your transfer:1
Check the burn transaction
Verify the burn transaction succeeded on the source blockchain using a block
explorer. If the transaction failed or is pending, the issue is at the burn
stage.
2
Query the attestation API
Call the
GET /v2/messages endpoint
with your transaction hash.Interpret the response:- 404 response: The attestation service hasn’t observed the burn yet. This is normal and expected. See Why 404 responses are expected.
- Empty
messagesarray: The burn exists but hasn’t been processed yet. - Status
pending: The burn is awaiting block confirmations. - Status
completewith attestation: The attestation is ready. If your transfer is stuck, the issue is at the mint stage.
3
Check the mint transaction
If you have an attestation but your destination wallet doesn’t have the USDC,
either:
- The mint transaction was never submitted
- The mint transaction failed
receiveMessage transactions.Common issues and solutions
| Issue | Cause | Solution |
|---|---|---|
| 404 persists for extended time | Burn transaction may have failed or is still confirming | Verify burn succeeded on block explorer, if it failed, retry the burn |
Attestation status remains pending | Waiting for block confirmations | Wait for sufficient confirmations based on finality threshold |
| Have attestation but mint fails | Gas issues, incorrect parameters, or nonce already used | See Retry a Failed Mint |