Course outline · 13 lessons
Bitcoin Wallets & Self-Custody

Your First Withdrawal: From an Exchange to Your Own Wallet

A hand holds a small dark-screen signing device beside a face-up phone with an unlit screen.

Your first withdrawal comes down to five steps: take a fresh address and confirm it on your wallet’s own screen, choose the Bitcoin network, read the minimum and the fee, send a small test and wait for it to confirm, and then send the rest the same way. A Bitcoin transaction can’t be reversed, so this is the step where care pays off most. It goes wrong in three well-known ways: the wrong option in the network menu, an address that was swapped or copied from the wrong place, and a fake helper who turns up while a transfer is slow. Each has a simple defence, and this lesson gives you all three.

The lesson on custodial and non-custodial wallets made the case for withdrawing, and the hardware wallet setup lesson got your wallet ready. This one takes you through the withdrawal itself, including what to do when it seems stuck.

Before You Start

  • Use a wallet you have already tested: recovery words on paper, and the wallet’s built-in backup check passed (Step 7 of the setup lesson).
  • Know the units. Exchanges usually show amounts in BTC, which has eight decimal places, while many wallets show satoshis (sats). One bitcoin is 100,000,000 sats, so 0.0005 BTC is 50,000 sats.
  • Allow time. Many exchanges make you add a new address to an address book and approve it with an email link or a code. Some also hold withdrawals to a newly added address, or after a security change such as a new password, for a day or more. Plan the first withdrawal for a day when waiting is fine.

What Happens Between “Withdraw” and “Received”

Every withdrawal passes through the same stages, and each screen on the exchange and in your wallet tells you which one you are at. Three terms first:

  • Broadcast: the moment the exchange sends its signed transaction (approved with the exchange’s own keys) out to the Bitcoin network.
  • Transaction ID (txid): the transaction’s unique fingerprint, a 64-character code. Paste it into a block explorer, a website such as mempool.space that shows what is on the blockchain, to follow the transaction.
  • Mempool: the waiting room each node (a computer running Bitcoin software that checks and passes on transactions and blocks) keeps for valid transactions that aren’t in a block yet. Miners pick from it, best-paying first.
StageWhat you seeWhat is going on
1. RequestedYour exchange balance drops; the status says “pending” or “processing”; there is no txid yetThe exchange is reviewing the request or waiting to send it with other customers’ withdrawals
2. BroadcastA txid appears; your wallet shows the amount as unconfirmedThe transaction waits in the mempool for a miner
3. First confirmationYour wallet shows 1 confirmationA miner has put it in a block: the coins sit under your keys
4. More confirmationsThe count rises by one with each new blockEach block on top makes a reversal harder still

Exchanges often send many customers’ withdrawals in one transaction, which is called batching. It saves block space and fees, and it is one reason stage 1 can take a while. The line to remember: until a txid exists, nothing has happened on the Bitcoin network, and any delay is the exchange’s to solve. From the txid on, everything is public and you can watch it yourself.

Four stages of a withdrawal from left to right. 1 Requested, at the exchange: your exchange balance drops and the status says pending, but there is no txid yet; any delay here is the exchange's to solve. Then the txid appears, which is where the Bitcoin network starts. 2 Broadcast: the transaction waits in the mempool and your wallet shows it as unconfirmed. 3 First confirmation: it is in a block and the coins sit under your keys. 4 More confirmations: one more with each new block, about 10 minutes apart on average. From the txid on, everything is public and you can watch it yourself.
The txid is the line to watch for. Before it, the withdrawal is still inside the exchange and nothing has happened on the Bitcoin network. After it, anyone can follow the transaction on a block explorer.

Step 1: Take a Fresh Address From Your Wallet

Open your wallet and choose Receive. Wallets offer a new address each time, which is normal and good for privacy; all of them belong to the same wallet and the same recovery words (see why your address keeps changing). Bitcoin addresses start with bc1q, bc1p, 3 or 1, and the lesson on address types and derivation paths explains the differences.

