Limited time: $9 launch price · Get the full ebook
Self-Custody

Bitcoin Wallet Migration Guide: How to Move Bitcoin Between Wallets Safely

Upgrading from a phone wallet to a hardware wallet? Changing brands? Setting up an inheritance plan? The complete plain-English process for moving Bitcoin between wallets safely — including the test send most beginners skip.

By The BitcoinHomeBase Team · Updated 2026-05-12 · 12 min read

Sooner or later, every Bitcoin holder reaches the day where they want to change wallets. Maybe you started with BlueWallet on your phone and now you have enough Bitcoin to deserve a hardware wallet. Maybe your hardware wallet manufacturer had a security incident and you want to migrate to a different brand. Maybe you are upgrading from a single-signature setup to multisig. Maybe you are setting up an inheritance plan and need to consolidate three legacy wallets into a clean one your spouse can actually use.

This article walks through how to move Bitcoin between wallets safely. The actual mechanical steps are not hard. The mistakes people make are predictable. The total time investment is about an hour if you do it carefully, including a tea break while transactions confirm.

The two ways people migrate, and the right way to think about it

There are two fundamentally different operations you might call “migrating” a wallet, and they have very different security implications. Get this part right first.

Option 1: Migrate by importing the seed phrase

If both your old and new wallet support the same seed standard (which is almost always BIP-39), you can just re-enter your existing 12 or 24 words into the new wallet. The new wallet will derive the same private keys, generate the same addresses, and show you the same balance. No on-chain transaction. No fee. The coins do not actually move — only the software you use to view them changes.

This is fast, free, and useful when you are upgrading between similar wallet types — for example, moving from a software wallet to a hardware wallet that supports the same derivation path, or installing a desktop companion to a mobile wallet.

The catch: both wallets now know your seed. If the old wallet was compromised in any way, the new wallet inherits the compromise. Importing-by-seed is migration; it is not a security upgrade.

Option 2: Migrate by sending the Bitcoin on-chain

You generate a fresh seed phrase in the new wallet, write it down properly, generate a receive address in the new wallet, and send your Bitcoin from the old wallet to that address. This costs a network fee and creates an on-chain transaction. The new wallet has a brand new key that the old wallet has never seen.

This is the right move when you suspect the old seed might be compromised, when you are moving from a hot wallet to a cold wallet, or when you simply want a clean slate. It is slower and costs a fee, but the security properties are vastly different.

Rule of thumb: If you are moving for security reasons — suspected compromise, leaving a wallet that had bad practices, upgrading to cold storage — always migrate by sending on-chain to a fresh seed. Never import. If you are just changing software for convenience and trust your existing seed, importing is fine.

The pre-migration checklist

Before you touch anything, do these five things. They take 10 minutes total and save 100% of the bad migration stories.

  1. Verify your old wallet’s seed phrase actually works. The single most common migration mistake is discovering at exactly the wrong moment that you wrote down the seed wrong. Test it now by restoring the old seed to a brand-new throwaway wallet (different app, different device) and checking that the same balance shows up. If the addresses match, your seed is good.
  2. Make a list of every address that has ever received Bitcoin in the old wallet. Most modern wallets do this automatically — export your transaction history as a CSV. You will want this for taxes and for sanity-checking after the move.
  3. Note your current balance and the current Bitcoin price in dollars. Screenshot it. You will compare it to the post-migration balance to confirm nothing went missing.
  4. Pick a low-fee window. Check the mempool. If fees are above 30 sats/vbyte, wait 12 hours and check again. Migrations are not urgent — do them cheaply.
  5. Make sure the new wallet’s seed is already backed up before you send anything to it. This sounds obvious. People skip it constantly.

Step-by-step: migrating to a fresh wallet (the security-upgrade case)

This is the version most readers should follow. You are leaving an old wallet and creating a clean new one. The order matters.

Step 1: Set up the new wallet completely

Initialize the new wallet, generate a brand-new seed phrase (do not reuse the old one), and back it up on the proper medium (steel plate if it is meaningful money, paper-and-laminate at minimum). For hardware wallets, complete the device’s initialization flow, set a PIN, and verify the seed by typing it back in to the device’s built-in check.

If this is a hardware wallet purchase, see our hardware wallet setup guide for the unboxing-to-first-receive walkthrough.

