Migration GuidesMigration to CCTP

CCTP Migration for Relayers

Relayer changes for handling Native USDC routes after CCTP migration.

After CCTP migration, deposits will use inputToken = Native USDC and outputToken = Bridged USDC on some routes. Relayers must handle scenarios where input and output tokens differ.

Key Changes

Different Input and Output Tokens

The Across V3 depositV3 function supports deposits where the outputToken differs from the inputToken. After CCTP migration, this becomes a production reality — relayers must fill deposits where the user deposited Native USDC but expects Bridged USDC on the destination.

Token Constraints

RuleDetail
inputTokenMust be natively supported by Across (Native USDC post-migration)
outputTokenCan be any ERC-20 on the destination chain
Bridged USDC as inputNot supported — cannot serve as inputToken

Price Computation

Relayers should:

  1. Compute the price of the outputToken relative to the inputToken
  2. Normalize both amounts to determine fill profitability
  3. Avoid unprofitable fills where the output token is worth more than the input

Inventory Requirements

Maintain inventory in both Bridged and Native USDC on CCTP-enabled chains (Ethereum, Polygon, Optimism, Arbitrum, Base). Some routes will require Bridged USDC for fills while others require Native USDC.

While temporarily hardcoding support for the specific USDC-to-Bridged-USDC route is acceptable, implementations should progress toward supporting arbitrary output tokens for future crosschain swap routes.

Prerequisites

  • Must be upgraded from Across V2 to V3 before CCTP migration
  • Must be familiar with the V3 fee structure (see V2 to V3 migration)

On this page