fonction asynchrone usdcCrossChainTransfer(amount: number, destinationAddress: string) {
   // Déposer des USDC pour le burning et recevoir des ID de transactions
   const burnUsdcTx = await ethTokenMessengerContract.depositForBurn(amount, AVAX_DESTINATION_DOMAIN, destinationAddress, USDC_ETH_CONTRACT_ADDRESS).send();
   // Extraire le message de la transaction de burning et calculer l’ID du message
   const { messageBytes, messageHash } = extractMessageAndHash(burnUsdcTx);
   // Récupérer l’attestation pour l’ID du message et minter l’USDC sur les tokens AVAX sur la blockchain de destination
   const { attestation } = await fetch(`https://iris-api-sandbox.circle.com/attestations/${messageHash}`).json();
   // Minter l’USDC sur les tokens AVAX sur la blockchain de destination à l’aide du message de la transaction de burning et de l’attestation
   await avaxMessageTransmitterContract.receiveMessage(messageBytes, attestation).send();
}

USDC nativement interopérable

Le Cross-Chain Transfer Protocol (CCTP) est un utilitaire en chaîne sans autorisation qui facilite les transferts d’USDC en toute sécurité entre les blockchains via des processus d'émission et de remboursement natifs.

Efficacité maximale

Le CCTP résout les problèmes de fragmentation des liquidités et de mauvaise expérience utilisateur causés par les mécanismes non officiels et non reliés par bridge (pont) d’USDC qui circulent dans l’écosystème.

Les applications basées sur ce protocole peuvent essentiellement transférer l’USDC d’une blockchain à une autre. Elles offrent ainsi aux utilisateurs une solution hautement sécurisée et rentable pour effectuer des transactions dans un univers multichaînes.

Efficacité maximale
Sans autorisation et composable

Sans autorisation et composable

Le CCTP est une primitive de premier niveau que les développeurs peuvent exploiter et étendre. Intégrez le protocole dans votre application, votre portefeuille ou votre bridge, et permettez aux utilisateurs de transférer n’importe quel montant d’USDC vers tous les écosystèmes pris en charge.



Dans de nombreux cas, votre application peut hériter de la fonctionnalité CCTP d’un bridge ou d’un SDK de portefeuille qui fait déjà partie de votre pile.

Fonctionnement

Emissions et rachats programmés

Initier un transfert sur la blockchain source

L’utilisateur accède à votre application pour initier un transfert d’USDC entre deux blockchains et indique l’adresse du portefeuille du destinataire sur la blockchain de destination. Votre application facilite le remboursement du montant d’USDC indiqué sur la blockchain source.

Portefeuille de l’utilisateur > Application > CCTP > USDC
// Appeler le TokenMessenger depositForBurn
const transactionReceipt = await web3.eth.getTransactionReceipt(burnTx.transactionHash);
fonction sur la blockchain source
const burnTx = await
ethTokenMessengerContract.méthodes.depositForBurn(montant,
AVAX_DESTINATION_DOMAIN, destinationAddressInBytes32,
USDC_ETH_CONTRACT_ADDRESS).envoyer();

Récupérer l’attestation signée de Circle

Circle observe et atteste l’événement de remboursement sur la blockchain source. Votre application demande l’attestation de Circle, qui l’autorise à émettre le montant d’USDC indiqué sur la blockchain de destination.