With a hardware wallet, show the address on the device’s own screen and compare it with the app. In Sparrow the button is called Display Address; other apps have their own version of it. Malware on your computer can change what the monitor shows, but it can’t change what the device displays, so the device’s screen is the one you trust. With a wallet app on your phone there is no separate device, so compare the address in the exchange’s form with the one the app shows, all of it, before you confirm.

Take every address fresh from the Receive screen, never from your transaction history, an old email or a note. The section on look-alike addresses below explains why.

One practical snag: some exchanges still can’t send to addresses that start with bc1p (Taproot, the newest type). If the form rejects one, use an account whose addresses start with bc1q (Native SegWit; Trezor Suite calls it SegWit). Sparrow, Trezor Suite and Ledger Wallet can all add one for the same device and recovery words.

Step 2: Choose the Bitcoin Network

After you pick BTC on the withdrawal page, many exchanges show a network menu. The same balance can leave the exchange in different forms, and only one of them puts bitcoin at a Bitcoin address.

Network optionWhat leaves the exchangeWhat you pasteRight for a hardware wallet?
Bitcoin (also “BTC” or “on-chain”)Real bitcoin, recorded on the Bitcoin blockchainAn address starting bc1, 3 or 1Yes
LightningA payment over the Lightning Network, Bitcoin’s fast payment layerA Lightning invoice, a code starting lnbcNo: it needs a Lightning wallet
BEP20, ERC20 or another chain’s “BTC”A token on a different blockchain, usually issued by a company that says it holds bitcoin to back itAn address of that chain, often starting 0xNo: it is a claim on its issuer, not bitcoin

Those tokens bring back the very problem you are leaving the exchange to escape. One large issuer has described its bitcoin token as “operated on a centralized and trust-based model”: you would hold a company’s promise again, on someone else’s blockchain.

The address is your check. An address starting 0x is never a Bitcoin address. If the form refuses your address, look at the menu first: it is most likely set to the wrong network, so switch it to Bitcoin. (A bc1p address refused on the Bitcoin network is the Taproot snag from Step 1.) On the Bitcoin network the form needs only the address and the amount, plus, in some countries, questions about who owns the wallet (covered at the end of Step 3).

Lightning suits a small spending balance in a Lightning wallet: paste an invoice from that wallet. Savings headed for a hardware wallet go over the Bitcoin network.

Step 3: Read the Minimum, the Fee and “You Will Receive”

Three numbers on the withdrawal form are worth reading before you confirm:

  • The minimum withdrawal: the smallest amount the exchange will send.
  • The withdrawal fee: often a fixed amount per withdrawal, whatever the size, and subject to change. Some exchanges take it out of the amount you enter; others add it on top.
  • “You will receive” (or “amount after fee”): the exact number that should arrive in your wallet. Note it down.

The network fee is separate. The exchange sends the transaction, so it chooses the fee rate, measured in sats per virtual byte (sat/vB, a unit of block space). As of November 2026 the network is quiet: 1 sat/vB is usually enough for the next block, so a simple payment of about 140 vB costs about 140 sats. In the busy second half of December 2023, typical rates mostly ran at 100 to 300 sat/vB, so the same payment cost 14,000 to 42,000 sats. The withdrawal fee is the exchange’s own price, and on a quiet day it can be far above the network’s.

A fixed fee weighs most on small withdrawals. With an illustrative fee of 10,000 sats (0.0001 BTC, about $7.60 at prices on 6 November 2026):

You withdrawThe 10,000-sat fee is
50,000 sats (0.0005 BTC)20% of it
200,000 sats (0.002 BTC)5%
1,000,000 sats (0.01 BTC)1%
5,000,000 sats (0.05 BTC)0.2%

The share is the fee divided by the amount. Withdraw in amounts large enough that the fee is a small share, and often enough that the exchange never holds more than you would be comfortable losing.

An illustrative fixed withdrawal fee of 10,000 sats (0.0001 BTC) shown as a share of four withdrawals. It is 20% of 50,000 sats, 5% of 200,000 sats, 1% of 1,000,000 sats and 0.2% of 5,000,000 sats. Withdraw amounts large enough that the fee is a small share, and often enough that the exchange never holds more than you would be comfortable losing.
A fixed fee weighs most on small withdrawals. The same 10,000 sats is a fifth of a 50,000-sat withdrawal and a sliver of a 5,000,000-sat one. The share is the fee divided by the amount.

