Transfer USDC
Initiate a transfer
To get started with CCTP, call depositForBurn (opens in a new tab) from any of the following contracts:
Chain | Domain | Contract address |
---|---|---|
Ethereum | 0 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Avalanche | 1 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Optimism | 2 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Arbitrum | 3 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Noble | 4 | N/A |
Base | 6 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Polygon | 7 | 0x598e338581e69BE32BCead94F1476FF301b8b0DF |
Once the transfer is initiated, our relayer network will listen for burns and automatically mint them on the destination chain.
Track a transfer
For convenience, bridges can be tracked via our trace api.
Response
{
"burn": {
"tx_hash": "27F8C932754EBB2128F0BAAC8FE22029F25E2AE9D690989CF095AC416720FB97",
"tx_hash_link": "https://mintscan.io/noble/tx/27F8C932754EBB2128F0BAAC8FE22029F25E2AE9D690989CF095AC416720FB97",
"from": "noble1rn9czteg7n9htyzs4nee88p2gprnntuc5z79y5",
"amount": 54000000,
"destination_domain": 6
},
"attestation": {
"status": "complete",
"nonce": 86996,
"attestation": "0xd9de3f4577a26247c8df0ae4b7c6c2ec6316429ebdf512cf49b9122d599c0439552b357f81bd4f58d6ba4b87629894356a41a4ee143097974bc940eb6765e0b41b32b10597ad838a9aa541cab8b24aa6a9cdd7dbce225d2fcd47b18e0d92c260820b84a35dc3ddbd2dc0e7633162bb6aee1131d771a2ad03c96f718eb6c7c409e61b",
"attestation_link": "https://iris-api.circle.com/v1/messages/4/27F8C932754EBB2128F0BAAC8FE22029F25E2AE9D690989CF095AC416720FB97"
},
"mint": {
"tx_hash": "0xb954d4758a7ea6cd4110e52ed1864a56fc3f814f874cbc654f17b729ff98aae7",
"tx_hash_link": "https://basescan.org/tx/0xb954d4758a7ea6cd4110e52ed1864a56fc3f814f874cbc654f17b729ff98aae7",
"mint_recipient": "0xA8FdaC13f96A9eA6431533f6369F1AF1994cA4dd",
"mint_recipient_link": "https://basescan.org/tx/0xA8FdaC13f96A9eA6431533f6369F1AF1994cA4dd"
}
}
Manually mint
While rare, a transfer can get stuck in the ATTESTATION_FOUND state and fail to mint due to variable chain and network conditions.
To manually mint, simply call receiveMessage on the destination chain with the msg_sent_bytes and attestation from the API response.