ドラランプ・デジタルドル
dolaramp
blog
en
← all posts

sent usdc on the wrong network? what comes back, and how.

// tl;dr USDC is not one token. Circle issues a separate, native USDC on each blockchain, and a transfer on one of them never reaches another. no blockchain reverses a confirmed send, so what matters is who holds the key to that address on the network where the money landed. the good news for USDC: if it went to your own 0x on Base or Arbitrum, dolaramp shows both networks and its bridge moves it in seconds, with no gas token. Ethereum takes an external wallet and ETH. a Solana token account, a contract, or "USDC on TRON" is where the money stays.

one name, several tokens

Circle, the issuer of USDC, deploys a different contract on every blockchain it supports: Ethereum, Solana, Base, Arbitrum, Avalanche, Polygon and others, each one native, each one backed by the same reserves, none of them aware of the others. dolaramp reads three of them: Solana, Base and Arbitrum, using only the official contracts listed on contracts.

on top of Circle's own tokens, several networks carry bridged copies: tokens created by a bridge, not by Circle, that stand in for USDC locked somewhere else. on Arbitrum the old one is called USDC.e; on Base, USDbC. they trade close to a dollar, but they are not the issuer's token, and dolaramp does not read them.

so "I sent USDC" is only half a sentence. the other half is the network. when the sender's network and the recipient's don't match, the transfer doesn't get lost in transit: it confirms normally, on the network you picked, to that address on that network. the only question is whether someone can move it from there.

the address format already stops some mistakes

networkwhat the address looks like
Solanabase58, 32 to 44 characters, no 0x
EVM (Base, Arbitrum, Ethereum and others)0x + 40 hex characters. the same address is valid on every EVM chain
TRONstarts with T, 34 characters

a Solana address pasted with Base selected doesn't even validate, so almost every wallet refuses it. the dangerous case is the one where the format is identical: between EVM chains. a 0x… is valid on Base, Arbitrum, Ethereum, Polygon. the wallet accepts it, the network confirms it, and the USDC sits on the chain you chose, which may not be the one the recipient is looking at.

what you can recover

1. your own 0x, Base instead of Arbitrum (or the other way around). this is the most common USDC mistake and, in dolaramp, the one with the cheapest fix. your 0x comes from your 12 words and is identical on both networks. the app shows your Base and Arbitrum balances separately, so the money appears where it landed. if you need it on the other network, use bridge on the home screen: it moves USDC between Solana, Base and Arbitrum through Circle's CCTP, burn on one side and mint on the other, in about 8 to 20 seconds. it costs $2 + 0.3% of the amount (minimum $10) plus Circle's fast fee of 1 to 1.4 basis points, and you never need ETH or SOL. there is no recipient field: the USDC always lands on your own address on the other network.

2. your own 0x, but over Ethereum. the money is at your address on Ethereum. dolaramp doesn't read Ethereum, so the balance won't appear, but the key is the same. import the 12 words into an EVM wallet (step by step in restore your 12 words in another wallet), check that the 0x matches, switch the wallet to Ethereum and move it. you'll need ETH for the fee, and dolaramp doesn't pay it for you there. the same applies to Polygon, Avalanche or any other EVM chain where Circle issues USDC.

3. a bridged copy instead of native USDC. someone sent you USDC.e on Arbitrum, or USDbC on Base. the app ignores contracts it doesn't use, but the tokens are under your words: import them into an EVM wallet and you'll see the balance. to turn it into native USDC you swap it on a decentralized exchange, with that network's gas token. ask the sender for native USDC next time; on Arbitrum and Base the native contract is the one on our contracts page.

4. a USDC token the app doesn't know, on Solana. on Solana every token has its own mint address. only Circle's mint is USDC; anything else named "USDC" is a different token, and dolaramp won't show it. if it was sent to your Solana address, it's under your words: import them into a Solana wallet to see it. whether it has any value is another matter; check the mint on the checker before you believe the name.

5. an exchange address. the exchange holds the key. some have a process for deposits on an unsupported network, sometimes with a fee and a wait; others don't do it at all. open a ticket with the transaction hash, the network used and the address. only they can tell you.