If the Exchange Asks Whether the Wallet Is Yours

In the European Union, since 30 December 2024, exchanges must spot withdrawals to a self-hosted address (a wallet no company holds for you) and record whose it is; above €1,000 they must also check that the address is yours. Accepted ways include signing a message with the address’s key (Sign/Verify Message in Sparrow, approved on a hardware wallet connected by USB), showing the address in your wallet during a live or recorded check, or sending a small set amount from the address, which works only once the address holds coins. Elsewhere, follow what your exchange’s page asks. None of these checks needs your recovery words: they stay on paper.

Step 4: Send a Small Test, Then the Rest

Withdraw an amount just above the minimum to the address from Step 1, and watch it arrive. The test costs one extra withdrawal fee, which is cheap insurance.

When the “you will receive” amount shows in your wallet with its first confirmation, the test has proved three things: the network was right, the address is your wallet’s, and your wallet sees incoming coins.

For the main amount, either reuse the address the test just proved, which the exchange has already approved, or take a new one for better privacy, so that outsiders see two separate payments instead of one address receiving twice. A new address gets the full routine: taken from Receive, shown on the device and compared once more after you paste it, and the exchange may ask for another approval or apply another hold. Either way, if the exchange sends a confirmation email or app message that repeats the address, check it there too, ideally on a different device such as your phone.

Step 1: send a small test, just above the minimum, from the exchange to your wallet, and wait for its first confirmation. Then the test has proved three things: the network was right, the address is your wallet's, and your wallet sees incoming coins. Step 2: send the rest, either to the same address, which the exchange has already approved and the test has proved, though outsiders see one address receive twice; or to a new address, which gives better privacy because outsiders see two separate payments, but needs the full routine again and maybe another approval or hold. The test costs one extra withdrawal fee: cheap insurance before the real amount moves.
A small test proves the whole route before the real amount moves. Once it confirms, send the rest to the address the test proved, or to a new one checked the same way.

Swapped and Look-Alike Addresses: Check All of It

Two attacks target exactly this moment:

  • Clipboard swapping. Malware replaces a Bitcoin address you have copied with the attacker’s before you paste it. In June 2026 Microsoft described one such program that had been infecting Windows computers since February 2026; for several address types, its substitute matched only the original’s first two characters or its last one.
  • Address poisoning. An attacker sends you a tiny payment from a look-alike of an address you use, so that it sits in your history for you to copy later. Jameson Lopp counted nearly 48,000 such payments on the Bitcoin blockchain from July 2023 to early 2025. In one case he traced, the look-alike shared its first six and last six characters with the real address (bc1qr9…2wua0h), and the real address’s owner sent it 0.1 BTC, apparently by mistake.

The ends are cheap to fake. After its fixed start, a bc1 address uses 32 different symbols, so each character an attacker matches multiplies the work by 32: four characters take about a million tries, and the eight in Lopp’s example (two after bc1q, six at the end) about a trillion, which attackers’ computers can manage. Matching all 42 characters of a typical bc1q address is out of anyone’s reach, so the middle is where a fake shows itself.

A real case traced by Jameson Lopp. The real address bc1qr9xkxanfstzqpfd5ce0t3evwc45pnmsr2wua0h and the look-alike bc1qr9wuw4zkjflet80lr9cr5ec8620c4fg52wua0h, which received 0.1 BTC from it, shown in groups of four. Both start with the fixed bc1q, then match on the next two characters and on the last six; 29 of the 30 characters in the middle differ. Read four at a time, the second group already differs (r9xk against r9wu), so you already know not to send. Each character an attacker matches multiplies the work by 32: four characters take about a million tries, the eight matched in this pair about a trillion, and the whole address is out of anyone's reach. Compare every character, four at a time, start to finish, against the device's screen.
Look-alikes copy the ends; the middle gives them away. This real pair matches on eight characters after bc1q, about a trillion tries of work. Read four at a time, it already fails at the second group.

