Ledger live XPUB Mismatch
Recovering BTC Sent to Legacy Address Due to Ledger XPUB Mismatch
Overview
Some users may encounter an issue where BTC received via Paymento does not appear in their Ledger wallet. This is often caused by a mismatch between the XPUB derivation path and the address type expected by Ledger Live. This article explains what causes the issue, how to identify it, and how to recover your funds.
The Root Cause: Ledger XPUB Mismatch
When you add a Bitcoin account in Ledger Live, it generates the account using BIP84 (Native SegWit: bc1...
) but exports an XPUB with the xpub...
prefix, which traditionally indicates a BIP44 (Legacy) wallet.
This is a design mistake in Ledger Live. The wallet operates using BIP84, but provides an XPUB formatted as
xpub
, misleading external platforms into treating it as BIP44.
Platforms like Paymento interpret xpub
as BIP44 (Legacy: 1...
), and therefore generate addresses under the BIP44 tree.
Result: BTC is sent to a Legacy address derived from a BIP84 XPUB, which Ledger Live does not recognize β creating the appearance that the funds are missing.
How to Identify the Issue
You used Ledger Live to export an XPUB.
You added that XPUB to Paymento.
Paymento generated a Legacy
1...
address.You received BTC at that address.
The address and transaction do not show up in Ledger Live.
Why Ledger Canβt See It
Ledger Live expects all transactions for a Native SegWit account to appear under BIP84 (path: m/84'/0'/0'
). It does not scan or track BIP44 legacy addresses unless you explicitly create a legacy account.
Even though the seed is the same, the XPUB and derived addresses are completely different between BIP44 and BIP84.
This issue occurs because Ledger provided an XPUB format (xpub
) that misrepresents the actual path and address format. Ideally, Ledger should export a proper zpub
for BIP84, or indicate the derivation path more clearly.
How to Recover Your Funds (Using Electrum)
You can recover your funds safely using your Ledger hardware wallet and Electrum, as Electrum allows custom script types and derivation paths.
Step-by-Step Recovery:
Open Electrum and choose Standard Wallet
Select Use a hardware device
Connect and unlock your Ledger device
Choose your Ledger from the device list
On the next screen:
Select "Legacy (p2pkh)" as the address type
Manually set the derivation path to:
m/84'/0'/0'
Click Next, and Electrum will generate addresses
You should now see your Legacy address with the funds (e.g.,
1A...
)Transfer the funds to a properly configured account if needed
β οΈ This mismatch (Legacy address type + BIP84 derivation path) is required only because of how Ledger exported the XPUB.
Best Practices Going Forward
If you're using Paymento, make sure the wallet you use can:
Export an XPUB in the correct format
Match the address type expected by the XPUB
Use Sparrow Wallet or Electrum with Ledger if you need full control over derivation paths and address formats
Avoid pasting XPUBs from Ledger Live without knowing the path they were derived from
Recommendation for Ledger Team
We recommend that Ledger addresses this inconsistency in their platform by:
Exporting correct XPUB prefixes (
zpub
,ypub
, etc.) according to the derivation path usedClearly labeling which BIP standard the account is using when displaying or exporting XPUBs
This small change would greatly improve compatibility with external non-custodial tools like Paymento and prevent users from unknowingly misrouting funds.
Summary
If you received BTC on a legacy address that your Ledger Live account doesnβt recognize, itβs likely due to a derivation mismatch caused by Ledger exporting a misleading XPUB. By connecting your Ledger to Electrum with the right script type and path, you can safely recover your funds.
Always double-check derivation paths and address types when integrating with non-custodial platforms like Paymento.
Last updated