Step 2: Generate a receive address from the new wallet

On the new wallet, navigate to the receive screen and copy a fresh address. Modern wallets show a QR code; if you can scan it directly between two devices, do so — it eliminates the chance of typing or clipboard errors.

Do not skip this verification step: on a hardware wallet, the receive address you see on your computer screen could be tampered with by malware. The hardware wallet’s built-in screen will display the same address. They should match character-for-character. If they do not, stop — your computer is compromised.

Step 3: Do a small test send first

Send a small amount from the old wallet to the new address — about 0.0005 BTC or roughly $50, enough that the fee is a tolerable cost of confirmation. Submit the transaction and wait for at least one confirmation on the blockchain.

Open a block explorer (or, ideally, your own node), paste the receive address, and confirm the test amount actually landed. The new wallet should also show the incoming balance.

If the test fails — the address turns out to be wrong, the funds did not arrive, anything looks off — stop here. The cost of the test is small. The cost of sending your whole stack to a wrong or compromised address is your whole stack.

Step 4: Send the rest in one transaction

Once the test confirms, send the remainder of the old wallet’s balance to the same new address (or, if you prefer rotating addresses, a fresh one from the same new wallet). Use coin control if available — consolidate all the old UTXOs into a single clean output, which gives you one labeled envelope to work with going forward.

Some wallets have a “sweep” option that automatically empties an address. Use it if available; manually constructing the transaction if not. Either way, this is a single on-chain transaction with one output.

Step 5: Confirm the new balance matches and the old wallet is empty

After the second transaction confirms, you should see:

Match this against your pre-migration screenshot. Numbers should reconcile within a few thousand sats. If something is off by more than the obvious fees, investigate before you go further.

Step 6: Wipe the old wallet

Once you are 100% sure the new wallet is working and you have multiple confirmations, decommission the old one. For software wallets, uninstall the app. For hardware wallets, factory-reset the device. The old seed phrase becomes paper trash — shred it, do not just throw it away. If anyone ever finds those words, they have access to an empty wallet, but you should not leave loose ends.

One exception: if the old wallet was the one tied to your inheritance plan or a co-signer arrangement, do not wipe anything until you have updated the inheritance documents to point to the new wallet. See our Bitcoin inheritance planning guide for the full checklist.

The seed-import shortcut (the convenience case)

If you are not migrating for security — just moving from one software wallet to another, or pairing a desktop wallet with your existing mobile wallet — the shortcut is fast.

  1. Open the new wallet, choose “Restore from seed” or “Import existing wallet.”
  2. Enter the 12 or 24 words from your existing backup.
  3. Pick the right derivation path. This is the part that trips beginners up — most modern wallets default to BIP-84 (native SegWit, addresses starting with bc1). If your old wallet used a different default (older Trezor wallets defaulted to BIP-44, for example), the addresses will not match and you will think your funds are missing. They are not — you just need to manually pick the derivation path. Sparrow and Specter both expose this clearly.
  4. Once the addresses match what you expect, you are done.

The old wallet still works — both wallets are now valid views of the same keys. Use whichever interface you prefer.

Common mistakes and how to avoid them

What about migrating from an exchange?

If your “old wallet” is actually a Coinbase or Kraken account, the process is similar but easier in one way and harder in another.

Easier: no seed phrase to worry about on the old side. The exchange just lets you withdraw to an address.

Harder: the exchange may flag a large withdrawal for compliance review and hold it for hours or days. They may also require you to confirm the withdrawal via email or 2FA. Test with a small amount first; this lets you make sure your withdrawal limits, address whitelist (if any), and KYC level can handle the full balance. Then send the rest.

This is also the moment to actually move to self-custody if you have been putting it off. See how to transfer Bitcoin from an exchange to your wallet.

The bottom line

Wallet migrations are not glamorous but they are one of the rituals every long-term Bitcoin holder performs eventually. The successful version of this process has three traits: a clear reason for moving, a low-fee window, and a test transaction before the real one. The unsuccessful version has urgency, a missed verification step, or a panicked late-night transfer.

Pick a quiet evening. Make sure both seeds are written down properly. Send the test, verify it landed, sweep the rest. Update your inheritance documents. Wipe and shred the old. The whole thing takes about an hour and lets you sleep noticeably better afterward.