Skip to main content
This is CCTP V1 (Legacy) version. For the latest version, see CCTP.

CCTP V1 Message Header

The top-level message header format is standard for all messages passing through CCTP V1.

Sequential Nonces

A message nonce is a unique identifier for a message that can only be used once on the destination domain. In CCTP V1, message nonces are implemented using Sequential Nonces, where the next available nonce on a source domain is an integer. On the destination domain, messages can be received in any order, and used nonces are stored as a hash of the source domain and nonce integer value.
Why we use bytes32 type for addressesCCTP V1 is built to support EVM chains, which use 20 byte addresses, and non-EVM chains, many of which use 32 byte addresses. We provide a Message.sol library as a reference implementation for converting between address and bytes32 in Solidity.

CCTP V1 Message Body

The message format includes a dynamically sized messageBody field, used for application-specific messages. For example, TokenMessenger defines a BurnMessage with data related to cross-chain transfers.