We refreshed our doc site!
Bookmarked links may have changed
Read release notesCross-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.
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.
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.
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.
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.
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.
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.
CCTP is available on 8 blockchains where USDC is natively issued, resulting in 56 unique transfer routes between networks.
Mainnet:
Testnet:
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.
Environment | URL |
---|---|
Testnet | https://iris-api-sandbox.circle.com |
Mainnet | https://iris-api.circle.com |
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