CctpExtensionV2 contract. This workflow suits users who hold USDC on Arbitrum
but lack native gas tokens. A relayer submits the Arbitrum transaction on their
behalf.
For self-custody integrators who pay their own gas, use
Transfer USDC from Arbitrum to HyperCore
with CctpExtension instead.
For background on the contract, see
CctpExtensionV2 Contract Interface.
Prerequisites
Before you begin, ensure that you’ve:- Deployed or operate a relayer that can submit transactions on Arbitrum and pay ETH gas
- Collected an EIP-3009
ReceiveWithAuthorizationsignature from each depositor - Identified the
CctpExtensionV2proxy address for your environment (see HyperCore contract addresses) - Configured CCTP deposit parameters for HyperCore (HyperEVM domain
19,CctpForwarderasmintRecipient/destinationCaller, and forwarder hook data for the HyperCore recipient)
Steps
Step 1. Collect the user’s EIP-3009 signature
The user signsReceiveWithAuthorization with:
from: depositor addressto:CctpExtensionV2proxy addressvalue: total USDC amount covered by this authorizationvalidAfter/validBefore: authorization time windownonce: deterministic value equal tokeccak256(abi.encode(from, amount, validAfter, validBefore, depositData)), wheredepositDatais the ABI-encodedSponsoredDepositForBurnDatastruct for this deposit
depositData prevents a relayer from redirecting funds to
a different destination or fee configuration than the user signed.
Step 2. Submit the deposit via your relayer
CallbatchSponsorDepositForBurn on the CctpExtensionV2 proxy with:
_authData:ReceiveWithAuthorizationDataWithFrom[](includes explicitfrom)_depositData:SponsoredDepositForBurnData[]with CCTP fields aligned to your HyperCore destination
SponsoredDepositForBurnSkipped event) without reverting the whole batch.
Step 3. Monitor the crosschain transfer
After the Arbitrum transaction confirms, Circle’s attestation service picks up the burn event. TheCctpForwarder on HyperEVM receives the minted USDC and
routes it to the HyperCore recipient via the forwarder hook.
No special handling is required beyond standard CCTP and forwarder monitoring.
For details, see CCTP on HyperCore.