What a USDC wallet is
USDC is a dollar stablecoin issued by Circle. Like USDT, it is not one coin on one chain: Circle issues native USDC separately on many blockchains, and each copy lives on its own network. A USDC wallet is simply a wallet that holds the keys to an address on one of those networks and recognises the USDC token there. The wallet never holds the dollars themselves; it holds the keys that let you move the tokens. Circle’s terms also say it can block the transfer of USDC to and from an address, so USDC in your own wallet is protected from a platform failing, but not from the issuer.
Which networks carry USDC
Circle’s developer documentation lists native USDC on dozens of mainnet blockchains, including Ethereum and Solana, but not TRON. USDC that you see on a chain Circle does not list is not native USDC. For a swap the network matters more than the token name, because a USDC deposit on one network cannot be credited on another.
- Ethereum: USDC is an ERC-20 token; addresses start with 0x.
- Solana: USDC is an SPL token; you receive it at your Solana wallet address.
- VeriSwap accepts and pays native Circle USDC on Ethereum and Solana only.
- There is no native USDC on TRON; if you need TRON, the stablecoin there is USDT.
USDC token address vs your wallet address
People searching for the USDC token address usually mean one of two different things. Your wallet address is yours: it is where USDC is sent to you, and it is the only address you ever paste into a payout field. The token address is the address of the USDC contract itself, which your wallet uses to recognise real USDC and tell it apart from look-alike tokens with the same name. Never send USDC or anything else to the token address. Circle publishes the official addresses on its developer site; the two below were copied from that page.
- USDC contract on Ethereum: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
- USDC mint on Solana: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- If a token in your wallet is called USDC but has a different contract or mint, treat it as a different token.
USDC ERC-20 on Ethereum
On Ethereum, USDC follows the ERC-20 standard, which means it is a smart contract that keeps a balance for each 0x address. Your 0x address is 42 characters: 0x followed by 40 hexadecimal characters. The same address also exists on every EVM-compatible chain, so the network you choose matters as much as the address. If someone sends you USDC on Arbitrum or Base when you expected Ethereum, it arrives at the same 0x address on that other chain, where your wallet shows it only after you switch networks. Sending USDC on Ethereum costs gas in ETH, and the cost rises when the network is busy. A token transfer runs contract code, so it needs more gas than the 21,000 units of a plain ETH transfer.
USDC on Solana: wallet address and token account
On Solana, your wallet address is a base58 public key of 32 to 44 characters, and the same address receives SOL and every token. Behind the scenes, each token is held in a separate token account linked to your wallet and to the token’s mint; the usual one, the associated token account, has an address derived from those two. Creating a token account requires a small refundable deposit, about 0.002 SOL for a standard token account according to Solana’s documentation, and whoever creates the account pays it, so a sender can create it for you. You get the deposit back if you later close the empty account. For a swap payout, give your wallet address, never the token account address.
Native USDC vs bridged USDC (USDC.e)
Native USDC is issued by Circle on a chain it supports. Bridged USDC is created by a third party: USDC is locked in a contract on one chain and a stand-in token is issued on another. Circle describes bridged USDC as not compatible with its Cross-Chain Transfer Protocol, and its developer docs give the label USDC.e to one such bridged token. The names look alike, but the tokens are not interchangeable, and a service that accepts native USDC may not credit a bridged version. Before you send, open the token in your wallet and compare its contract or mint with Circle’s official list.
- Native USDC: issued by Circle, listed on developers.circle.com.
- Bridged USDC: issued by a third party, and sometimes labelled USDC.e.
- VeriSwap does not accept bridged USDC, including USDC.e.
Moving USDC between chains with CCTP
If your USDC is native but on the wrong chain, Circle’s Cross-Chain Transfer Protocol (CCTP) can move it. CCTP burns USDC on the source chain and mints the same amount of native USDC on the destination chain, so you end up with real USDC, not a bridged copy. Ethereum and Solana are both on Circle’s list of supported CCTP chains, and Circle offers a faster and a standard transfer option. Many wallets and apps use CCTP behind the scenes. A swap service is an alternative when you also want to change the token, for example from USDC on Ethereum to USDT on TRON.
Choosing a USDC wallet
Pick a wallet that supports the network your USDC is on and the devices you use. All of the wallets below are self-custody, and the descriptions come from each wallet’s own site.
- MetaMask: a wallet from Consensys for Ethereum and other EVM networks that also supports Solana, on mobile and as a browser extension; choose it if you use Ethereum apps.
- Phantom: supports Solana, Ethereum, Base, Polygon, BNB Chain and Bitcoin, and connects to Ledger; choose it if you mainly use Solana but also want Ethereum.
- Solflare: a Solana-only wallet as a browser extension and mobile app; choose it if you only need Solana.
- Trust Wallet: a mobile app and extension that supports 100 or more blockchains, including Ethereum and Solana.
- Trezor: a hardware wallet that lists USDC on Ethereum, Solana and other networks, with Solana on some models only; choose it if you hold larger amounts.
The fee coin: ETH or SOL
USDC is never used to pay its own network fee. To send USDC on Ethereum you need ETH for gas, and the fee is charged even if the transaction fails. To send USDC on Solana you need SOL: the base fee is 5,000 lamports (0.000005 SOL) per signature, plus an optional priority fee. Receiving costs you nothing on either network. Keep a small balance of the fee coin in the wallet before you plan to move USDC onward, or you will be able to see your USDC but not send it.
Receiving USDC from a swap
In the swap form, choose USDC and the payout network, Ethereum or Solana, then paste the matching address from your wallet’s receive screen: a 0x address for Ethereum, or your Solana wallet address for Solana. Check the first and last characters before you create the order. On VeriSwap the receive amount already includes the 0.5% service fee and the quote stays fixed for 15 minutes. We pay the network fee for the payout. The operator verifies each deposit by hand and then sends the USDC, and every step is recorded in the activity log on your private order page.
- BTC → USDC, ETH → USDC and SOL → USDC pay native USDC.
- USDT → USDC changes issuer and, if you like, network in one order.
- Save the order reference; it is the only way back to your order page.
Sending USDC to a swap
Choose USDC and the network it is on, enter an amount of at least 50 USD in value and the address where you want to receive the other coin, then create the order. Send the exact amount to the deposit address on your order, on the same network, within the 15-minute quote window. Your wallet pays the fee for this deposit in ETH or SOL. Send native USDC only; bridged USDC from another chain will not be credited automatically. No account is needed and no KYC is required by us, although an exchange you withdraw from may apply its own rules.
- USDC → BTC pays Bitcoin; USDC → SOL pays SOL; USDC → USDT can pay out on Ethereum, TRON or Solana.
- When withdrawing from an exchange, select Ethereum or Solana, the same network as the order.
How to check a USDC payout arrived
Your wallet usually lists the incoming USDC as soon as the transaction is confirmed. If it does not, copy the payout transaction ID from your order page and look it up on Etherscan for Ethereum or Solscan for Solana. The explorer shows the receiving address, the token and the amount. Confirm that the token is Circle’s USDC by comparing its contract or mint with the official address above.
- If the explorer shows the transfer but the wallet does not, make sure the wallet is on the right network and that USDC is not hidden.
- On Solana, search for the transaction ID or your wallet address; the USDC itself sits in a token account linked to that wallet.
- Payouts to an exchange appear only after the exchange credits them.
Mistakes to avoid
USDC problems are nearly always network or token-version problems.
- Sending USDC to the USDC contract or mint address instead of a wallet address.
- Sending bridged USDC.e to a deposit that expects native USDC.
- Choosing TRON for a USDC payout: there is no native USDC on TRON.
- Giving a Solana token account address instead of the wallet address.
- Trying to send USDC from a wallet with no ETH or SOL for the fee.
- Typing your recovery phrase into anything other than the wallet itself.
Source notes
Network and regulatory facts are based on the documents below. VeriSwap flow details describe the current exchange process.
- Circle developers: USDC contract addresses (checked 23 October 2026)
- Circle: bridged USDC standard
- Circle developers: Cross-Chain Transfer Protocol
- Circle developers: CCTP supported blockchains and domains
- Circle: USDC terms
- Ethereum.org: ERC-20 token standard
- Ethereum.org: gas and fees
- Ethereum.org: Ethereum accounts
- Solana: tokens
- Solana: create a token account
- Solana: fees
- MetaMask support: I sent crypto to the wrong place
- MetaMask: introducing TRON on MetaMask (multichain networks)
- Phantom help: supported networks
- Solflare
- Trust Wallet: USDC wallet
- Trezor: USD Coin (USDC)