async function usdcCrossChainTransfer(amount: number, destinationAddress: string) {
   // Deposit USDC tokens for burn and obtain transaction hash
   const burnUsdcTx = await ethTokenMessengerContract.depositForBurn(amount, AVAX_DESTINATION_DOMAIN, destinationAddress, USDC_ETH_CONTRACT_ADDRESS).send();
   // Extract message from burn transaction and calculate messageHash
   const { messageBytes, messageHash } = extractMessageAndHash(burnUsdcTx);
   // Retrieve attestation for message hash and mint USDC on AVAX tokens on the destination chain
   const { attestation } = await fetch(`https://iris-api-sandbox.circle.com/attestations/${messageHash}`).json();
   // Mint the USDC on AVAX tokens on the destination chain using the burn transaction message and attestation
   await avaxMessageTransmitterContract.receiveMessage(messageBytes, attestation).send();
}

USDC interoperable de forma nativa

Cross-Chain Transfer Protocol (CCTP) es una utilidad en cadena sin permiso que facilita las transferencias de USDC de forma segura entre blockchains a través de la quema y acuñación nativas.

Máxima eficiencia de capital

CCTP resuelve los problemas de fragmentación de liquidez y de mala experiencia del usuario causados por formas puente de USDC no oficiales que surgen en torno al ecosistema.

Básicamente, las aplicaciones fundadas en CCTP pueden teletransportar USDC de una blockchain a otra, lo que proporciona a los usuarios una forma altamente segura y eficiente en términos de capital para realizar transacciones en un mundo multicadena.

Máxima eficiencia de capital
Sin permisos y componible

Sin permisos y componible

CCTP es una primitiva de bajo nivel para que los desarrolladores la aprovechen y amplíen. Inserte el protocolo dentro de su aplicación, billetera o puente, y permita a los usuarios mover cualquier cantidad de USDC a cualquier ecosistema compatible.



En muchos casos, su aplicación puede heredar la funcionalidad de CCTP de un SDK de puente o billetera que ya forma parte de su pila.

cómo funciona

Quema y acuñación programáticas

Iniciar la transferencia en la cadena de origen

El usuario accede a su aplicación para iniciar una transferencia de USDC de una blockchain a otra y especifica la dirección de la billetera del destinatario en la cadena de destino. Su aplicación facilita la quema de la cantidad especificada de USDC en la cadena de origen.

User's Wallet > App > CCTP > USDC
// Call the TokenMessenger depositForBurn
const transactionReceipt = await web3.eth.getTransactionReceipt(burnTx.transactionHash);
function on the source chain
const burnTx = await
ethTokenMessengerContract.methods.depositForBurn(amount,
AVAX_DESTINATION_DOMAIN, destinationAddressInBytes32,
USDC_ETH_CONTRACT_ADDRESS).send();

Obtener un certificado firmado de Circle

Circle vigila y certifica el evento de quema en la cadena de origen. Su aplicación solicita la certificación de Circle, lo cual proporciona la autorización para acuñar la cantidad especificada de USDC en la cadena de destino.

App > Attestation Service > USDC
// Extract the message from the emitted MessageSent event
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);
// Fetch the attestation from Circle's API
let attestationResponse = {status: 'pending'};
while (attestationResponse.status != 'complete') {
  attestationResponse = (await fetch('https://iris-api-sandbox.circle.com/attestations/${messageHash}')).json();
  // Wait 2 seconds in between calls
  await new Promise(r => setTimeout(r, 2000));
}

Transferencia completa en la cadena de destino

Su aplicación utiliza la certificación para activar la acuñación de USDC. La cantidad especificada de USDC se acuña en la cadena de destino y se envía a la dirección de la billetera del destinatario.

App > User's Wallter , App > CCTP > USDC
// Call the MessageTransmitter

receiveMessage function on the destination chain
const receiveTx = await)
avaxMessageTransmitterContract.receiveMessage(receivingMessageBytes, signature);

ECOSystem

Avalado por la comunidad

Únase a los principales proveedores de las billeteras, puentes, aplicaciones e infraestructura que integran CCTP para proporcionar una forma superior de enviar, gastar, dar préstamos, pedir créditos e intercambiar USDC a través de blockchains.

INNOVAR

Cree nuevos casos de uso del mundo real

Desarrolle sobre CCTP para crear experiencias integradas que agrupen funciones, como intercambios, préstamos, pagos, NFT, juegos, entre otros. Todo esto sin complejidades para el usuario.

Ofrecer intercambios entre cadenas

