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 nativamente interoperável

O Cross-Chain Transfer Protocol (CCTP) é um utilitário permissionless na blockchain que facilita transferências seguras de USDC entre blockchains por meio de queima e cunhagem nativas.

Máxima eficiência de capital

O Cross-Chain Transfer Protocol resolve os problemas de fragmentação de liquidez e experiências ruins para o usuário causadas por formas não oficiais e em ponte de USDC flutuando no ecossistema.

Aplicativos construídos sobre o CCTP podem transferir USDC de uma blockchain para outra de forma instantânea, oferecendo aos usuários um método altamente seguro e eficiente em termos de capital para realizar transações em um mundo com várias blockchains.

Máxima eficiência de capital
Permissionless e componível

Permissionless e componível

O CCTP é um primitivo de baixo nível para os desenvolvedores aproveitarem e expandirem. Incorpore o protocolo no seu aplicativo, carteira ou ponte e possibilite que os usuários movimentem qualquer quantia de USDC para qualquer ecossistema compatível.



Em muitos casos, seu aplicativo pode herdar a funcionalidade CCTP de uma ponte ou SDK de carteira que já faz parte do seu stack.

como funciona

Queima e emissão programática

Inicie a transferência na blockchain de origem

Um usuário acessa seu aplicativo para iniciar uma transferência de USDC de uma blockchain para outra e especifica o endereço da carteira do destinatário na blockchain de destino. Seu aplicativo facilita a queima da quantidade especificada de USDC na blockchain de origem.

Carteira do usuário > 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();

Busque o atestado assinado da Circle

A Circle observa e atesta o evento de queima na blockchain de origem. Seu aplicativo solicita o atestado da Circle, que fornece autorização para cunhar a quantidade especificada de USDC na blockchain 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));
}

Complete a transferência na blockchain de destino

Seu aplicativo usa o atestado para acionar a cunhagem do USDC. O valor especificado de USDC é cunhado na blockchain de destino e enviado para o endereço da carteira do destinatário.

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

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

ECOSystem

Tem a confiança da comunidade

Junte-se às principais carteiras, pontes, aplicativos e provedores de infraestrutura que integram o Cross-Chain Transfer Protocol para oferecer uma maneira superior de enviar, gastar, emprestar, tomar emprestado e trocar USDC entre blockchains.

INOVE

Crie novas aplicações para o mundo real

Desenvolva com base no Cross-Chain Transfer Protocol para criar experiências convencionais que reúnem funções como negociações, empréstimos, pagamentos, NFTs, jogos e muito mais – tudo isso enquanto abstrai a complexidade dos usuários.

Forneça conversões entre blockchains

Permita que os usuários convertam entre ativos digitais de em blockchains diferentes, mesmo entre rollups de camada 2 (por exemplo, de ARB na Arbitrum para OP na OP Mainnet). De forma completamente automatizada, o ARB pode ser convertido em USDC na Arbitrum, roteado pelo Cross-Chain Transfer Protocol para a OP Mainnet e convertido em OP.

Habilite depósitos entre blockchains

Permita que os usuários utilizem USDC na Ethereum para abrir uma posição de negociação em uma decentralized exchange na Base. Como o Cross-Chain Transfer Protocol pode rotear USDC entre blockchains nos bastidores, os usuários podem embarcar em um novo aplicativo e nunca precisam trocar de carteira ou pensar em qual blockchain estão mantendo USDC.

Ofereça compras entre blockchains

Com um clique, um usuário pode utilizar o USDC na Polygon PoS para comprar um NFT baseado no Avalanche na Uniswap e listá-lo para venda na OpenSea. Quando o usuário inicia a transação, o Cross-Chain Transfer Protocol encaminha seu USDC da Polygon PoS para a Avalanche para comprar o NFT da Uniswap e, em seguida, abre a listagem na OpenSea.

Otimize a tesouraria entre blockchains

