Glossary

Wallet Recovery Workflow

Learn the step-by-step process for recovering a Bitcoin wallet from a seed phrase or backup file, including derivation paths, gap limits, and common pitfalls.

Key Takeaways

  • A wallet recovery workflow is the step-by-step process of restoring access to a Bitcoin wallet using a backup: typically a seed phrase, optional passphrase, and the correct derivation path.
  • Selecting the wrong derivation path (BIP 44, 49, 84, or 86) is the most common reason a restored wallet shows a zero balance, even though the seed phrase is correct. Matching the path to the original wallet's address type is critical.
  • Seed formats are not interchangeable: BIP 39 seeds cannot be imported into Electrum wallets (and vice versa), and LND's aezeed format is incompatible with both. Identifying the format before starting recovery prevents wasted effort.

What Is a Wallet Recovery Workflow?

A wallet recovery workflow is the structured process of regenerating a Bitcoin wallet's keys and addresses from a backup, then scanning the blockchain to locate any existing funds. The backup is usually a 12- or 24-word seed phrase created when the wallet was first set up, but it can also be an output descriptor, a PSBT file, or a wallet-specific backup format.

Recovery is necessary whenever you lose access to your wallet software, replace a device, or need to migrate to a different application. Because self-custodial wallets place the user in full control, understanding the recovery workflow is essential: there is no customer support team to reset your password.

How It Works

A complete wallet recovery workflow follows six steps. Skipping any step can result in a wallet that appears empty, even when funds exist on-chain.

Step 1: Gather Your Backup Materials

Before opening any software, collect everything associated with the original wallet:

  • The seed phrase (12 or 24 words from the BIP 39 wordlist, or the wallet's own format)
  • The passphrase (sometimes called the "25th word"), if one was set during wallet creation
  • Any notes about the wallet software, version, or address type used (legacy, nested SegWit, native SegWit, Taproot)
  • A known receiving address that previously held funds, which you can use for verification later

If you used a hardware wallet, confirm whether it stored the seed in standard BIP 39 format or a proprietary format. This determines which recovery software will work.

Step 2: Choose Compatible Recovery Software

The recovery tool must support the same seed format and derivation scheme as the original wallet. Common choices include:

  • Sparrow Wallet or Electrum Desktop for standard BIP 39 seeds
  • Electrum for Electrum-format seeds (which use a different versioning scheme)
  • Bitcoin Core with descriptor wallets for advanced recovery scenarios
  • The original wallet application, if it is still available and maintained

For the highest security, run recovery software on an air-gapped device. Entering a seed phrase into a network-connected machine exposes it to potential malware.

Step 3: Enter the Seed Phrase

Input the seed words in the exact order they were recorded. If a passphrase was set, enter it as well. The wallet software will use these inputs to regenerate the master private key via the BIP 39 key-stretching process (PBKDF2 with 2,048 rounds of HMAC-SHA512).

A critical detail: there is no checksum or validation on the passphrase. Any passphrase produces a valid master key. Entering the wrong passphrase will not show an error: it will silently generate a completely different wallet with zero balance. This is by design (it enables plausible deniability via duress wallets), but it makes recovery harder when the passphrase is forgotten or misremembered.

Step 4: Select the Correct Derivation Paths

The derivation path tells the wallet which branch of the HD wallet tree to scan. Each path produces a different set of addresses from the same seed. The four standard paths for Bitcoin are:

BIP StandardPathAddress TypePrefix
BIP 44m/44'/0'/0'Legacy P2PKH1...
BIP 49m/49'/0'/0'Nested SegWit (P2SH-P2WPKH)3...
BIP 84m/84'/0'/0'Native SegWit (P2WPKH)bc1q...
BIP 86m/86'/0'/0'Taproot (P2TR)bc1p...

If you know the address prefix of your original wallet (for example, addresses starting with bc1q), select the matching derivation path (BIP 84 in that case). If you are unsure, scan all four paths. Most modern recovery tools such as Sparrow can scan multiple paths simultaneously.

Step 5: Scan for Balances

Once the derivation path is set, the wallet generates addresses sequentially and checks each one against the blockchain. The wallet stops scanning after encountering a consecutive run of unused addresses equal to the gap limit (default: 20 addresses per BIP 44).

Both the external chain (index 0, used for receiving) and the internal chain (index 1, used for change outputs) are scanned. If funds were sent to addresses beyond the default gap, you need to increase the gap limit in your recovery tool before scanning.

# Sparrow Wallet: increase gap limit
# Settings > Advanced > Gap Limit
# Default: 20 (increase to 100+ if addresses were skipped)

# Electrum: set gap limit via console
wallet.change_gap_limit(100)

# Bitcoin Core: set via descriptor import
importdescriptors '[{"desc": "wpkh(xpub.../84h/0h/0h/0/*)#checksum",
  "range": [0, 1000], "timestamp": "now"}]'

Step 6: Verify Recovered Addresses

After the scan completes, compare the recovered addresses and balance against your records. If you saved a known receiving address during wallet setup, verify it appears in the recovered address list. If the addresses do not match, one of three things is wrong:

  1. The derivation path does not match the original wallet
  2. The passphrase is missing or incorrect
  3. The seed phrase itself is wrong (check word order carefully)

