Skip to content
Moving money

How to move USDC from an exchange to a self-custodial app

To move USDC from an exchange to a self-custodial wallet, copy the wallet's deposit address for a network, start a USDC withdrawal on the exchange, select the same network, paste the address, check the network and address on the confirmation screen, then confirm. Many people send a small test amount first.

On this page
  1. What do you need before you start?
  2. Which network should you choose for your USDC?
  3. How do you move USDC from an exchange to a self-custodial wallet?
  4. What can go wrong, and what do you check?
  5. What can you do once the USDC arrives?
  6. How does this look in Neovestor?
  7. Frequently asked questions
  8. Sources

Moving USDC from an exchange to a self-custodial wallet is a withdrawal in which three details have to match: the token, the network and the address. This guide covers what you need first, how to pick the network, the seven steps of the withdrawal, and the mistakes worth checking for before you confirm. It uses one exchange's published help pages as the worked example. Screen names and supported networks differ between exchanges, but the logic is the same.

What do you need before you start?

Before you start you need USDC in your exchange account, a self-custodial wallet that can receive USDC, and that wallet's deposit address on a network the exchange also supports. A self-custodial wallet is one where you alone control the keys that move the funds. ethereum.org draws the contrast this way: wallet providers don't have custody of your funds, while with an exchange account you are trusting that exchange with custody. The other side of that trade is responsibility, because ethereum.org also says users are responsible for keeping their own keys secure. For the longer version of this distinction, see custodial vs non-custodial wallets.

USDCCircle is issued by Circle. Circle's contract-address page lists the blockchains where its USDC is deployed, and Solana and Base are among them. Exchanges support different subsets of those networks. Kraken lists USDC on nine: Arbitrum One, Avalanche C-Chain, Base, Ethereum, Ink, Optimism, Polygon, Solana and Sui. Other exchanges differ, so the first check is whether your exchange and your wallet have a network in common.

Circle's developer docs call USDC a dollar-backed digital currency issued by Circle, and say it is redeemable 1:1 for US dollars. Circle's USDC page adds that Circle Mint, the route for direct redemption, is not available to individuals. Those are Circle's statements about its own token. Withdrawing USDC from an exchange does not change the token or its issuer. It changes who controls the keys that can move it.

Which network should you choose for your USDC?

Choose the network that your receiving wallet uses, because the network you select for a withdrawal has to match the network of the destination address. Kraken's stablecoin page says exactly this, and its withdrawal guide repeats it. A network, here, is the blockchain on which the USDC moves, and the same token can exist on several of them.

Kraken's app guide adds a detail that explains why this check matters: different cryptocurrencies can share the same address format. The format of an address alone therefore does not tell you which network it belongs to, and the receiving wallet's own deposit screen is the reliable place to read it from.

NetworkWhat to knowWhat to match
SolanaOne of the blockchains where Circle's USDC is deployed.Use the Solana address your wallet shows for USDC.
BaseAlso on Circle's list. Base's documentation describes it as built by Coinbase, and ethereum.org lists it as an Optimistic Rollup built with the OP Stack.Use the address your wallet shows for Base.
Another network on the exchange's listExchanges list different sets. Kraken's list also includes Ethereum, Polygon, Optimism and others.Only choose it if your wallet supports it and shows an address for it.

How do you move USDC from an exchange to a self-custodial wallet?

You move USDC by copying a deposit address from the receiving wallet and withdrawing USDC to it on the exchange, with the same network selected on both sides. The steps below follow Kraken's withdrawal guides as an example. Steps vary by exchange, but each asks for the same three things: the token, the network and the address.

  1. Open the deposit screen in your wallet. In the receiving wallet, open its deposit or receive screen and choose USDC and the network you want to use, such as Solana or Base.
  2. Copy the deposit address. Copy the address the wallet shows for that network, so you can paste it later instead of typing it by hand. Kraken's app guide says to copy the exact address from the receiving wallet and paste it.
  3. Start a USDC withdrawal on the exchange. On the exchange, open the withdrawal screen and choose USDC as the asset.
  4. Select the same network. Choose the network that matches the address you copied. The network you select must match the network of the destination address.
  5. Paste the address and enter the amount. Paste the copied address and enter the amount. Many people send a small test amount first, to confirm that the route works before sending the rest.
  6. Check the confirmation screen. Compare the network and the recipient address on the confirmation screen with your wallet, then confirm. Kraken's flow includes this check as its own step.
  7. Wait for the deposit to arrive. Watch the receiving wallet's balance or history until the USDC appears. Processing time depends on the exchange and the network.

The table below sums up what each field on a withdrawal form should hold.

Field on the withdrawal screenWhat to enterWhere the value comes from
AssetUSDCYour choice. Check that the token name matches.
NetworkThe network your receiving wallet usesThe receiving wallet's deposit screen.
AddressThe exact address for that networkCopied from the receiving wallet and pasted.
AmountThe amount to sendYour choice.

Withdrawal limits, review steps and holds are set by each exchange, so its own help pages are the place to look if a withdrawal stays pending after you have confirmed.

What can go wrong, and what do you check?