Permita que los usuarios intercambien activos digitales que conviven en diferentes blockchains, incluso a través de grupos L2 (p. ej., el ARB en Arbitrum por OP en OP Mainnet). De forma completamente automatizada, el ARB se puede intercambiar por USDC en Arbitrum, enrutarse mediante CCTP a OP Mainnet y cambiarse por OP.

Habilitar depósitos entre cadenas

Permita que los usuarios utilicen USDC en Ethereum para abrir una posición de trading en un decentralized exchange en Base. Dado que CCTP puede enrutar USDC entre blockchains en silencio, los usuarios pueden incorporar una nueva aplicación y nunca tener que cambiar de billetera ni pensar en qué blockchain tienen los USDC.

Ofrece compras entre cadenas

Con un solo clic, el usuario puede utilizar USDC en Polygon PoS para comprar un NFT basado en Avalanche en Uniswap y ponerlo a la venta en OpenSea. Cuando el usuario inicia la transacción, CCTP enruta su USDC de Polygon PoS a Avalanche para comprar el NFT de Uniswap y, a continuación, abre la venta en OpenSea.

Optimizar la tesorería entre cadenas

Las aplicaciones del mercado pueden aceptar pagos en USDC en múltiples blockchains y usar CCTP para transferencias masivas en segundo plano. Los intercambios y los puentes de reserva de liquidez pueden usar CCTP para reequilibrar de manera segura las tenencias de USDC por blockchain a fin de reducir los costos operativos y satisfacer la demanda de retiro sobre la marcha.

AVAILABILITY

Disponible en 8 cadenas que habilitan 56 rutas

CCTP está disponible en Arbitrum, Avalanche, Base, Ethereum, Noble, OP Mainnet, Polygon PoS y Solana. Habrá soporte para Sui disponible próximamente.

Preguntas frecuentes

CCTP es una utilidad en cadena sin permisos que permite la circulación de USDC entre cadenas mediante la quema y acuñación nativas. Con CCTP, el USDC se teletransporta de forma efectiva de una blockchain a otra.

CCTP constituye una infraestructura sin permisos que los desarrolladores pueden usar de base para construir sus aplicaciones, billeteras y puentes existentes, o para integrarla a ellos.

No. CCTP es una utilidad en cadena sin permisos para desarrolladores de terceros.

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.

Habría una tarifa de gas en la cadena de origen y una tarifa de gas en la cadena de destino. La aplicación que integre CCTP sería la encargada de determinar cómo se manejan las tarifas de gas o se las transmiten al usuario final. No hay cargos adicionales por parte de CCTP.

Sí, Circle Mint y Core API tienen la capacidad de mover USDC de forma nativa entre cadenas. Sin embargo, esos productos comerciales solo están disponibles para las empresas calificadas con aprobación de Circle.

Los intercambios centralizados suelen contener varias formas nativas de liquidez del USDC en sus plataformas. Los usuarios que poseen una cuenta en un intercambio centralizado pueden depositar USDC (nativo de una cadena determinada) en la billetera de su intercambio y, luego, retirar USDC (nativo de una cadena diferente) a su billetera externa.

Por el contrario, CCTP no tiene licencias. Esto significa que cualquier desarrollador externo tiene acceso a CCTP y puede integrarlo en sus aplicaciones sin necesidad de registrarse para obtener una cuenta. Los usuarios pueden mover USDC a través de una aplicación con CCTP habilitado a cualquier blockchain compatible en cualquier momento. Además, los desarrolladores pueden crear nuevas experiencias en cadena fundadas en CCTP dentro de sus aplicaciones.

CCTP no requiere reserva de liquidez del USDC para realizar transferencias entre cadenas, lo que aumenta la eficiencia del capital y evita el cargo de tarifas por parte de los proveedores de liquidez.

Todas las quemas de USDC emiten un evento en la cadena de origen que el servicio de certificación de Circle vigila automáticamente. La aplicación que facilita la quema de USDC se encarga de obtener el certificado firmado de Circle, que, a su vez, permite que CCTP acuñe USDC en la cadena de destino.

Sí. Consulte nuestra documentación para auditorías de terceros realizada por ChainSecurity (ver PDF) y Halborn (ver PDF) para obtener más detalles.

No.

Los planes de Circle de llevar USDC de forma nativa a más redes blockchain siguen intactos y seguirán creciendo. Nuestra visión es que CCTP establezca el USDC como una capa de liquidez universal para internet que sea accesible para todos.

Si bien su falta de disponibilidad impediría temporalmente que se firmen nuevos mensajes de quema, anticipamos un tiempo de actividad y disponibilidad firmes similares a la forma en que operan nuestros servicios de acuñación existentes en la actualidad.

CCTP no tiene impacto directo sobre las versiones puente existentes del USDC.