Only after verification should you consider moving funds. If you are recovering onto a new device, send a small test transaction first to confirm the wallet can both receive and spend.

Seed Format Compatibility

Not all seed phrases are created equal. Different wallet software uses different seed formats, and they are generally not cross-compatible:

FormatUsed ByWordsKey Difference
BIP 39Most hardware and mobile wallets12 or 24No version info embedded; derivation path must be known separately
ElectrumElectrum Desktop12Prefix-based versioning encodes the derivation scheme into the seed itself
aezeedLND24Includes wallet birthday timestamp and CRC for error detection
SLIP 39Trezor (optional)20 or 33 per shareUses Shamir's Secret Sharing to split the seed across multiple shares

Attempting to restore an Electrum seed in a BIP 39 wallet (or vice versa) will produce a valid but incorrect wallet. Identifying the format before starting recovery saves significant troubleshooting time.

Common Pitfalls

Wrong Derivation Path

This is the most frequent cause of a "missing funds" panic during recovery. The seed phrase is correct, the passphrase is correct, but the wallet software defaults to a different derivation standard than the one used originally. For example, restoring a wallet that used BIP 84 (native SegWit, bc1q...) into software that defaults to BIP 44 (legacy, 1...) will show an empty wallet.

The fix: if you have any old address from the wallet, its prefix tells you the derivation path. Look for the address in a block explorer to confirm it received funds, then select the matching BIP standard in your recovery tool.

Exceeded Gap Limit

The gap limit defines how many consecutive unused addresses the wallet scans before stopping. The default is 20. If you generated addresses beyond that gap (common with merchant wallets, exchanges, or automated systems that pre-generate many addresses), the scanner will stop before reaching the addresses that hold funds.

The fix: increase the gap limit in your recovery software. Sparrow Wallet exposes this in Settings > Advanced. Electrum allows it via the console. For Bitcoin Core, specify a larger range in the descriptor import command.

Missing or Incorrect Passphrase

Because the BIP 39 passphrase has no checksum, entering the wrong passphrase silently derives a different master key. The resulting wallet is cryptographically valid but contains none of your original addresses. Common mistakes include wrong capitalization, trailing spaces, and confusing similar characters.

If you suspect a passphrase issue, try variations systematically. Tools like btcrecover can automate passphrase-guessing for simple passphrases. For strong, complex passphrases, recovery without the exact string is computationally infeasible.

Incompatible Seed Format

Importing a seed into software that uses a different format produces a valid but wrong wallet. Electrum seeds use a prefix-based version scheme that encodes derivation information directly into the mnemonic. BIP 39 seeds carry no version data. LND's aezeed format includes a wallet birthday timestamp that standard BIP 39 wallets cannot parse.

Always recover using the same wallet software (or a compatible alternative) that generated the seed. If you are unsure of the format, check whether the seed phrase passes BIP 39 checksum validation: if it does, it is likely BIP 39; if it does not, it may be an Electrum or proprietary format.

Why It Matters

Wallet recovery is the safety net of self-custody. Without a tested recovery workflow, a lost or damaged device means permanent loss of funds. This is not hypothetical: an estimated 3 to 4 million Bitcoin are considered permanently lost, much of it due to inaccessible wallets with no viable recovery path.

For developers building wallet applications, understanding recovery workflows is equally important. Wallet software must clearly communicate which seed format and derivation paths it uses, and ideally store this metadata in output descriptors so that future recovery tools can parse it automatically. The Bitcoin wallet recovery methods research article covers the full landscape of recovery approaches, from seed phrases to social recovery and passkeys.

Modern protocols like Spark are rethinking wallet architecture to reduce recovery complexity. By managing keys through FROST threshold signatures and providing SDK-level abstractions, Spark aims to make self-custody accessible without requiring users to manually manage seed phrases and derivation paths.

Risks and Considerations

Security During Recovery

The recovery process is the moment of highest risk for a seed phrase. Entering words into software on a compromised device can expose the entire wallet. Use air-gapped or offline devices when possible, and never enter a seed phrase into a website or browser extension.

Phishing and Fake Recovery Tools

Fake wallet recovery tools are a common attack vector. Malicious software masquerading as legitimate recovery utilities will capture the seed phrase and immediately sweep funds. Always download recovery software directly from official sources and verify checksums.

No Universal Standard

The fragmentation across BIP 39, Electrum, aezeed, and other formats means there is no single recovery procedure that works for all wallets. Users must know which format their wallet uses. The push toward descriptor wallets aims to solve this by embedding all recovery metadata (script type, derivation path, key origin) into a single portable string. See the output descriptor portability research for a deeper exploration.

Testing Before You Need It

The best time to test a recovery workflow is immediately after creating a wallet: before it holds significant funds. Create the wallet, record the seed and passphrase, then restore it on a separate device. Verify that the same addresses appear. This dry run catches derivation path mismatches, passphrase errors, and format incompatibilities when the stakes are low.

This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.