This is CCTP V1 version. For the latest version, see CCTP.
- An onchain component on the source domain emits a message.
- Circle’s offchain attestation service signs the message.
- The onchain component at the destination domain receives the message, and forwards the message body to the specified recipient.
Architecture
Onchain components on all domains have the same purpose, but implementation differs between EVM-compatible and non-EVM domains.CCTP V1 on EVM Domains
The relationship between CCTP V1’s onchain components and Circle’s offchain Attestation Service is illustrated below for a burn-and-mint of USDC between EVM-compatible domains:
Note:In CCTP V1, it is not possible to perform a burn-and-mint operation for USDC
and include arbitrary data in the same message. You must include arbitrary
data in a separate message. In later CCTP versions, you can burn-and-mint
while including data in the same message via Hooks.
CCTP V1 on Non-EVM Domains
Noble
Noble is a Cosmos application-specific blockchain (or “appchain”) that provides native asset issuance for the Cosmos ecosystem. USDC is natively issued on Noble and can be transferred via the Inter-Blockchain Communication (IBC) protocol to other supported appchains in Cosmos, or via CCTP V1 to any supported domain (for example, Ethereum). Note that there are key differences between Cosmos appchains like Noble and EVM-compatible blockchains. Unlike on EVM domains where CCTP V1 is a set of smart contracts, CCTP V1 on Noble is a Cosmos SDK module, which is deployed by Noble governance and built into the Noble blockchain. Cosmos appchains can use IBC to build composable flows with CCTP V1 on Noble. Refer to the Noble documentation for more details.Solana
Solana is a layer-1 blockchain where USDC is natively issued as an SPL-token. CCTP V1 is deployed to Solana as two Anchor programs: MessageTransmitter and TokenMessengerMinter. Developers can compose programs on top of CCTP V1 programs through CPI’s (Cross-Program Invocations). Arbitrary messages can be sent directly by callingMessageTransmitter#send_message just as described in
the EVM section above. Refer to the
Solana documentation for more details.
Sui
Sui is another layer-1 blockchain where USDC is natively issued as aCoin implementation. CCTP V1 is
deployed to Sui as two programs: MessageTransmitter and
TokenMessengerMinter. Arbitrary messages can be sent by directly calling
message_transmitter::send_message similar to the EVM section above. Refer to
the Sui documentation for more details.
Aptos
Aptos is another layer-1 blockchain where USDC is natively issued as aFA implementation.
CCTP V1 is deployed to Aptos as two programs: MessageTransmitter and
TokenMessengerMinter. Arbitrary messages can be sent by directly calling
message_transmitter::send_message similar to the EVM section above. Refer to
the Aptos documentation for more details.
WHAT’S NEXT