I exported my public keys from Exodus wallet: xpub6DA, zpub6ruWS, zpub6rhPfS.
From what I gathered, xpub is for the old-style addresses, while zpub is for the extended public keys used with segwit (bc1q) and taproot (bc1p) addresses.
Exodus didn't give me any warnings, and I ended up using a taproot address to receive some bitcoin. Now, it’s just not showing up in my wallet.
I found a transaction on Trezor at m/84'/0'/1'/0/1. I tried importing my seed phrase and set the path to m/84'/0'/1' like those online guides say, but still no transaction showing up.
My wallet indicates it's wallet #1 for my zpub6ruWS address. So right now, my bitcoin is stuck in this taproot address and I have no clue how to get it back.
Any ideas on how to recover my funds?
how to get back segwit bitcoin from taproot?
7 replies 185 views
byte_orbitFull Member
Posts: 186 · Reputation: 738
#2Apr 9, 2019, 11:46 AM
If you are sure it went to a taproot address then the issue is with the path.
How can you be sure it is Taproot if you say it is in this public key? According to https://slips.readthedocs.io/en/latest/slip-0132/:
In any case you can try out the other derivation paths, there is no harm in trying.
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#3Apr 9, 2019, 12:35 PM
I can't see the connection, you exported those xpubs from Exodus and then use one of those on which wallet?
You imported back to Exodus or something?
Then Trezor is mentioned without explaining how it's involved.
Please explain the situation more clearly in detail.
You may use this sticky thread as a guide: [READ BEFORE POSTING] Tech Support Help Request Format
For now,
If I understand the situation correctly, your TapRoot address is derived at the derivation path m/84'/0'/1'/0/1... with the extended public key: zpub6ruWS...
If that's the actual scenario, the derivation path is still within the standards, so you may import it to Sparrow Wallet by disabling "Validate Derivations" in its settings since you'll be swapping script types and derivation path.
Then, to restore: Create a new walletSelect "Taproot" as script type (very important, do not skip)Click "New or imported Software Wallet"Select the number of words and type them in, and click "Create Keystore".Edit m/86'/0'/0' into m/84'/0'/1' before clicking "Import Custom Derivation Store".
In this step, it wont be clickable if "Validate Derivations" is still enabled in the settings.After that, finish creating the wallet using "Apply".
If this doesn't derive the correct address, there something in those unclear explanations that's caused a discrepancy.
Let me describe my experience:
1. I created a new profile in Exodus. It didn't ask for a password, and the exported mnemonic phrases were all the same.
2. I exported the public keys from the second profile:
xpub6DALZDVFmbnxm2Uf...
zpub6ruWSbTpt1w2pRnZ...
zpub6rhPfSfwxbMuqC3...
3. I then set the third zpub as my receiving account on sell.app. When I had completed 3 orders but my wallet didn't show anything, I immediately stopped receiving payments and started looking for information.
4. According to some sources, the third address is for Taproot addresses.
5. As instructed, I checked the path using Trezor's tool. Here is the link:
https://btc1.trezor.io/xpub/zpub6rhPfSfwxbMuqC3MSp49aH7uFYz5gfouN4Yo2oKKxcFNgGvbDae6TwMWtLyAhEa6Z2suDLjFZD5eGAqqaxRNLtW7yPCMXatq6qTAYQZWsqL
6. I tried to create a wallet using the derivation path m/84'/0'/1', but the wallet showed addresses corresponding to the second public key (the one starting with WSb), and I couldn't find the correct third public key.
I tried adding my profile name "1" as a passphrase, but it led to a new set of addresses, which were clearly not the right ones.
Right now, my theory is that either the new profile has a hidden mnemonic phrase, or the money was mistakenly sent to a SegWit address, even though my public key is from Trezor.
thank you very much for your suggestions. However, I followed your tutorial, and unfortunately, the method didn't work.
Here is a screenshot:
https://imgur.com/a/huMHXJ0
byte_orbitFull Member
Posts: 186 · Reputation: 738
#5Apr 9, 2019, 05:45 PM
Some things are not entirely clear to me either.
Three public keys.
Here you state that the money is in the third zpub but on the first post you said that it is in the second one. We need to clarify this to avoid further confusion.
Try also with this tool: https://iancoleman.io/bip39/. Make sure to download the website and run it locally (offline). Do the derivations with the seed phrase. Let us know what happens.
Make sure to try both hardened and non hardened derivation. Make sure that the paths are correct. You can provide a screenshot here. You can limit the area included in the screenshot to the path column for maximum privacy (at the very least include the first bits of the derived addresses -- we can verify you are on the right derivation track and at the same time you can retain your address privacy).
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#6Apr 9, 2019, 11:41 PM
Now that paints a better picture.
The screenshot shows the same "zpub6ruWS" that you've mentioned in the OP when encoded for P2TR extended public key.
Means that you're on the right track since the mnemonic seed can restore those xpubs that you mentioned.
However, the transaction in you link is for the other zpub: zpub6rh... which is for Taproot derivation path but the addresses are bech32 instead of bech32m.
So it looks like that you have to swap the other way around.
Try that again but this time, select "Native SegWit (P2WPKH)" script type (again, make sure not to skip) and edit the derivation path from: m/84'/0'/0' to m/86'/0'/1'
In Exodus wallet, those three represent the extended public key of each script type at account_index level of the "bitcoin portfolio" where those are exported.
it worked! i saw the 3 transactions, thanks so much for your help!
i learned a lot from this experience, mainly because there weren't many similar cases at first, so it was hard to find useful info. even trying AI was a bit misleading. the biggest issues were that the paths i got from the website didn't match the actual ones, and because the validata path in wallet settings was enabled, i never even tried completely different paths. i think this experience was super helpful for tackling more complex problems later on.
maybe my case can help some other poor souls lol, hope someone sees this in the future
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#8Apr 11, 2019, 12:40 AM
I'm glad that it worked, you're welcome.
It could eventually, via search engines where people often look for solutions.
This is why details are important since the limited information in the OP would've caused a lot of guesswork that could confuse non-tech-savvy readers if not supplied with the info in your next reply.
It's also important for them to know if they're in a similar situation.
?Reply
Sign in to reply to this topic
Related topics
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- Ways to earn some sats by contributing to bitcoin core development 5
- Exploring the Potential and Challenges of a Kardashev-Scale Bitcoin Network 3
- What can I do to fix this Bitcoin Core error? 8