Cross-Chain Transfer Protocol

Move USDC securely across blockchains and simplify user experience

Overview

Cross-Chain Transfer Protocol (CCTP) is a permissionless on-chain utility that facilitates USDC transfers securely between blockchains networks via native burning and minting. Circle created it to improve capital efficiency and minimize trust requirements when using USDC across blockchain networks. CCTP enables developers to build multi-chain applications that provide secure, 1:1 transfers of USDC across blockchains for their users.

Understanding the Problem

Disparate blockchain networks operate in siloed environments and are unable to communicate with one another. While some networks have built-in protocols to transmit data across their constituent blockchains (e.g. Cosmos uses the Inter-Blockchain Communication (IBC) protocol to send information between its appchains), it is not possible for isolated networks, such as Ethereum and Avalanche, to communicate directly.

Bridges exist to address this limitation, providing the ability to transfer digital assets like USDC between blockchains, but they also present drawbacks. Lock-and-mint bridging and liquidity pool bridging are two common methods that require tying up USDC liquidity in third-party smart contracts, resulting in limited capital efficiency and introducing additional trust assumptions.

Design Approach

As a low-level primitive, CCTP can be embedded within any app or wallet—even existing bridges—to enhance and simplify the user experience for cross-chain use cases. With USDC circulating on a large number of blockchain networks, CCTP can connect and unify liquidity across disparate ecosystems where it's supported.

CCTP is based on generalized message passing and built for composability to open up a wide design space. Developers can readily extend its functionality beyond just moving USDC from one blockchain to another. For example, it's possible to create a flow that sends USDC across chains to be automatically deposited into a DeFi lending pool to begin generating yield. This experience can even be designed to feel like one seamless transaction to the end user.

How it works

  1. USDC is burned on the source chain: Using an app, a user initiates a transfer of USDC from one blockchain to another, and specifies the recipient wallet address on the destination chain. The app facilitates a burn of the specified amount of USDC on the source chain.
  2. A signed attestation is fetched from Circle: Circle observes and attests to the burn event on the source chain. The app requests the attestation from Circle, which provides authorization to mint the specified amount of USDC on the destination chain.
  3. USDC is minted on the destination chain: The app uses the attestation to trigger the minting of USDC. The specified amount of USDC is minted on the destination chain and sent to the recipient wallet address.

Example Use Cases

Developers can tap into CCTP to build novel cross-chain apps that stack together the various functionalities of trading, lending, payments, NFTs, gaming, and more, all while keeping things simple for users.

Cross-chain swaps

Users can perform cross-chain swaps with digital assets that live on disparate chains, even across L2 rollups (e.g. swapping ARB on Arbitrum for OP on OP Mainnet). In a completely automated way, ARB can be swapped for USDC on Arbitrum, routed by CCTP to OP Mainnet, and swapped for OP. Routing and execution are hidden from the user to deliver a seamless user experience.

Cross-chain deposits

Users can utilize USDC on Ethereum to open a trading position on a decentralized exchange on Avalanche. Because CCTP can route USDC between chains behind the scenes, the user never needs to switch wallets or even think about which chain they’re holding USDC.

Cross-chain purchases

With one click, a user with USDC on Avalanche can buy an Arbitrum-based NFT on Uniswap and list it for sale on OpenSea. When the user initiates the transaction, CCTP routes their USDC from Avalanche to Arbitrum to purchase the NFT from Uniswap, then opens the listing on OpenSea. Once again, the user is shielded from complexity for a fast and easy experience.

Supported Blockchains

CCTP is available on 8 blockchains where USDC is natively issued, resulting in 56 unique transfer routes between networks.

Mainnet:

  • Arbitrum, Avalanche, Base, Ethereum, Noble, OP Mainnet, Polygon PoS, Solana

Testnet:

  • Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, Ethereum Sepolia, Noble Testnet, OP Sepolia, Polygon PoS Amoy, Solana Devnet

Attestation Service API

This public API provides signed attestations used to transmit cross-chain messages. For more information, see the API reference.

📘

Rate Limit

The attestation service rate limit is 10 requests per second. If you exceed 10 requests per second, the service blocks all API requests for the next 5 minutes and returns an HTTP 429 response.

EnvironmentURL
Testnethttps://iris-api-sandbox.circle.com
Mainnethttps://iris-api.circle.com

Sample App

Explore our open-source Sample App powered by CCTP, which demonstrates how a user can transfer USDC across supported blockchains from a simple interface. The app uses development frameworks and libraries such as React and Material-UI for the front end, web3-react for wallet integration, ethers.js for interacting with EVM blockchains, and our public API for fetching attestations that validate USDC burn events.


What’s Next