Os apps do Marketplace podem aceitar pagamentos em USDC em múltiplas blockchains e usar o Cross-Chain Transfer Protocol para transferências em massa nos bastidores. As exchanges e as pontes de pools de liquidez podem usar o Cross-Chain Transfer Protocol para reequilibrar com segurança as posições de USDC por blockchain, para reduzir os custos operacionais e atender à demanda de saque em tempo real.

AVAILABILITY

Em operação em 8 blockchains, que possibilitam 56 rotas

O CCTP está disponível na Arbitrum, Avalanche, Base, Ethereum, Noble, OP Mainnet, Polygon PoS e Solana. O suporte para Sui estará disponível em breve.

Perguntas frequentes

O Cross-Chain Transfer Protocol é um utilitário permissionless na blockchain que permite o fluxo de USDC entre blockchains por meio de gravação e cunhagem nativas. Com o Cross-Chain Transfer Protocol, o USDC é efetivamente teletransportado de uma blockchain para outra.

O Cross-Chain Transfer Protocol serve como infraestrutura permissionless para que os desenvolvedores criem com base em, ou integrem a, seus aplicativos, carteiras e pontes existentes.

Não. O Cross-Chain Transfer Protocol é um utilitário na blockchain permissionless para desenvolvedores terceirizados.

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.

Haveria uma taxa de gás na blockchain de origem e uma taxa de gás na blockchain de destino. O aplicativo que integra o Cross-Chain Transfer Protocol seria responsável por determinar como as taxas de gás são tratadas e/ou repassadas ao usuário final. Não há taxas adicionais do Cross-Chain Transfer Protocol.

Sim, o Circle Mint e o Core API são capazes de transferir USDC nativamente entre blockchains. No entanto, esses produtos comerciais só estão disponíveis para empresas qualificadas aprovadas pela Circle.

Em geral, as exchanges centralizadas detêm várias formas nativas de liquidez de USDC em suas plataformas. Os usuários com uma conta em uma centralized exchange podem depositar USDC (nativo de uma determinada blockchain) em sua carteira da exchange e, em seguida, sacar USDC (nativo de uma blockchain diferente) para sua carteira externa.

Ao contrário, o Cross-Chain Transfer Protocol é permissionless. Isso significa que é acessível a qualquer desenvolvedor terceirizado para integrar em seus aplicativos e não requer cadastro de uma conta. Os usuários podem transferir USDC por meio de um aplicativo habilitado para o CCTP para qualquer blockchain compatível a qualquer momento. Os desenvolvedores também podem compor novas experiências na blockchain com base no Cross-Chain Transfer Protocol em seus aplicativos.

O Cross-Chain Transfer Protocol não exige liquidez em USDC em pools para realizar transferências entre blockchains, aumentando a eficiência do capital e evitando taxas cobradas pelos provedores de liquidez.

Todas as queimas de USDC emitem um evento na blockchain de origem, que é automaticamente observado pelo serviço de atestação da Circle. O aplicativo que facilita a queima de USDC é responsável por buscar o atestado assinado da Circle, que então permite que o Cross-Chain Transfer Protocol cunhe USDC na blockchain de destino.

Sim. Consulte a documentação da auditoria externa realizada pela ChainSecurity (ver PDF) e pela Halborn (ver PDF) para obter mais detalhes.

Não.

Os planos da Circle de levar o USDC nativamente para mais redes de blockchains permanecem os mesmos e continuarão a crescer. Prevemos que o Cross-Chain Transfer Protocol estabelecerá o USDC como uma camada de liquidez universal para a internet acessível a todos.

Embora sua indisponibilidade impeça temporariamente a assinatura de novas mensagens de queima, prevemos um tempo de atividade e disponibilidade robustos, semelhantes à forma como nossos serviços de cunhagem existentes operam atualmente.

O Cross-Chain Transfer Protocol não tem impacto direto sobre as versões em ponte existentes do USDC.