6. someone else's address. if they control the key on that network, they can import it, switch the network and send it back. it's up to them.

what you can't recover

  • a Solana token account or program address. on Solana, a valid address isn't always a wallet. token accounts and program addresses can receive a transfer, but nobody holds a key that can send it out. this is the Solana-specific way to lose USDC for good.
  • a contract address. sending USDC to the USDC contract itself, or to any contract with no withdraw function, locks it. contracts have no private key.
  • a 0x with no owner on that network. a smart-contract wallet (multisig, smart account) exists on the chain where it was created. the same 0x on another chain may have nobody able to sign. sometimes the creator can deploy the contract there too; often not.
  • "USDC on TRON". Circle stopped minting USDC on TRON in February 2024 and ended transfers for its business customers in February 2025. the old token still exists on-chain, but the issuer no longer stands behind it on that network, exchanges have been delisting it, and dolaramp doesn't read it. if it reached your plain TRON address you'd need a TRON wallet and TRX to move it, and then somewhere that still takes it. if someone offers you USDC on TRON, ask for Solana, Base or Arbitrum instead.

watch out for "recovery services" that appear after a mistake. nobody can undo a confirmed transfer. if they ask for your 12 words or an upfront payment to "release" funds, it's a scam.

what dolaramp does to prevent it

  • it validates the address for the chosen network, with each network's own check: the Solana address format, the TRON checksum, the mixed-case checksum (EIP-55) on 0x addresses. an invalid address doesn't send.
  • it recognizes addresses from other networks. pasted a Solana address with Base selected? the app says so and the send button stays locked.
  • it warns on Solana when the address is a token account or program address, not a wallet.
  • it only uses the issuer's contracts. the app signs a transfer only if the recipient, amount and token contract are exactly what you typed, and the token contract is always Circle's native USDC on that network.
  • the bridge has no recipient field. moving USDC between Solana, Base and Arbitrum always lands on your own address, so the cross-network move can't go to a wrong address.

the honest limit: a valid 0x on Base is also valid on Arbitrum and Ethereum. no app can tell from the address alone which EVM chain the recipient expects. that's something you confirm with them.

for businesses, the API has two routes for this, documented in docs: POST /address/validate checks an address's format for a network and POST /address/detect tells you which network family an address belongs to. a 0x is reported as base but is valid on any EVM chain; the caller picks the network.

before you send

  • ask for the network, not just the address. "USDC" alone tells you nothing.
  • between Base and Arbitrum, if both of you use dolaramp, the mistake costs one bridge, not the money.
  • on an exchange, pick the same network on the withdrawal and the deposit side.
  • check the first and last characters of the pasted address.
  • for a large amount to a new recipient, send a small test first.
  • paste the address into our checker to see its network and its balance in the official tokens.

faq

I sent USDC over Arbitrum but the recipient wanted Base. Is it lost?

No, if the address is a dolaramp wallet or any wallet whose owner holds the key. A 0x address is the same on Base and Arbitrum. In dolaramp both networks show up, and the bridge moves USDC between them in seconds, with no gas token.

I sent USDC over Ethereum to a dolaramp address. What now?

The money is at that address on Ethereum. dolaramp doesn't read Ethereum, so it won't appear in the app, but the key is the same 12 words. Import them into an EVM wallet, switch to Ethereum and move it. You'll need ETH for the fee.

Can USDC be sent on TRON?

Circle stopped issuing USDC on TRON in February 2024 and ended transfers for its business customers in February 2025. The old token still exists on-chain, but dolaramp doesn't support it. If someone offers you "USDC TRC20", ask for Solana, Base or Arbitrum instead.

What is never recoverable?

USDC sent to a contract with no withdraw function, to a Solana token account or program address, or to a 0x on a network where nobody can sign for it. No blockchain reverses a confirmed transfer, and no recovery service can either.

related: sent USDT on the wrong network · move USDC between Solana, Base and Arbitrum · fake USDT, how to check any address

sources: networks where Circle issues native USDC · official USDC contract addresses · Circle on discontinuing USDC on TRON (21 feb 2024) · CCTP documentation · EIP-55 · Solana token accounts · bridge fees and address validation checked against dolaramp's app and API code and the docs.