Application > Service d’attestation > USDC
// Extraire le message de l’événement MessageSent émis
const transactionReceipt = await web3.eth.getTransactionReceipt(burnTx.transactionHash);
const eventTopic = web3.utils.keccak256(’MessageSent(bytes)’)
const log = transactionReceipt.logs.find((l) => l.topics[0] === eventTopic)
const messageBytes = web3.eth.abi.decodeParameters([’bytes’])
const messageHash = web3.utils.keccak256(messageBytes);
// Récupérer l’attestation de l’API de Circle
let attestationResponse = {status: 'pending’’};
while (attestationResponse.status != 'complete’’) {
  attestationResponse = (await fetch(’https://iris-api-sandbox.circle.com/attestations/${messageHash}’)).json();
  // Délai de deux secondes entre les appels
  await new Promise(r => setTimeout(r, 2000));
}

Transfert complet sur la blockchain de destination

Votre application utilise l’attestation pour déclencher l'émission de l’USDC. Le montant d’USDC indiqué est émis sur la blockchain de destination et envoyé à l’adresse du portefeuille du destinataire.

Application > Portefeuille de l’utilisateur, Application > CCTP > USDC
// Appeler le MessageTransmitter

receiveMessage fonction sur la destination source
const receiveTx = await)
avaxMessageTransmitterContract.receiveMessage(receivingMessageBytes, signature);

ECOSystem

Approuvé par la communauté

Rejoignez les principaux fournisseurs de portefeuilles, de bridges (ponts), d’applications et d’infrastructures qui intègrent le CCTP pour améliorer les envois, dépenses, prêts, emprunts et échanges d’USDC entre blockchains.

INNOVER

Concevoir de nouveaux cas d’utilisation concrets

Tirez parti du CCTP pour créer des expériences grand public qui regroupent des fonctions telles que le trading, les prêts, les paiements, les NFT ou les jeux, tout en améliorant l’expérience utilisateur.

Garantir des échanges inter-chaînes

Les utilisateurs peuvent échanger des actifs numériques qui se trouvent sur différentes blockchains, même sur des rollups de couche 2 (par exemple, l’ARB sur Arbitrum pour l’OP sur le réseau principal d’OP). Grâce à un processus entièrement automatisé, l’ARB peut être échangé contre l’USDC sur Arbitrum, acheminé par CCTP vers le Mainnet d’OP et échangé contre de l’OP.

Faciliter les dépôts inter-chaînes

Autorisez les utilisateurs à exploiter l’USDC sur Ethereum pour ouvrir une position de trading sur une plateforme d’échange sur Base. Étant donné que ce protocole peut l’acheminer entre les blockchains en arrière-plan, les utilisateurs peuvent utiliser une nouvelle application sans avoir à changer de portefeuille ou se demander quelle blockchain détient ses USDC.

Proposer des achats inter-chaînes

En un clic, un utilisateur peut utiliser l’USDC sur Polygon PoS pour acheter un NFT basé sur Avalanche sur Uniswap et le mettre en vente sur OpenSea. Lorsque l’utilisateur initie la transaction, le CCTP achemine sa cryptomonnaie de Polygon PoS à Avalanche pour acheter le NFT auprès d’Uniswap, puis publie l’annonce sur OpenSea.

Optimiser la trésorerie inter-chaînes

Les applications de marketplace peuvent accepter les paiements en USDC sur plusieurs blockchains et utiliser le CCTP pour initier des transferts groupés en arrière-plan. Les plateformes d’échange et les pools de liquidités peuvent l’utiliser pour rééquilibrer en toute sécurité les avoirs en USDC par blockchain afin de réduire les coûts opérationnels et répondre aux demandes de retrait au besoin.

AVAILABILITY

Disponible sur huit blockchains et 56 itinéraires

Le CCTP est disponible sur Arbitrum, Avalanche, Base, Ethereum, Noble, OP Mainnet, Polygon PoS et Solana. Sui sera bientôt pris en charge.

FAQ

Le CCTP est un utilitaire permissionless on-chain qui facilite les flux d’USDC inter-chaînes grâce à des processus d'émissions et de remboursements natifs. Avec ce protocole, l’USDC est est transféré d’une blockchain à une autre.

Les développeurs peuvent s’en servir comme une infrastructure permissionless pour faciliter la création et l’intégration dans leurs applications, portefeuilles et bridges (ponts) existants.

Non, le CCTP est un utilitaire permissionless on-chain destiné aux développeurs tiers.

CCTP is available on mainnet for Arbitrum, Avalanche, Base, Ethereum, Noble, OP Mainnet, Polygon PoS, and Solana. Support for Sui is coming soon. Developers can access our developer docs to begin building on CCTP.

Des frais de gaz sont facturés sur la blockchain source et sur la blockchain de destination. L’application qui intègre le CCTP est chargé de définir comment les frais de gaz sont traités et/ou se répercutent sur l’utilisateur final. Aucuns frais supplémentaires ne seront facturés par ce protocole.

Oui, Circle Mint et Core API sont capables de transférer des USDC de manière native entre les blockchains. Toutefois, ces solutions sont uniquement disponibles pour les entreprises approuvées par Circle.

Les plateformes centralisées détiennent généralement diverses formes natives de liquidités en USDC. Les utilisateurs qui possèdent un compte sur ce type de plateformes peuvent déposer des USDC (natifs d’une blockchain donnée) sur leur portefeuille d’échange, puis retirer des USDC (natifs d’une autre blockchain) sur leur portefeuille externe.

A contrario, le CCTP est sans autorisation. Cela signifie que tout développeur tiers peut l’intégrer à ses applications et qu’il n’est pas nécessaire de créer un compte. À tout moment, les utilisateurs peuvent transférer des USDC via une application compatible avec ce protocole vers n’importe quelle blockchain. Ils peuvent également créer de nouvelles expériences en chaîne en plus du CCTP dans leurs applications.

Le CCTP n’a pas besoin de liquidités en USDC regroupées par pools pour effectuer des transferts inter-chaînes, ce qui augmente la rentabilité et évite les frais facturés par les fournisseurs de liquidités.

Tous les remboursements d’USDC génèrent un événement sur la blockchain source, qui est automatiquement observé par le service d’attestation de Circle. L’application à l’origine de l’événement est chargée de récupérer l’attestation signée auprès de Circle, qui permet ensuite au protocole d'émettre l'USDC sur la blockchain de destination.

Oui. Pour en savoir plus, veuillez consulter notre documentation sur les audits réalisés par ChainSecurity (voir le PDF) et Halborn (voir le PDF).

Non.

Le projet de Circle visant à apporter l’USDC en mode natif à davantage de réseaux blockchain reste le même et ne cesse de se développer. Le CCTP devrait faire de l’USDC une couche de liquidité universelle et accessible à tous pour l’Internet.

Bien que son indisponibilité empêche temporairement la signature de nouveaux remboursements, nous prévoyons une disponibilité élevée, similaire à celle de nos services d'émission existants.

Le CCTP n’a aucun impact direct sur les versions reliées par bridge (pont) existantes de l’USDC.