Two mistakes cost people money in this process, a mismatched network and a wrong address, and both are visible on the confirmation screen if you look. The checklist is short: the token is USDC, the network is the one your wallet uses, and the address is the one your wallet showed.

A wrong address does not have to come from a typo. Etherscan describes address poisoning as transactions "created purely to insert lookalike addresses into the wallet's transaction history". The attacker generates addresses that resemble ones you have used, sends small transfers so the lookalike appears in your history, and hopes you copy the wrong one next time.

A few other checks are worth the extra minute:

  • Token name. Confirm that the asset you withdraw is USDC, not another stablecoin with a similar name.
  • Amount. Confirm the amount after any fee the exchange shows. This guide prints no fee amounts, because exchanges set and change their own.
  • First transfer. A small test amount is a common practice for a new route. It adds one extra transfer, and it shows whether the network and address work before you commit the full amount.
  • Pending status. If the withdrawal stays pending, read the exchange's status and help pages. Only the exchange can say why it is on hold.

What can you do once the USDC arrives?

Once the USDC arrives, it sits in your wallet as a balance that only you can approve moving. You can hold it, send it to another address on the same network, or move it between Solana and Base. That last step uses a separate mechanism and is USDC only; the moving money guides cover it.

Apps that combine holding, sending, spending and earning on stablecoins are sometimes called stablecoin neobanks. If you want to see how that category is defined, read what a stablecoin neobank is. Whatever the app, the questions stay the same: who holds the keys, which network is the balance on, and who issues the token.

How does this look in Neovestor?

In Neovestor, you sign in, open Deposit, and pick the network (Solana or Base) and the token (USDC or USDT). On sign-in the app creates a Solana wallet and an Ethereum-compatible wallet that is used on Base. Neovestor can't access your keys, and only you can approve transactions.

The Receive screen shows the network, a QR code and a warning to send only USDC or USDT on the chosen network. A Solana USDC deposit is detected from the chain and shown with a notification. The screen says "Usually arrives in under a minute" as a target, not a promise, and it does not cover the time the exchange takes to process the withdrawal.

When you later send from Neovestor, the app runs recipient checks before you confirm:

  • a new-address warning;
  • a lookalike warning when an address matches a past counterparty's first four and last four characters, where you must type the last four characters to continue;
  • blocking of a wrong-network address;
  • sanctions screening.

Face ID or passcode is required to confirm a money action. Network fees on Solana trades, earn deposits and sends are covered within fair-use limits. Neovestor is an interface and does not issue either token; each asset screen names its issuer.

Frequently asked questions

Can I withdraw USDC to any wallet address?

Only to an address on the network you select. Kraken's withdrawal guide says to choose the same network that the receiving wallet uses, and warns that withdrawing on an incompatible network can result in permanent loss of funds.

Which networks carry USDC?

Circle lists USDC on many blockchains, including Solana and Base. Exchanges support different subsets: Kraken, as one example, lists USDC on nine networks. Check the list on your own exchange and make sure your wallet supports the network you pick.

Should I type the address by hand?

Kraken's app guide says to copy the exact address from the receiving wallet and paste it rather than typing it by hand. Etherscan's advice is to always verify the destination address before sending funds.

What if I chose the wrong network?

Kraken warns that withdrawing on an incompatible network can result in permanent loss of funds. If it has happened, the exchange's support team is the place to start; this article cannot say whether a particular transfer is recoverable.

How long does a withdrawal take?

It depends on the exchange's own processing and review steps and on the network, so there is no single answer. In Neovestor, a Solana USDC deposit is detected from the chain and the Receive screen says Usually arrives in under a minute as a target, not a promise.

Does Neovestor accept USDT as well as USDC?

In Neovestor, deposits of USDC and USDT are supported on Solana or Base. Moving money between Solana and Base is USDC only, so USDT is converted to USDC first.

Sources

  1. USDC contract addresses — Circle developer docs. Accessed Oct 10, 2026.
  2. USDC — Circle. Accessed Oct 10, 2026.
  3. How to withdraw cryptocurrencies from your Kraken account — Kraken Support. Accessed Oct 10, 2026.
  4. Stablecoins supported on Kraken — Kraken Support. Accessed Oct 10, 2026.
  5. Depositing and withdrawing funds from the Kraken app — Kraken Support. Accessed Oct 10, 2026.
  6. Address poisoning attacks are rising on Ethereum — Etherscan. Accessed Oct 10, 2026.
  7. Wallets — ethereum.org. Accessed Oct 10, 2026.
  8. Base documentation — Base. Accessed Oct 10, 2026.
  9. Layer 2 — ethereum.org. Accessed Oct 10, 2026.

Kelvien KurniawanFounder, Neovestor

Kelvien is the founder of Neovestor. These guides explain how tokenized stocks, stablecoin yield and self-custody work, with sources linked and risks named.

About Neovestor

Get an invite when Neovestor opens

Neovestor is coming to iPhone. Invites go out in waves from the waitlist.

Information only, not investment advice. Assets are issued by third parties under their own terms. Availability depends on your country. Capital at risk.