Two tokens called USDC, on the same network, in the same wallet — and a platform credits one and ignores the other. Reddit is full of versions of this story: “Revolut Refusing to Return USDC-e Sent via Polygon” (r/Revolut, 24 comments) or “Ive sent USDC.e on worldchain to my trustwallet” (r/CryptoHelp).

Short answer: USDC.e is bridged USDC — a separate token contract for USDC carried over from Ethereum. When a platform says “USDC”, it usually means native USDC on that network. Swap USDC.e to native USDC on the same network before you send, and check the contract address, not just the name.

What is USDC.e?

Arbitrum’s documentation defines the two side by side:

“Native USDC: USDC tokens that are native to the Arbitrum One chain.” … “Bridged USDC (USDC.e): Ethereum-native USDC tokens that have been bridged to Arbitrum One.”

Arbitrum Docs, “USDC on Arbitrum One” (source).

In plain words: native USDC is issued directly on Arbitrum. USDC.e stands for USDC that was locked in a bridge on Ethereum and carried over. Both are meant to be worth a dollar, but they are two different contracts, and software tells them apart by contract, not by name.

The same docs page compares them:

Native USDC Bridged USDC
Symbol USDC USDC.e
Contract on Arbitrum One 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 0xff970a61a04b1ca14834a43f5de4533ebddb5cc8
Benefits listed by Arbitrum “CEX Support, directly redeemable 1:1” — (left blank)

The page also says it expects liquidity to keep moving from USDC.e to native USDC over time. Arbitrum isn’t the only network with this split: the Reddit threads above are about USDC.e on Polygon and on World Chain.

Why wasn’t my USDC.e deposit credited?

Exchanges and apps credit specific token contracts on specific networks. A deposit of a different contract — even one named USDC — doesn’t match what the deposit address expects, so it isn’t credited automatically.

Platforms say this in their own rules. Hyperliquid’s deposit FAQ, for example: “If you sent a different asset, or sent USDC on any other network, it will not be credited.” For accounts connected with a wallet, the same FAQ is even narrower — “Supports USDC deposits via Arbitrum only.” — so USDC.e has to become native USDC before it goes in. We walk through that case in funding Hyperliquid from USDT or BTC.

What happens next is up to the platform. Some can return a token or network they don’t support, some charge for it, some won’t. These are user reports, not official statements, but the thread titles say enough: “Revolut Refusing to Return USDC-e Sent via Polygon”, and “Bitvavo charges €50 recovery fee for ~10 USDC sent on Arbitrum (unsupported network)”.

If your USDC.e is already stuck on a platform, a swap can’t reach it: the coins are under the platform’s control. Contact its support with the transaction hash. And ignore anyone who offers to recover funds for a fee.

How do you tell which one you hold?

  1. Look at the label. Your wallet may show “USDC.e” or “Bridged USDC” (the token name in Arbitrum’s docs). It may also just say “USDC” — so don’t stop here.
  2. Check the contract. Tap the token in your wallet and open it in the network’s block explorer (Arbiscan for Arbitrum). Compare the contract with the table above.
  3. Read the deposit page of the platform you are sending to. It names the network, and sometimes the contract, it accepts.

How do you turn USDC.e into native USDC?

Your situation What to do Watch out for
USDC.e in your own wallet Swap USDC.e → USDC on a decentralized exchange on the same network You pay the network fee in its gas coin (ETH on Arbitrum); confirm the contract of the token you receive
Your wallet has a built-in swap Same swap, inside the wallet Check the received token and the total fee before confirming
You haven’t bought USDC yet Get native USDC directly, so USDC.e never enters the picture When withdrawing from an exchange or bridge, check which USDC you will receive
USDC.e stuck on a platform Contact that platform’s support A swap can’t help here

A note on price: USDC.e trades at whatever the market sets on decentralized exchanges. Look at how much native USDC you’ll get back before you confirm, not just at the “1:1” you expect.

Where does BayChange fit in?

Honestly, only on one row of that table. At the time of writing, BayChange doesn’t accept USDC.e — check the coin list for the current set. A BayChange deposit address for USDC expects native USDC, so never send USDC.e there.

Where we help is the start of the story. If you hold USDT on Tron, BTC or ETH and need USDC for a platform that only takes native USDC, we pay out native USDC on Ethereum, Arbitrum or Solana to your address. You get the right token from the start and skip the USDC.e step. For the USDT-on-Tron case, see USDT TRC-20 to USDC.

How do you avoid this next time?

  • Read the deposit rule fully: coin, network and, if shown, contract.
  • Check what a withdrawal or a bridge will give you before you confirm it — the name “USDC” alone doesn’t tell you which one.
  • Send a small test to a new platform first.
  • Keep a little gas coin on the network where you hold USDC.e, so you can swap it when you need to.

If you need native USDC on Arbitrum and you start from USDT on Tron, the form below is set to exactly that. No sign-up, no wallet connection needed, and the fee is shown before you send.