Skip to main content
This guide helps you diagnose and resolve issues with CCTP transfers that appear stuck or fail to complete. A CCTP transfer involves three stages, and problems can occur at any point in the process.

Transfer stages

A CCTP transfer consists of three stages:
  1. Burn: USDC is burned on the source blockchain
  2. Attestation: Circle’s Attestation Service observes the burn and signs a message
  3. Mint: The signed attestation is submitted to mint USDC on the destination blockchain
If your transfer appears stuck, first identify which stage has the issue.

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 messages array: The burn exists but hasn’t been processed yet.
  • Status pending: The burn is awaiting block confirmations.
  • Status complete with 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
Check your destination blockchain for any failed receiveMessage transactions.

Common issues and solutions

Expired messages are not permanently stuckThere is no deadline after which re-attestation becomes unavailable. As long as the original burn transaction still exists on the source blockchain, you can request a fresh attestation at any time using the re-attest endpoint.