Skip to main content

Overview

Starknet CCTP contracts are written in Cairo and run on a non-EVM zk-rollup. Transactions executed on Starknet are batched and proven using STARK proofs, which are then posted to Ethereum L1. This design allows Starknet to inherit Ethereum’s security while offering higher throughput and lower fees. To align with Starknet’s architecture while keeping parity with EVM chains, CCTP uses two contracts:
  • TokenMessengerMinterV2: consolidates the responsibilities of TokenMessengerV2 (burn + send) and TokenMinterV2 (receive + mint).
  • MessageTransmitterV2: provides the messaging layer that emits or receives attested messages and delivers them to TokenMessengerMinterV2.
This mirrors how other non-EVM deployments (for example, Solana) combine messenger and minter logic while preserving behavior with the EVM equivalents.

Mainnet contract addresses

Testnet contract addresses

CCTP interface

  • TokenMessengerMinterV2: initiates crosschain burns and mints tokens upon attested message receipt.
  • MessageTransmitterV2: emits messages, verifies attestations, and routes verified messages to the recipient contract.

TokenMessengerMinterV2 interface

The TokenMessengerMinterV2 contract consolidates the roles of both TokenMessengerV2 and TokenMinterV2 found on EVM chains. It handles USDC burns, message emission, and token minting once crosschain messages are attested by Circle’s Iris service.

MessageTransmitterV2 interface

The MessageTransmitterV2 contract provides the core messaging layer for CCTP on Starknet. It is responsible for emitting, receiving, and validating crosschain messages, enforcing attestation rules, and ensuring message uniqueness.