To move USDC from one chain to another, you swap it: you send USDC on the chain you hold and receive USDC on the chain you need, at an address you control. On the SwapRocket exchange you choose USDC and its network on each side of the swap form, with no account and no email. The form shows which networks are available.

The other two routes are a bridge and a deposit-then-withdraw through an exchange account. This guide compares the three, walks through the swap, and lists the checks that prevent the costly mistake: sending USDC to an address on the wrong network. For USDC against other coins, see the USD Coin (USDC) exchange page.

TL;DR
  • USDC exists separately on Ethereum, Solana and a number of other networks. A balance on one cannot be sent directly to an address on another.
  • The receiver decides the network. Find out which one the receiving wallet or application accepts first.
  • A swap on SwapRocket uses a floating rate. The estimate shown before you send already includes the fee and the payout network fee, so you receive somewhat less USDC than you send.
  • A typical swap takes 5 to 30 minutes, set mostly by how fast the deposited coin confirms.
  • Standard swaps need no KYC. The licensed liquidity provider screens transactions and can, rarely, hold a flagged one and ask for verification.

Why USDC on one chain cannot be sent to another

USDC is a token issued separately on each blockchain. USDC on Ethereum is a balance recorded on Ethereum, and USDC on Solana is a balance recorded on Solana. The two ledgers do not share information, so changing chain always means giving up tokens on one and receiving tokens on the other.

Two details catch people out:

  • Networks that share an address format. Ethereum and the networks built around it, such as Arbitrum, Optimism, Base, Polygon and BNB Chain, all use addresses starting with 0x. The same address exists on each of them, and USDC sent on one does not appear on another.
  • Native and bridged USDC. On some networks there are two tokens: USDC issued there directly by Circle, and an older bridged version, often labelled USDC.e. Applications may accept only one of them. Check which one you are being asked for.

USDC networks at a glance

Illustration of USDC moving between Ethereum, Solana, and Base via a non-custodial swap - USDC networks at a glance
NetworkAddress looks likeCoin needed to send USDC on it
EthereumStarts with 0xETH
SolanaA long string with no 0xSOL
Arbitrum, Optimism, BaseStarts with 0xETH on that network
PolygonStarts with 0xPOL
BNB ChainStarts with 0xBNB
AvalancheStarts with 0xAVAX

Not every network is available on every service. On SwapRocket, the network list appears when you select USDC in the swap form.

Swap, bridge or exchange transfer

RouteWhat you receiveID checkWho holds the fundsWhat it involves
Swap (SwapRocket and similar services)USDC on the chosen networkNone for standard swaps; a flagged transaction can be held for verificationYou, apart from the moment of the swapPaste addresses, send one transaction
BridgeUSDC on the destination network, native or bridged depending on the bridgeNoneYouConnect a wallet, approve the token, sign; you need the gas coin on the sending network
Exchange accountUSDC withdrawn on the network you pickYes, as a ruleThe exchange, until you withdrawSign up, deposit, withdraw on another network

A bridge can be the cheaper route when both networks are supported by one, including Circle's own transfer protocol for native USDC, and you are comfortable connecting a wallet and approving a contract. A swap asks for less: an address and one transfer. A swap also lets you change coin at the same time, for example USDC on Solana to ETH on Ethereum. Bridges compared with swaps and the cross-chain bridge guide cover the trade-offs.

Step-by-step: swap USDC between chains on SwapRocket

Illustration of USDC moving between Ethereum, Solana, and Base via a non-custodial swap - Step-by-step: swap USDC between chains on SwapRocket

Step 1: Find out which network the receiver accepts

If the USDC is going to an application, an exchange deposit address or another person, confirm the network, and whether native or bridged USDC is required, before you start.

Step 2: Select USDC and its network on both sides

Open the SwapRocket exchange. On the sending side choose USDC on the network you hold. On the receiving side choose USDC on the network you need. Enter the amount. The form shows the minimum and the estimated amount you will receive.

Step 3: Read the estimate

The rate is floating. The estimate already includes the fee and the payout network fee, and nothing is added afterwards. A swap from USDC to USDC is still a swap, so the amount you receive is somewhat lower than the amount you send.

Step 4: Paste the receiving address and a refund address

The receiving address must belong to the destination network. The refund address must belong to the sending network: if a swap cannot be completed, the USDC is returned there, minus network fees.

Step 5: Send the USDC

Start the swap and you are shown a deposit address. Send the amount you entered from your own wallet, on the sending network you selected. You need that network's native coin in the wallet to pay for the transfer.

Step 6: Confirm the payout

Check the payout on the block explorer of the destination network. If your wallet does not show it, switch the wallet to that network and add the USDC token if it is not listed.

If this is your first swap, your first crypto swap, step by step explains the flow in more detail.

Costs and timing

What you pay. The network fee for your deposit comes out of your wallet in the sending network's native coin. It is highest on Ethereum and lower on most other networks. The swap fee and the payout network fee are already inside the estimate. The number to compare, against a bridge or any other route, is the amount of USDC you end up with. What "no fee" really means explains where the costs sit.

How long it takes. A typical swap takes 5 to 30 minutes. A deposit from a fast-confirming network puts it toward the shorter end, and congestion on either network adds time.

Common mistakes

Treating USDC as one token

The ticker says nothing about the network. Always name both: "USDC on Solana", "USDC on Arbitrum".

Arriving without the gas coin

USDC cannot pay its own network fees. To do anything with it on the destination network you need that network's native coin: ETH, SOL, POL, BNB or AVAX. If you have none there, plan a second small swap into the native coin.

Sending to an exchange deposit address on the wrong network

Exchanges credit a deposit only if it arrives on the network their deposit page specifies. Match it exactly.

Mixing up native and bridged USDC

If an application asks for native USDC and you hold the bridged version, or the reverse, it may not accept the deposit.

Assuming a stablecoin carries no risk

USDC depends on its issuer and on the network it sits on. USDT vs USDC vs DAI explains what backs it.

Checklist before you send

  • [ ] I know which network the receiver accepts, and whether it needs native USDC
  • [ ] The receiving address belongs to that network
  • [ ] The refund address belongs to the network I am sending from
  • [ ] The amount is above the minimum shown
  • [ ] I have the native coin to pay for the deposit
  • [ ] I will have the native coin on the destination network to use the USDC afterwards

Frequently Asked Questions

Can I swap USDC from Ethereum to Solana without a bridge?

Yes. A swap takes USDC on Ethereum at a deposit address and pays out USDC on Solana to your Solana address. You do not connect a wallet or approve a contract.

Is a bridge or a swap cheaper for USDC?

It depends on the networks and the moment. Compare the amount of USDC you would end up with on each route, after every network fee. A bridge involves an approval and a bridge transaction that you pay gas for. A swap involves one transfer, with its costs inside the estimate.

Do I need KYC to swap USDC between chains?

Not for a standard swap. There is no account and no email. The licensed liquidity provider that executes the swap screens transactions and can, rarely, hold a flagged one and ask for verification.

What if I sent USDC on the wrong network?

Stop and do not send more. If you sent it to your own address on another 0x network, the funds are still yours: switch your wallet to that network to see them. If you sent it to a service, contact that service's support with the transaction hash. For a SwapRocket swap, email support@swaprocket.io with your swap ID.

Is swapping USDC between chains taxable?

In many countries an exchange of one crypto asset for another can be a taxable event, even between stablecoins. Keep a record of each swap and check the rules where you live.

Swap USDC to the chain you need

Confirm the receiving network, paste your addresses, check the estimate and send from your own wallet. SwapRocket is not offered to residents of the United States or the United Kingdom.