LayerZeroFault
hardware fallback Updated:

Keystone 3 Pro BIP-84 & Taproot Gap Limit Zero Balance Error

VV

Written by

Updated:

Technical Guide

The Keystone 3 Pro zero balance error in Sparrow Wallet or Electrum occurs because watch-only coordinators scan addresses sequentially using a default BIP-44 gap limit of 20 unused addresses. If transaction history starts after index 20 or funds reside on a secondary account index (m/84’/0’/1’), the coordinator halts scanning prematurely. Increasing the address gap limit to 100 in coordinator settings and verifying the BC-UR descriptor restores the full Bitcoin balance.

Before executing state changes or signing transactions, verify your cryptographic parameters using our interactive Derivation Path Inspector utility.


1. The Mechanics of the BIP-44 Gap Limit Problem

Under the BIP-44, BIP-84, and BIP-86 hierarchical deterministic (HD) wallet specifications, extended public keys generate an infinite sequence of receiving addresses:

$$\text{Address}_k = \text{Derive}(\text{xpub}, \text{path} = \dots / 0 / k)$$

Because full nodes and Electrum servers cannot index an infinite sequence of addresses, coordinators apply a Gap Limit Rule:

“Software coordinators derive addresses sequentially starting at index 0. If the coordinator detects 20 consecutive unused addresses (with 0 on-chain transaction history), it assumes no further funds exist along that derivation branch and halts the scan.”

Why the Gap Breaks on Keystone 3 Pro

  1. Invoice Jumping: If you generated several invoices on a mobile app or exchange that were never paid (indices 0 through 20), and then finally received a large payment on index 22, the coordinator halts at index 19.
  2. Change Address Gaps: If internal change addresses (.../1/k) jump beyond the standard 20-address window due to multiple unconfirmed coin control operations.
  3. Multi-Account Segmentation: Keystone 3 Pro allows users to configure independent accounts inside the same device:
    • Account 1: m/84'/0'/0'
    • Account 2: m/84'/0'/1'
    • Taproot Account: m/86'/0'/0' If you received funds into Account 2 on Keystone, but exported the default Account 1 QR descriptor to Sparrow, Sparrow scans a completely empty derivation branch.

2. Derivation Path & Script Type Matrix

Before altering software settings, verify that your watch-only coordinator matches the exact script type generated on your Keystone 3 Pro:

Bitcoin Script TypeDerivation PathPublic Key PrefixAddress Format
Native SegWit (P2WPKH)m/84'/0'/0'zpubStarts with bc1q...
Taproot (P2TR / Ordinals)m/86'/0'/0'xpub (BIP86)Starts with bc1p...
Nested SegWit (P2SH-P2WPKH)m/49'/0'/0'ypubStarts with 3...
Legacy (P2PKH)m/44'/0'/0'xpubStarts with 1...

(For issues where hardware wallets misroute legacy vs segwit derivations, consult our companion troubleshooting guide on Trezor Error 0x6985 Action Cancelled on EIP-712 Typed Signatures).

3. Step-by-Step Resolution Protocol

Method A: Expand Address Gap Limit in Sparrow Wallet

  1. Launch Sparrow Wallet and open your Keystone watch-only file.
  2. In the left navigation sidebar, click on Settings.
  3. Under the Script Policy tab, click on Advanced.
  4. Locate the Address Gap Limit input field (defaults to 20).
  5. Change the value from 20 to 100 (or 250 if you frequently generate merchant invoices).
  6. Click Apply.
  7. Sparrow will immediately derive the next 80–230 addresses and query the connected Electrum or Bitcoin Core node. Your historical transactions and true BTC balance will populate within 10–30 seconds.
[Sparrow Engine] Rescanning derivation branch m/84'/0'/0'/0/* up to index 100...
[Sparrow Engine] Found UTXO at index 24: 1.45209124 BTC (Block 889210)
[Sparrow Engine] Wallet balance updated: 1.45209124 BTC

Method B: Rescan in Electrum Desktop Console

If you are using Electrum with your Keystone 3 Pro via watch-only master public key:

  1. Launch Electrum with your wallet loaded.
  2. In the top menu bar, select View > Show Console.
  3. Navigate to the Console tab at the bottom of the window.
  4. Execute the following Python commands:
