> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CctpExtensionV2 Contract Interface

> Sponsored CCTP deposits from Arbitrum using EIP-3009 and a relayer.

`CctpExtensionV2` is an optional Arbitrum contract for sponsored CCTP deposits
to HyperCore. It is separate from
[`CctpExtension`](/cctp/howtos/transfer-usdc-from-arbitrum-to-hypercore), which
expects the depositor to submit the burn transaction and pay gas.

Circle deploys and maintains the contract. Circle does not operate the
source-chain relayer: the integrator (or their partner) runs relayer
infrastructure that submits Arbitrum transactions on users' behalf.

## What it does

1. The user signs an offchain EIP-3009 `ReceiveWithAuthorization` that
   authorizes the contract to pull USDC from their wallet.
2. A relayer calls `batchSponsorDepositForBurn` with parallel arrays of
   authorization data and CCTP deposit parameters, paying Arbitrum gas.
3. The contract validates that each authorization nonce matches the intended
   deposit parameters, pulls USDC, and burns via CCTP `TokenMessengerV2`.
4. CCTP attestation and destination forwarding proceed like any other Arbitrum →
   HyperEVM → HyperCore transfer (including optional `CctpForwarder` hook data).

Primary entry point: `batchSponsorDepositForBurn`

## Who should use it

| Integrator profile                                                                        | Recommended path                                                                                  |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Users hold ETH on Arbitrum and submit their own transactions                              | [`CctpExtension`](/cctp/howtos/transfer-usdc-from-arbitrum-to-hypercore) or `TokenMessengerV2`    |
| Users hold USDC but not native gas; you operate (or partner with) a relayer that pays gas | [`CctpExtensionV2`](/cctp/howtos/transfer-usdc-from-arbitrum-to-hypercore-with-cctp-extension-v2) |
| Transfers from chains other than Arbitrum                                                 | `TokenMessengerV2` + HyperCore hook data (no `CctpExtensionV2` deployment)                        |

`CctpExtensionV2` is deployed on Arbitrum only. It exists to support
relayer-based deposit UX for a subset of Hyperliquid users; it is not a
general-purpose replacement for `CctpExtension`.

## Contract addresses

See
[HyperCore CCTP-Enablement Contract Addresses](/cctp/references/hypercore-contract-addresses#cctpextensionv2-mainnet)
(mainnet) and
[CctpExtensionV2 testnet addresses](/cctp/references/hypercore-contract-addresses#cctpextensionv2-testnet).

## How-to

For integration steps, see
[Transfer USDC from Arbitrum to HyperCore with CctpExtensionV2](/cctp/howtos/transfer-usdc-from-arbitrum-to-hypercore-with-cctp-extension-v2).
