Step-by-Step Guide

How to Fix Bitcoin Wallet Showing 0 Balance After Restore

You restored your Bitcoin wallet from a seed phrase and it shows zero. The Bitcoin isn't gone — your wallet just can't see it. Here's how to get it back, step by step.

Why Your Wallet Shows 0 Balance

When you restore a Bitcoin wallet from a seed phrase, the wallet generates addresses sequentially and checks each one for transactions on the blockchain. But it doesn't check every possible address — it uses a rule called the gap limit.

The gap limit (usually 20) tells the wallet: "if you see 20 consecutive empty addresses, stop looking." If your Bitcoin sits at an address beyond that gap, the wallet stops before it gets there. Your balance shows as zero.

This is the single most common reason for a Bitcoin wallet to show 0 balance after a restore. Other possible causes include:

  • Wrong derivation path — the wallet uses a different BIP standard than the one your funds are on
  • Wrong seed phrase — you may have multiple seeds for different wallets
  • Passphrase mismatch — if you used a BIP-39 passphrase (sometimes called the "25th word"), you need to enter it during restore
  • Blockchain not fully synced — some wallets need time to download and verify the blockchain

This guide focuses on the gap limit cause, which accounts for the vast majority of cases.

What You'll Need

  • Your wallet's extended public key (xpub, ypub, or zpub) — this is a public key that cannot spend funds
  • Access to GapFix (or any tool that scans beyond the standard gap limit)
  • A way to send a small amount of Bitcoin (a few hundred satoshis per gap address)

Step 1: Find Your Extended Public Key

The extended public key (xpub, ypub, or zpub) is a master public key that lets you derive all your receive addresses without exposing your private keys. Here's where to find it in popular wallets:

Wallet Location Key Type
Electrum Wallet → Information → Master Public Key zpub (native segwit) or xpub (legacy)
Ledger Live Account → Edit → Advanced → Extended Public Key xpub
Trezor Suite Account → Details → Show Public Key (XPUB) xpub, ypub, or zpub
Sparrow Settings → Keystore → Master Public Key zpub or xpub
Coldcard Advanced → View Identity → Master XPUB xpub
BlueWallet Wallet → Details → Show XPUB zpub

Is it safe to share my xpub?

An xpub is a public key — it can derive your receive addresses but cannot spend your Bitcoin or reveal your private keys. GapFix runs entirely in your browser and never sends your key to a server. That said, anyone with your xpub can see all your addresses and balances, so treat it as private for privacy reasons.

Step 2: Scan with GapFix

  1. Open gapfix.net
  2. Paste your extended public key into the input field
  3. Click "Scan for Gap Issues"

GapFix will derive up to 2,000 addresses (1,000 external receive addresses + 1,000 change addresses) and check each one against the blockchain. It scans all four address formats automatically:

  • P2PKH — Legacy addresses starting with 1
  • P2SH-P2WPKH — Wrapped SegWit addresses starting with 3
  • P2WPKH — Native SegWit / bech32 starting with bc1q
  • P2TR — Taproot starting with bc1p

The scan typically takes 2–5 minutes. When complete, GapFix shows you:

  • How many gap addresses exist (empty addresses blocking the scanner)
  • The total hidden balance sitting beyond the gap
  • A copy-ready list of addresses that need dust transactions

Step 3: Send Dust to Gap Addresses

"Dust" is a tiny amount of Bitcoin sent to fill the gap. Once each empty gap address has a transaction, your wallet's scanner will continue past it.

Minimum dust amounts

Address Type Prefix Minimum Dust
Legacy (P2PKH) 1... 546 sats
Wrapped SegWit (P2SH) 3... 546 sats
Native SegWit (P2WPKH) bc1q... 294 sats
Taproot (P2TR) bc1p... 294 sats

How to send dust efficiently

The most efficient method is a batch transaction — sending to all gap addresses in a single transaction. This saves on fees compared to individual sends.

  1. In GapFix, click "Copy addresses" — this copies all gap addresses and their dust amounts in tab-separated format
  2. In your wallet, use the batch send or "send to many" feature:
    • Electrum: Tools → Pay to many
    • Sparrow: Send → Add output (for each address)
    • Bitcoin CLI: bitcoin-cli sendmany
  3. Paste the address list and send

Total cost is typically a few thousand satoshis (a few cents USD) for a handful of gap addresses, plus the standard transaction fee.

Step 4: Rescan Your Wallet

After the dust transactions have at least 1 confirmation (about 10 minutes), trigger a rescan in your wallet:

Wallet How to Rescan
Electrum Wallet → History → right-click → Rescan, or close and re-open the wallet
Ledger Live Close and re-open the account, or use Settings → Help → Clear cache
Trezor Suite Disconnect and reconnect the device, or resync from Settings
Sparrow Wallet → UTXOs → Rescan Blockchain

Your wallet will now scan address 0, 1, 2... encounter the dust transactions on the previously-empty gap addresses, continue scanning, and discover the hidden Bitcoin beyond the gap. Your full balance should appear.

Still Showing 0? Troubleshooting

Wrong derivation path

If GapFix also shows 0 across all address types, the issue may not be the gap limit. Your funds might be on a different derivation path. Common paths:

  • m/44'/0'/0' — BIP-44 legacy (P2PKH)
  • m/49'/0'/0' — BIP-49 wrapped SegWit (P2SH-P2WPKH)
  • m/84'/0'/0' — BIP-84 native SegWit (P2WPKH)
  • m/86'/0'/0' — BIP-86 Taproot (P2TR)

Try importing your seed into a wallet that supports all derivation paths (Sparrow is excellent for this).

BIP-39 passphrase

If you originally set up your wallet with a passphrase (sometimes called the "25th word" or "hidden wallet"), you must enter the same passphrase when restoring. Without it, the wallet derives a completely different set of addresses.

Multiple accounts

Some wallets support multiple accounts under the same seed (BIP-44 account index). If your funds are in account 1 (m/84'/0'/1') but your wallet only scans account 0, they won't appear. Check if your wallet supports adding additional accounts.

Dust not confirmed yet

Wait for at least 1 block confirmation before rescanning. If you sent with a very low fee, the dust transaction may take longer to confirm.

Understanding UTXOs and Why This Works

Bitcoin doesn't have "accounts" with balances the way a bank does. Instead, your balance is the sum of Unspent Transaction Outputs (UTXOs) — individual chunks of Bitcoin locked to your addresses.

When a UTXO exists at address index 50 but your wallet stops scanning at index 20 (the gap limit), it simply doesn't know the UTXO is there. The Bitcoin is perfectly safe on the blockchain — the wallet just can't see it.

By sending dust to the empty addresses between index 20 and 50, you give each address a transaction. The wallet scanner sees those transactions, thinks "there might be more funds ahead," and keeps scanning until it finds your UTXO at index 50.

Ready to recover your Bitcoin?

Scan your extended public key now. Free, open-source, no private keys needed.

Scan My Wallet