Three habits defeat both attacks:

  1. Take every address fresh from your wallet’s Receive screen. A poisoned address can only reach you through your history.
  2. Compare every character against the device’s screen, four at a time, start to finish.
  3. Leave unexpected tiny payments unspent. A few hundred sats from an address that resembles yours is bait. Mark that coin as frozen with your wallet’s coin control, the feature for choosing which coins a payment spends (our Sparrow coin control guide shows how), so it is never spent with your real coins.

The lesson on scams that empty self-custody wallets brings these together with the other attacks into one threat model.

Confirmations: What “Pending” Means

As soon as the exchange broadcasts, your wallet shows the payment as unconfirmed. It gets its first confirmation when a miner includes it in a block, and one more with every block after that.

Blocks arrive at random, one every 10 minutes on average. Across the 2,100 blocks up to 6 November 2026, the average gap was 9.8 minutes; about 1 gap in 3 was longer than 10 minutes, 1 in 20 longer than 30 minutes, and 1 in 500 longer than an hour. A block is never “due”: however long since the last one, the next is still about 10 minutes away on average. So even with a fee high enough for the next block, about 1 time in 20 the first confirmation takes more than 30 minutes, which simply means the network is between blocks.

Across the 2,100 blocks up to 6 November 2026, blocks came on average every 9.8 minutes. The wait for the next block was longer than 10 minutes about 1 time in 3 (36%), longer than 30 minutes about 1 in 20 (5.4%), longer than 40 minutes about 1 in 50 (2.3%) and longer than 60 minutes about 1 in 500 (0.2%). A block is never due: just after a block the next is about 10 minutes away on average, and after 20 minutes with no block it is still about 10 minutes away.
Long waits for a block are normal, and a block is never overdue. If your transaction pays enough for the next block, a long wait only means the network is between blocks.

With one confirmation, the coins are in your wallet; for large amounts, six is the long-standing convention before treating them as fully settled (the lesson on Bitcoin transactions explains why). Before the first confirmation the payment isn’t final: the sender can still replace it with a higher-fee version that pays someone else, and Bitcoin Core nodes have accepted such replacements by default since version 28.0 (October 2024). An exchange has no reason to do that, but it is why “unconfirmed” and “received” are different words. One privacy note: looking up your txid on a public explorer tells that website which transaction you care about (see network privacy).

When a Withdrawal Seems Stuck

Start by working out which stage you are at. To judge the fee, open the txid on an explorer and compare its fee rate with the explorer’s current estimate for the next block.

What you seeWhat it meansWhat to do
“Processing” for hours, no txidThe withdrawal is still at the exchange: a review, a batch or a hold on a new addressWait, then contact support through the exchange’s own app or website
A txid, unconfirmed, with a fee rate well below the next-block rateIt is queued behind better-paying transactionsWait, ask the exchange to raise the fee, or raise it yourself with CPFP (below)
Explorers can no longer find the txidEither the exchange replaced it with a higher-fee version, which has a new txid, or nodes dropped it and the coins never left the exchange’s addressLook in your wallet for the replacement; if there is none, ask the exchange to send it again or return it to your balance
The explorer shows it confirmed to your address, but your wallet shows nothingThe coins have arrived; the wallet isn’t showing themSee “When the wallet shows nothing” below

Why Waiting Usually Works

A low-fee transaction stays in the mempool until demand falls, and then it confirms. Bitcoin Core nodes, by default, drop an unconfirmed transaction after 14 days, or sooner if their mempool grows past 300 MB and it is among the lowest-paying. Either way the coins are safe: until a transaction is in a block, they stay where they were, at the exchange’s address, and the exchange can send them again.

Raising the Fee Yourself With CPFP

Only the sender can swap a transaction for a higher-fee version, which is called replace-by-fee (RBF), and here the sender is the exchange. Your tool as the receiver is child-pays-for-parent (CPFP): you spend the incoming coins, still unconfirmed, to another address of your own and attach a high fee. Miners judge the two transactions as a package, so to collect the child’s fee they must include the parent too. In Sparrow’s Transactions tab, right-click the transaction and choose Increase Effective Fee (CPFP); in Electrum, right-click it in the History tab and choose Child pays for parent. With a hardware wallet you approve the new transaction on the device.