# 1. Expand the receiving gap limit to 100 addresses
wallet.change_gap_limit(100)

# 2. Trigger synchronization across all newly derived indices
wallet.synchronize()
  1. Return to the History tab. Electrum will sync the unindexed addresses against its connected server cluster.

Method C: Exporting Secondary Account Indices on Keystone 3 Pro

If expanding the gap limit yields no results, your funds were likely received on a secondary Keystone account index (m/84'/0'/1'):

  1. Wake your Keystone 3 Pro and unlock it with your PIN or fingerprint.
  2. Tap the top-left account avatar to open the Account Manager.
  3. Check if you have multiple Bitcoin accounts listed (e.g., Bitcoin-1, Bitcoin-2).
  4. Select the account that holds the balance.
  5. Tap the three dots ... in the top right > Export Watch-Only Wallet.
  6. Select Sparrow Wallet or Generic BC-UR.
  7. In Sparrow Wallet, create a new wallet (File > New Wallet), choose Airgapped Hardware Wallet, select Keystone, and scan the newly generated animated QR code.

4. Recovering Ordinals & Runes on Taproot (BIP-86)

If you used your Keystone 3 Pro to receive Bitcoin Ordinals (Inscriptions) or Runes, those assets are locked to m/86'/0'/0' (P2TR bc1p... addresses).

If imported as standard BIP-84:

  • The wallet will only monitor bc1q... addresses.
  • Your Taproot UTXOs containing inscriptions will remain completely invisible.

The Fix:

  1. In Sparrow Wallet, go to Settings > Script Type.
  2. Select Taproot (P2TR).
  3. Ensure the derivation path displays m/86'/0'/0'.
  4. Import the Keystone Taproot QR code specifically.
  5. Never spend from Taproot UTXOs without using coin control to avoid accidentally burning rare satoshis as mining fees!
Interactive Diagnostic Sandbox

Local Hardware & Derivation Sandboxes

Simulate BIP derivation paths, check gap limits, and verify BIP-39 checksums in your browser without transmitting sensitive keys.

Companion Diagnostic Guide Trezor Error 0x6985 'Action Cancelled' on EIP-712 Typed Signatures →

Fix Trezor hardware signing error 0x6985 Action Cancelled on EIP-712 typed data and Permit2. Upgrade firmware, enable safety checks, and resolve browser drops.

Read Guide
Contextual Architecture

Related Diagnostic Guides

View All in Silo →

Related Inquiries

Why does my Keystone 3 Pro display a $0 balance in Sparrow Wallet after scanning the QR code?

Keystone 3 Pro utilizes air-gapped animated QR codes (BC-UR format) to export extended public keys (XPUB/ZPUB). When software coordinators like Sparrow Wallet or Electrum import this descriptor, they scan the blockchain using a standard BIP-44 gap limit of 20 consecutive empty addresses. If your transactions occurred at address index 21 or higher, or on a secondary account index (m/84'/0'/1'), the software stops scanning prematurely, resulting in a false $0 balance.

What derivation paths does Keystone 3 Pro use for Bitcoin accounts?

Keystone 3 Pro natively supports three primary Bitcoin derivation schemes: Native SegWit (BIP-84: m/84'/0'/0'), Taproot / Ordinals (BIP-86: m/86'/0'/0'), and Nested SegWit (BIP-49: m/49'/0'/0'). Exporting the wrong script type or master fingerprint descriptor prevents the coordinator from deriving your historical addresses.

How do I increase the address gap limit in Electrum or Sparrow Wallet?

In Electrum, open the Python console and execute wallet.change_gap_limit(100) followed by wallet.synchronize(). In Sparrow Wallet, navigate to Settings > Advanced, increase the Address Gap Limit from 20 to 100 (or higher), and click Apply to trigger a full mempool and blockchain rescan.

Can I verify my Keystone derivation roots offline without sharing keys?

Yes. You can verify BIP-44, BIP-49, and BIP-84 derivation trees and address indexes locally in your browser using our client-side Derivation Path Inspector tool without entering sensitive mnemonic seeds.