Mint USDC on Avalanche

To mint USDC on the destination blockchain, we're using the messageBytes from the depositForBurn event and the attestation signature (attestationResponse.attestation). We're fetching both from Circle's attestation services and call the receiveMessage function on the Message Transmitter contract in the destination blockchain network.

Using Programmable Wallets' smart contract execution API:

Request Parameters

  • contractAddress

    You will be interacting with the Message Transmitter contract on the destination chain, so the contractAddress parameter of the request is 0xe09A679F56207EF33F5b9d8fb4499Ec00792eA73

  • abiFunctionSignature

    The function being called on the Message Transmitter contract is:
    receiveMessage(bytes message, ,bytes attestation)

    This will be the abiFunctionSignature property of the request receiveMessage(bytes,bytes)

  • abiParameters

    For the call to receiveMessage, the abiParameters are

    • message: the bytes emitted by MessageSent event from the depositForBurn transaction logs. This is messageBytes from the attestation steps earlier.
    • Attestation: The signature from Circle's attestation service. This is attestationResponse.attestation from earlier.
  • walletId

    The wallet that is performing the contract execution. This will be the ID of the developer-controlled wallet you created earlier.

  • feeLevel

    A dynamic blockchain fee level setting (LOW, MEDIUM, or HIGH) that will be used to pay gas for the transaction. HIGH is used for this transaction.

  • idempotencyKey

    Universally unique identifier (UUID v4) idempotency key. This is automatically generated for you.

  • entitySecretCiphertext

    A base64 string expression of the entity secret ciphertext. Refer to this helpful tool.

Once the message has been received, the specified amount of USDC will be minted at the recipient's address on the destination blockchain.

Try it out:Mint on Polygon

Note: The input parameters of this component differ from those of the actual endpoint. For instance, we automatically generate the Entity Secret Ciphertext to simplify the process and ensure a better experience for you.

A transactionId will be returned after you submit the receiveMessage request. You can use this transactionId to look up the status and details of the final transaction.

Check details of transaction

Try it out:Check transaction

Need help or have questions?

Here are some helpful links:

🎮Join our Discord Community: Engage, learn, and collaborate.
🛎Visit our Help-Desk Page: Dive into curated FAQs and guides.
📧Direct Email: We're always a message away.
📖Read docs: Check out our developer documentation.
© 2023 Circle Technology Services, LLC. All rights reserved.