Bridged USDC
Migrating Existing USDC Liquidity

User Guide: Migrating Existing USDC Liquidity to Circle's USDC Standard

To migrate your existing USDC liquidity on an Arbitrum chain that has recently adopted the Bridged USDC Standard, follow the steps below.

Approve the USDC Contract for Withdrawal

Find the ERC-20 USDC contract and approve the 'StandardGateway' to spend the full amount of your USDC. Contact the Chain team if the address to the 'StandardGateway' was not provided.

Initiate Withdrawal via outboundTransfer

Call the outboundTransfer function on the approved USDC contract with the following arguments:

  • _l1Token: The address of the USDC contract on the settlement layer.
  • _to: The address on the settlement layer where you want to withdraw the USDC.
  • _amount: The amount to withdraw (note: 1 USDC = 1000000 units).
  • _data: Leave this field empty.

Using BlockScout

You can initiate this transaction directly through BlockScout's UI, when navigating to the Standard Gateway Contract.

Using Foundry

Alternatively, use Foundry with the following cast command, replacing the placeholders with your specific details:

cast call $STANDARD_GATEWAY "outboundTransfer(address,address,uint256,uint256,uint256,bytes)" $L1_USDC_ADDRESS $YOUR_ADDRESS $AMOUNT_TO_WITHDRAW 0 0 0x --rpc-url $RPC_URL --private-key $PK

Checking the Withdrawal Status

After processing the transaction, monitor the withdrawal status in the Superbridge UI. This interface will guide you through the proving and finalization stages.

Finalizing the Transfer on the Settlement Layer

Once the withdrawal is complete and your USDC is back on the settlement layer, use the Superbridge UI or other recommended bridging methods to bridge it back to your rollup.

Bridged USDC on Rollup

Once the bridging process is complete, your USDC will appear as Bridged USDC (USDC.e) on the rollup.