Your fee covers the whole package, and exchange withdrawals are often large batches. An illustrative example: fees jump and the next block needs 20 sat/vB. Your withdrawal sits in a batch of about 1,800 vB paying 2 sat/vB (3,600 sats), and your child is about 110 vB. The package must pay 20 × 1,910 = 38,200 sats, so your child pays 34,600 sats. Had the exchange sent you a simple 140 vB payment at the same 2 sat/vB (280 sats), the child would have needed only 4,720. That fee comes out of the coins you received, so a small test payment can be too small to pull a big batch through. Check the parent’s size on the explorer first: for a large batch, waiting or asking the exchange is usually the better deal. Our guide to unsticking a transaction walks through both methods. Some explorers also sell an “accelerate” service through mining pools; the free options come first.

An illustrative example where the next block needs 20 sat/vB. Miners take the parent transaction and your child transaction together, so the pair must pay 20 sat/vB overall. Block space and fees are drawn to the same scale, so the fee the pair needs is as long as the pair. If your coins came in a big exchange batch of 1,800 vB, the pair with your 110 vB child is 1,910 vB and needs 38,200 sats; the parent paid only 3,600, so your child pays 34,600 sats, which covers most of the parent's block space. If they came in a simple 140 vB payment, the pair is 250 vB and needs 5,000 sats; the parent paid 280, so your child pays 4,720 sats. Check the parent's size first: for a big batch, waiting or asking the exchange is usually better.
With CPFP, your fee pays for the parent too. The same 110 vB child costs 34,600 sats behind a big batch and 4,720 behind a simple payment, and that fee comes out of the coins you received.

When the Wallet Shows Nothing

If the explorer shows the coins confirmed at your address, they are on the blockchain and under your keys; the wallet just isn’t showing them. Check that the wallet is connected and up to date; that you are in the wallet or account that produced the address (a wallet opened with a passphrase is a different wallet); and whether you generated more than 20 unused addresses in a row, after which many wallets stop looking. After a restore in another app, the address type or derivation path may differ (see the address types lesson).

A slow withdrawal also attracts fake helpers. Anyone who messages you first offering to “unlock” or “speed up” a transfer is a scammer, and every real fix in this section works without your recovery words.

After It Lands

  • Label the coins with where they came from and when; it helps you choose which coins to spend later.
  • Remember that the exchange knows this address and can see where those coins go next. The lesson on chain analysis explains what that means.
  • Repeat the same routine every time: a fresh address, the Bitcoin network, a check on the device’s screen. For a screen-by-screen walk-through, see our guide to moving bitcoin off an exchange.

Check Your Understanding

1. A payment of a few hundred sats appears in your wallet from an address whose first and last characters match one of yours. What is it, and which habit makes it harmless?

Answer

It is address poisoning: the attacker hopes you will later copy that look-alike from your history and send to it. Taking every address fresh from your wallet’s Receive screen, and comparing all of it against the device’s screen, leaves the planted address nothing to work with. Freeze the tiny coin so it is never spent with your real ones.

2. Your withdrawal has a txid, and 40 minutes later it still has no confirmation. What do you check first, and what are your options as the receiver?

Answer

Compare its fee rate with the current next-block rate on an explorer. If it pays at least that much, the network is simply between blocks: about 1 wait in 50 lasts 40 minutes or more, which across the network happens a few times a day, and the confirmation will come. If it pays well below, you can wait for demand to fall, ask the exchange to raise the fee with RBF, or use CPFP yourself, after checking that the batch isn’t so large that CPFP would eat a big share of the coins you received.

3. An exchange charges a fixed 10,000-sat withdrawal fee. What share does it take from a 50,000-sat withdrawal and from a 2,000,000-sat one, and what does that mean for how you withdraw?

Answer

20% of the 50,000 sats and 0.5% of the 2,000,000 sats. Withdraw in amounts large enough that the fixed fee is a small share, but often enough that the exchange never holds more than you would be comfortable losing.