Author

Topic: Can't access my money because of the derivation path (Read 726 times)

legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
They never replied to me. Do you have the BTC derivation path of Coinbase? 200 $ for you if yours work.
We already tried with many derivation paths.
I'm shocked that you still haven't received your bitcoins, at least if I were you, I would, in these two years, force coinbase tech support to tell me to fuck off (give me back the coins).
Problem is "Coinbase" isn't "Coinbase Wallet"; although both are products by the same company, those aren't the same.
OP's wallet is the latter which isn't custodial, so Coinbase doesn't have anything give him since they don't have the funds.

BTW, if you've read the previous replies, you'll see that in various users' attempts, they can restore their address in Electrum,
but for some reason, OP can't (and it's for you to judge what went wrong).
member
Activity: 185
Merit: 50

They never replied to me. Do you have the BTC derivation path of Coinbase? 200 $ for you if yours work.
We already tried with many derivation paths.
I'm shocked that you still haven't received your bitcoins, at least if I were you, I would, in these two years, force coinbase tech support to tell me to fuck off (give me back the coins).
member
Activity: 76
Merit: 35
I'm not sure if it helps, and I realize it's been a while, but I ran into a similar issue with the Coinbase Wallet app recently. My issue was specific to ETC, but I wouldn't be surprised at all if the same type of issue exists on other coins/wallets. I'm sharing in the hopes that perhaps it might provide you with some ideas on what might have gone wrong, and how you can potentially recover the funds.

A co-worker who's pretty new to crypto purchased a few thousand dollars worth of ETC and transferred it from Coinbase to his Coinbase Wallet. Whenever he tried to send the funds back to Coinbase it would error out and basically prevent him from doing anything. Coinbase support just told him to setup another wallet using his seed key (meaning another software app wallet) and he would be able to transfer his ETC. However, when he setup his wallet on another application all of his coins showed up except for the ETC.

THE FIX
I had him install Coinomi on his iPhone and restore his wallet. When setting up wallets in Coinomi you can change the derivation key for the coin you are setting up. According to Coinomi's own support articles ETH has a derivation path of M/44H/60H/0H/0 while ETC has a derivation path of M/44H/61H/0H/0. For some reason neither his ETH or ETC wallets restored by default. To get his ETH to show up, I had to add the /0 at the end of the derivation path. To finally get his ETC to show up, I had to use the ETH derivation path on his ETC wallet (M/44H/60H/0H/0). This made little  sense to me, but it worked and allowed him to send the coins back to Coinbase.

Anyway, good luck. I wish I could be of more help. Losing funds because Coinbase apparently can't code a decent wallet is bad for the crypto in general.

They never replied to me. Do you have the BTC derivation path of Coinbase? 200 $ for you if yours work.

We already tried with many derivation paths.
legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
THE FIX
-snip-
Looks good.
However, the previously suggested "fixes" should work in his case if his seed phrase is correct because it's reproducible.
(Seed phrase to Electrum->select the correct address type, and the 1st address should be the same as Coinbase Wallet's)

Overall, it comes down to the possibility that he backed-up the wrong seed phrase.
newbie
Activity: 5
Merit: 0
I'm not sure if it helps, and I realize it's been a while, but I ran into a similar issue with the Coinbase Wallet app recently. My issue was specific to ETC, but I wouldn't be surprised at all if the same type of issue exists on other coins/wallets. I'm sharing in the hopes that perhaps it might provide you with some ideas on what might have gone wrong, and how you can potentially recover the funds.

A co-worker who's pretty new to crypto purchased a few thousand dollars worth of ETC and transferred it from Coinbase to his Coinbase Wallet. Whenever he tried to send the funds back to Coinbase it would error out and basically prevent him from doing anything. Coinbase support just told him to setup another wallet using his seed key (meaning another software app wallet) and he would be able to transfer his ETC. However, when he setup his wallet on another application all of his coins showed up except for the ETC.

THE FIX
I had him install Coinomi on his iPhone and restore his wallet. When setting up wallets in Coinomi you can change the derivation key for the coin you are setting up. According to Coinomi's own support articles ETH has a derivation path of M/44H/60H/0H/0 while ETC has a derivation path of M/44H/61H/0H/0. For some reason neither his ETH or ETC wallets restored by default. To get his ETH to show up, I had to add the /0 at the end of the derivation path. To finally get his ETC to show up, I had to use the ETH derivation path on his ETC wallet (M/44H/60H/0H/0). This made little  sense to me, but it worked and allowed him to send the coins back to Coinbase.

Anyway, good luck. I wish I could be of more help. Losing funds because Coinbase apparently can't code a decent wallet is bad for the crypto in general.
HCP
legendary
Activity: 2086
Merit: 4314
Is it possible to import (watch only) addresses into the wallet?
Or does coinbase allow to import private keys to be used in the same "account", basically creasting a HW wallet + single keys/addresses?
Not as far as I can see... there are no "import" options within the wallet app. When you first setup the wallet, your options are to create a new wallet (gives new HD based wallet with 12 word seed mnemonic)... or you can restore your wallet from a 12 word seed mnemonic (or a coinbase backup stored on google drive??!? Shocked)
legendary
Activity: 1624
Merit: 2481
And your friend is 100% sure that they saw this address and the balance within their Coinbase wallet app? Huh

Is it possible to import (watch only) addresses into the wallet?
Or does coinbase allow to import private keys to be used in the same "account", basically creasting a HW wallet + single keys/addresses?

If so, he might have imported an address from the standard "i send you bitcoin, here import that addresss" type of scam.

I mean.. i wouldn't be surprised if the coinbase wallet would allow to add addresses/keys to the HD wallet..
HCP
legendary
Activity: 2086
Merit: 4314
And your friend is 100% sure that they saw this address and the balance within their Coinbase wallet app? Huh

It honestly seems like either:
- This address was not generated from their coinbase wallet app at all and they actually got it from somewhere else
or
- They have the wrong seed


It's incredibly strange that you have a seed mnemonic that is generating transaction history etc... but is missing one particular address. The only other explanation would be some random bug in the wallet app that generated an address using some unknown derivation path.

It's not impossible, given that their app seems to be not showing me some of my transaction history Undecided Shocked
member
Activity: 76
Merit: 35
Nothing, I just tried with bip141 and P2WPKH these derivation paths

m/44'/0'/0'/0
m/44'/0'/0'/1
m/44'/0'/1'/0
m/44'/0'/1'/1
m/44'/0'/2'/0
m/44'/0'/2'/1

and this one too

m/44'/0'

but the desired address doesn't appear.
member
Activity: 180
Merit: 38
You should check m/44'/0' this is a hard key.
legendary
Activity: 2268
Merit: 18509
When you say to check the change addresses, have I already searched them by inserting those settings you just told me or do I have to do something else in order to check them?
I tried all the combinations you've listed and the address did not appear in the list.
If the last number in the paths I have given is 0, you are on the external addresses. If the last number in the paths I have given is 1, you are on the change addresses. Therefore, I would check:

m/44'/0'/0'/0
m/44'/0'/0'/1
m/44'/0'/1'/0
m/44'/0'/1'/1
m/44'/0'/2'/0
m/44'/0'/2'/1

Using the BIP141 box as I described above means you have to add this additional number at the end of the derivation paths to find the change addresses, but the addresses you generate should still have the "normal" derivation paths of m/ followed by 5 numbers.
member
Activity: 76
Merit: 35
There is a weird and really rare bug inside of the coinbase wallet application which derived the one single address wrong only that one time.
While this definitely is not impossible, it is rather rare.
Running with this idea, it is at least theoretically possible since Coinbase so easily switches between Legacy and Segwit addresses, that it has derived a Segwit address from a Legacy derivation path. You could try using Ian Coleman's site (offline, of course), enter the seed phrase, scroll down to "Derivation Path" and click on "BIP141", enter m/44'/0'/0'/0 in the box titled "BIP32 Derivation Path", and select "P2WPKH" in the drop down menu titled "Script Semantics". This will generate Segwit addresses at the standard Legacy derivation path.

It would also be worth checking change addresses of that account using m/44'/0'/0'/1, and checking further accounts using m/44'/0'/1'/0 and m/44'/0'/2'/0, and checking the change addresses of those accounts too.
Just tried, the address with the money does not appear in the list.
When you say to check the change addresses, have I already searched them by inserting those settings you just told me or do I have to do something else in order to check them?
I tried all the combinations you've listed and the address did not appear in the list.
legendary
Activity: 2268
Merit: 18509
There is a weird and really rare bug inside of the coinbase wallet application which derived the one single address wrong only that one time.
While this definitely is not impossible, it is rather rare.
Running with this idea, it is at least theoretically possible since Coinbase so easily switches between Legacy and Segwit addresses, that it has derived a Segwit address from a Legacy derivation path. You could try using Ian Coleman's site (offline, of course), enter the seed phrase, scroll down to "Derivation Path" and click on "BIP141", enter m/44'/0'/0'/0 in the box titled "BIP32 Derivation Path", and select "P2WPKH" in the drop down menu titled "Script Semantics". This will generate Segwit addresses at the standard Legacy derivation path.

It would also be worth checking change addresses of that account using m/44'/0'/0'/1, and checking further accounts using m/44'/0'/1'/0 and m/44'/0'/2'/0, and checking the change addresses of those accounts too.
member
Activity: 76
Merit: 35
To me it seems that these 2 options are the most likely ones:

1)
There is a weird and really rare bug inside of the coinbase wallet application which derived the one single address wrong only that one time.
While this definitely is not impossible, it is rather rare.

2)
Your friend has the wrong mnemonic code.
This happens more often than you would assume. People tend to "know for sure" which mnemonic code they have used. But in the end it always was their mistake (wrong wallet file, different mnemonic code, used a BIP39 passphrase, etc...).

Yeah it could indeed be number 2, although I am not 100% sure because it had already happened to me personally not to access my funds even though I had the exact seed. After a while I found the funds (with that seed), it was a derivation path issue, because for whatever reason (no idea to this day), it was different from the other ones created by electrum. Instead of m/84/0/0 it was m/0 and that's it.

RIP
legendary
Activity: 1624
Merit: 2481
To me it seems that these 2 options are the most likely ones:

1)
There is a weird and really rare bug inside of the coinbase wallet application which derived the one single address wrong only that one time.
While this definitely is not impossible, it is rather rare.

2)
Your friend has the wrong mnemonic code.
This happens more often than you would assume. People tend to "know for sure" which mnemonic code they have used. But in the end it always was their mistake (wrong wallet file, different mnemonic code, used a BIP39 passphrase, etc...).
member
Activity: 76
Merit: 35
Can you try something for me... can you try installing the Mycelium wallet app: https://play.google.com/store/apps/details?id=com.mycelium.wallet and then restoring the seed in that application and check to see what transactions you can see? Huh

I've just restored an old Mycelium seed into Coinbase... and it's missing the first couple of transactions from the wallet history. So, it seems that perhaps the Coinbase app might be "broken"? Huh Undecided


But the last transaction is the one that is shown in the segwit wallet! WTF?! It's like the conbase wallet app contains different wallets with different derivation paths within itself and it exchanges between them from time to time.
Yes, that is exactly what the Coinbase wallet does... Like I said, you can swap between SegWit and Legacy simply by tapping on the "Segwit" and "Legacy" tabs on the "Receive" screen... it swaps from one to the other. On the main screen it simply shows all the transactions from both the SegWit and Legacy "wallets"...

at least, it should, but like I said, it seems to be missing a transaction or two? Undecided


Done. It shows the same transactions from the legacy and segwit wallet.
member
Activity: 180
Merit: 38
Transactions are incoming and outgoing and they can do so from and to different address types.
A public point can have multiple address types.
But if that address with funds belonged to that wallet it would show up as positive funds given that the transactions were done with a standardized wallet that uses standard protocols.
Maybe you are using the wrong wallet in that case it would not be able to detect the transaction.
You have to be sure about the wallet app that was used and the one you are using now, these will have to use the same protocols.
If you still think that there is something wrong you will have to calculate some addresses manually and check the results.
HCP
legendary
Activity: 2086
Merit: 4314
Can you try something for me... can you try installing the Mycelium wallet app: https://play.google.com/store/apps/details?id=com.mycelium.wallet and then restoring the seed in that application and check to see what transactions you can see? Huh

I've just restored an old Mycelium seed into Coinbase... and it's missing the first couple of transactions from the wallet history. So, it seems that perhaps the Coinbase app might be "broken"? Huh Undecided


But the last transaction is the one that is shown in the segwit wallet! WTF?! It's like the conbase wallet app contains different wallets with different derivation paths within itself and it exchanges between them from time to time.
Yes, that is exactly what the Coinbase wallet does... Like I said, you can swap between SegWit and Legacy simply by tapping on the "Segwit" and "Legacy" tabs on the "Receive" screen... it swaps from one to the other. On the main screen it simply shows all the transactions from both the SegWit and Legacy "wallets"...

at least, it should, but like I said, it seems to be missing a transaction or two? Undecided
member
Activity: 76
Merit: 35
No the seed is right.
The address with the balance belongs to a different seed.
You have a seed... not the seed.
Maybe it's time to talk to your friend.

Will do. Can you read my last post again? I edited it.

member
Activity: 180
Merit: 38
No the seed is right.
The address with the balance belongs to a different seed.
You have a seed... not the seed.
Maybe it's time to talk to your friend.
member
Activity: 76
Merit: 35
There is no doubt in my mind that that is the wallet that belongs to that seed and that it is in fact empty.

So you think the seed is wrong?

Yet almost all transactions of the coinbase wallet are shown in the legacy wallet.

But the last transaction is the one that is shown in the segwit wallet! WTF?! It's like the conbase wallet app contains different wallets with different derivation paths within itself and it exchanges between them from time to time.

member
Activity: 180
Merit: 38
There is no doubt in my mind that that is the wallet that belongs to that seed and that it is in fact empty.
The chance of you accidentally stumbling on that/someone else wallet with that seed is extremely slim.
member
Activity: 76
Merit: 35
This is what I see when I create the legacy wallet




this is what I see when I create the segwit wallet



this is what I see when I enter the coinbase wallet app




member
Activity: 76
Merit: 35
I wrote your code in the console, pressed enter, restarted electrum but I see the same amount of addresses.

I also entered his coinbase wallet app, I can see all the transactions up to 3 days ago. I tried all 10 different wallets that you find by pressing settings/advanced/active wallet but everything is empty. Also, no matter which wallet I tried, they all show the same exact transactions.

Another thing that doesn't app up is that the transaction list shown in the app does not coincide 100 % with the 2 wallets I have found with electrum. The transactions I found on the segwit electrum wallet are not shown in the coinbase wallet app.
The transactions I found on the legacy electrum wallet are shown in the coinbase wallet app, but not all of them and some that are listed in the coinbase wallet up are not present in the electrum wallet.
So there's clearly a mess going on here. Same seed, same wallet and not all txs show up?
HCP
legendary
Activity: 2086
Merit: 4314
I am able to retrieve another wallet (always with the same seed), this time with bc1 addresses, I open it and I see some transactions, so this wallet was used too. Unfortunately though the address I am looking for is not there.
So, you created a "standard" wallet in Electrum, using the seed your friend provided, selected "BIP39" and then selected the "Native SegWit (p2wpkh)" option... and doing this, you see transaction history, but not the address you're looking for? Huh Undecided

I've just been trying with the Coinbase App to create addresses/wallets from different derivation paths, and I just don't see a way to do it... Regardless of the "Active Wallet" setting in "Settings -> Advanced"... it only seems to use the standard m/84'/0'/0' and m/44'/0'/0' addresses for BTC... the "Active wallet" setting only seems to affect ETH as far as I can tell.


Although I don't think Coinbase provides a way to get addresses beyond the gap limit, you could try increasing the number of addresses generated by using the method that was posted earlier:
There's also a chance that the address is at higher index than Electrum's default of 20,
in that case, try to create more addresses by typing this in the console (View->Show Console):
Code:
[wallet.create_new_address(False) for i in range(200)]
Then restart Electrum.
Change "False" to "True" if you want to generate change addresses.


He certainly screwed it up by using a legacy wallet and giving out a segwit address.
I don't think so... the Coinbase app lets you swap between Segwit and Legacy in the "same" wallet. You simply tap the "SegWit"/"Legacy" tabs above the QR code shown on the "Receive" screen.


Did your friend ever use the Coinbase website? I'm wondering if they had used the "walletlink" feature or something... and the "mystery" address was one that was actually from the Coinbase website and not one generated by the app? Huh
member
Activity: 76
Merit: 35
I am using the website https://iancoleman.io/bip39/ on an offline computer, telling it to scan for thousands of addresses but the one I want is not listed there.
I have selected bip84 and it doesn't show up. Then I tried to put "1" in the "account" box but it's not there either.

member
Activity: 180
Merit: 38
m/84'/0'/0' == bip84 == bc1 == zpub

If you have the keys you do not need any coinbase wallet at all.
You can import them into any application that is able to handle the protocol and your friends funds will be spendable immediately.

Hey by the way what do you mean with bip84? When he made the wallet and writes the seed in electrum (12 words), you can't click next. So I told him to press the option button and select bip39 so that he could click next (and also because as far as I know the seed phrase is taken from the bip39 list).
Could this bip84/bip39 be the issue???

Probably you are currently looking at the external and change addresses, while you are searching for the address that belongs not to external or change, but to the root, or master key.
This is the hard key from 256 bits HMAC512 and all child addresses will be generated from the other 256bits HMAC512 chain code.

The chance that you found a used address that belonged to someone else is neglectable, so this means that you are looking into the right direction you most likely only need to look up one more level.



You can also use the public key to generate a variety of non standard addresses but since this seems to be a online wallet issue the chances on non standard protocol implementations are very slim. 

I have a slight feeling that your friend has a seed from a previous or older wallet.
It can help to ask him how many wallets he made and if he still has the seeds to all of them.

For now i would advise you to use the keypair, or public key to generate an extended address list including roots.
legendary
Activity: 2268
Merit: 18509
I am able to retrieve another wallet (always with the same seed), this time with bc1 addresses, I open it and I see some transactions, so this wallet was used too.
It's possible then there are further segwit (bc1) accounts which were generated using this seed phrase. Electrum should have detected them, but you can try doing it manually just to be sure. Recover your seed phrase on Electrum, and on the Script Type page, select "native segwit (p2wpkh)" but change the derivation path from m/84'/0'/0' to m/84'/0'/1'. You could also try changing to 2', 3', 4', etc. just to be sure.

If that still shows up blank, then the options are either a very nonstandard derivation path, an additional passphrase which has been forgotten about, or the wrong seed phrase entirely.
member
Activity: 76
Merit: 35
I now have the seed and I have entered the wallet.
When I enter the wallet though, the addresses to receive are in the form of 15..., 14... whereas the address that contains the money is bc1.

With that seed, I tried to access the wallet with electrum. I click "detect existing account" and it finds me a bip44 legacy wallet (but the address I need is bc1 so not legacy), I open it anyway and I do see the old transactions.

I am able to retrieve another wallet (always with the same seed), this time with bc1 addresses, I open it and I see some transactions, so this wallet was used too. Unfortunately though the address I am looking for is not there.

What else can I do?

He certainly screwed it up by using a legacy wallet and giving out a segwit address.
legendary
Activity: 1624
Merit: 2481
Is there a way to verify if the seed he's using is in charge of that address? If that is so, then it must be a derivation path issue, right?
Maybe signing a message?

Unfortunately, no.

The only way would be to bruteforce it yourself.
This would mean you'd need a short script to try each derivation path until you are successful. You should find someone to code it for your for ~10$.
If you decide to do so, make sure to check the code tho.
legendary
Activity: 2268
Merit: 18509
Is there a way to verify if the seed he's using is in charge of that address? If that is so, then it must be a derivation path issue, right?
There's no wallet which will automatically do this. It is the same situation as your suggestion above regarding creating an unsigned transaction. If you haven't found the correct derivation path, then the wallet won't be able to either.

Scanning or searching for addresses with zpubs is unlikely to be successful either since if the derivation path uses hardened derivation at any point, as all BIP 44/49/84 paths do, you cannot derive these levels using only the zpub.

You could potentially write some code which would scan thousands of derivation paths, but you would need your friend's seed phrase or zprv (master private key).

Edit: Actually, a bit of searching seems that this exact feature is currently in development for Electrum - type in your seed, and it scans for a variety of commonly used derivation paths and script types to see if have been used. Perhaps this could help your friend - https://github.com/spesmilo/electrum/pull/6219
member
Activity: 76
Merit: 35
Is there a way to verify if the seed he's using is in charge of that address? If that is so, then it must be a derivation path issue, right?
Maybe signing a message?
HCP
legendary
Activity: 2086
Merit: 4314
But you know that a different seed phrase will generate a different "@username", if it's new to their server, it will ask you to create a new user.
And Folio claimed in the OP that his friend generated the same wallet username when he restored from the backup seed phrase.
True. I had forgotten about that part of it... it's been a busy couple of weeks with lots of very early starts Tongue

So, I'm wondering if it just a Legacy/SegWit thing then? Huh
legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
I have a suspicion that o_e_l_e_o is correct... It's starting to look a lot like the classic "have (valid) seed for a different wallet" scenario Undecided
But you know that a different seed phrase will generate a different "@username", if it's new to their server, it will ask you to create a new user.
And Folio claimed in the OP that his friend generated the same wallet username when he restored from the backup seed phrase.

For the BIP39 passphrase, I don't think Coinbase wallet app has an option to enable it;
the PIN however is just an app security feature and I tried to load the same seed phrase with different PIN and both generated the same addresses.

If Folio's friend is telling the truth, this is an issue with Coinbase wallet app itself (I'll take it with a pinch of salt).
HCP
legendary
Activity: 2086
Merit: 4314
I have a suspicion that o_e_l_e_o is correct... It's starting to look a lot like the classic "have (valid) seed for a different wallet" scenario Undecided

I've seen a few instances on these forums of users that have been experimenting/testing wallet applications and have setup multiple wallets (accidentally or deliberately). Then they end up with a situation where they think they have the correct seed mnemonic written down, but are in fact using a wallet derived from a completely different seed.

Inevitably, "Murphy's Law" strikes and they lose access to the wallet (computer failure, lost password etc)... then they go to restore... only to discover the seed they have derives a completely different wallet and they're like "W.T.F??!?" Undecided


With his public key I can see these addresses and his transactions, but not the one he wants.

https://talkimg.com/images/2023/11/15/zfO4I.png
What I find a bit confusing tho, is that apparently you found some transactions/coins... but not others??!? Huh

As I mentioned earlier, it's possible that the wallet was doing strange stuff and had both Legacy/SegWit addresses... and so was actually using multiple derivation paths for the one wallet... or it was generating SegWit address off "Legacy" derivation paths or vice versa...

So, the address that you couldn't find... it it SegWit or Legacy?
member
Activity: 76
Merit: 35
I'm still not convinced this is a derivation path issue. As HCP showed on the previous page, a seed phrase generated by the Coinbase Wallet App imports no problem in to Electrum and Ian Coleman, and both show the correct addresses at the default derivation path. He also shouldn't have two zpubs - there is only one master private key and one master public key per seed phrase.

This sounds more like either a seed phrase or a passphrase issue to me than a derivation path issue.



Yes it's weird that coinbase didn't show that address once he logged back in.

The 2 different public keys are explained (I think) by the fact that he manually modified the derivation path on electrum.
legendary
Activity: 2268
Merit: 18509
I'm still not convinced this is a derivation path issue. As HCP showed on the previous page, a seed phrase generated by the Coinbase Wallet App imports no problem in to Electrum and Ian Coleman, and both show the correct addresses at the default derivation path. He also shouldn't have two zpubs - there is only one master private key and one master public key per seed phrase.

This sounds more like either a seed phrase or a passphrase issue to me than a derivation path issue.

member
Activity: 76
Merit: 35
Would it work?
No. The wallet still needs to know which derivation path to look for the private key in question. It will only be able to sign the transaction if you have found the correct derivation path and told the wallet what it is. If you can't find the path, then the wallet won't be able to either.

Has he had any response from Coinbase yet?

No, nothing.
Isn't it absurd that you can't find the derivation path having the address? No one tells you to write down your derivation path when you open a wallet.
legendary
Activity: 2268
Merit: 18509
Would it work?
No. The wallet still needs to know which derivation path to look for the private key in question. It will only be able to sign the transaction if you have found the correct derivation path and told the wallet what it is. If you can't find the path, then the wallet won't be able to either.

Has he had any response from Coinbase yet?
member
Activity: 76
Merit: 35
What if he does this:

1. creates a watching-only wallet with the interested address
2. selects the address with the money and sets up a payment transaction toward an address that he controls
3. saves the transaction to a .psbt file
4. open a new wallet with his seed
5. load the transaction from the file, sign it and broadcast it


Would it work? Even if the address does not show in the wallet, that's the private key so it should still sign the transaction without any issue, right?
member
Activity: 76
Merit: 35
And here coinbase wallet says that they change the addresses after transactions so that you never use the same address twice https://help.coinbase.com/en/coinbase/privacy-and-security/data-privacy/why-did-my-wallet-address-change
That help page is talking about Coinbase exchange accounts, and not about the Coinbase Wallet app, which are two different things.

With his public key I can see these addresses and his transactions, but not the one he wants.
Try changing that derivation path to m/0, m/2, m/3, etc., and seeing if anything shows up. Note that if the derivation path does follow BIP84 as it seems to from HCP's screenshots above, then you won't be able to find the address with only the master public key due to the hardened derivation.

How can he give me a Xpub and a Ypub, so that I can scan them also on that website?
xpubs and ypubs will not generate "bc1" addresses by default without some tinkering, and I would suspect it is highly unlikely that Coinbase will have done something non-standard like this. If you really want to look at them too, then your friend will need to import his seed in to Electrum, and select either "legacy (p2pkh)" for the xpub or "p2sh-segwit (p2wpkh-p2sh)" for the ypub on the wallet creation screen.

Mmh, interesting. I will make him open a new wallet with electrum using the legacy or p2sh-segwit option then. Although I doubt that's going to do anything given that the address with the money starts with bc1 so it should be segwit.



I really don't understand why he has TWO zpubs... he should only have one...

It's ridiculous, why would the derivation path change? I understand the address but the derivation path too?
I doubt that it has changed... what you are seeing is the "change" addresses from his wallet...

When you send Bitcoin, you often end up with change (read here to understand why)... HD wallets adhering to the BIP44 spec generate a separate group of addresses for this purpose... as per the derivation path format:
Code:
m / purpose' / coin_type' / account' / [b]change[/b] / address_index

Because of the way Electrum works, when you put the seed in, it actually derives the master private and public keys at the account level... and stores those in the wallet file. So it's basically "hiding" the m/84'/0'/0' part from you... and you need to use the m/0/x and m/1/y paths to find the receive and change addresses, respectively.

That fact that you can see "used" addresses on the m/1/0 path, indicates that the address you have found is a "change" address... you should be able to see other active addresses on the same public key using m/0/0


Having said that... something seems REALLY off here:


That is technically a "change" address, but the sending address in the transaction that it received coins from is an old Legacy address... so... either:

1. The Coinbase Wallet App is setup to ALWAYS use SegWit change addresses (regardless of sending address type)
or
2. The Coinbase Wallet App gave out a "change" address as a receive address


Can you ask your friend if he recognises either of the "1" addresses in this transaction: https://www.blockchain.com/btc/tx/ac14d45dfa3bfdc5ab026643ab214d2821fe245b401ace85fe01d29583285735

15FfborJuBXicY93ymX9QPf9nrQ6mHeH3k
and
1JuYbj6L8UCtBF5cJHFPaNb3kJEJcPXN8h

Are either of these addresses his? or does he remember receiving from 15FfborJuBXicY93ymX9QPf9nrQ6mHeH3k or sending to 1JuYbj6L8UCtBF5cJHFPaNb3kJEJcPXN8h? Huh

He gave me 2 different zpub public keys because I made him open different wallets on electrum trying to manually change the derivation path with some that I found online.
Now I'll ask him to open a legacy wallet too, maybe that's the issue, no idea.
I'll ask him your question regarding those 2 addresses as well. Thanks
HCP
legendary
Activity: 2086
Merit: 4314
I really don't understand why he has TWO zpubs... he should only have one...

It's ridiculous, why would the derivation path change? I understand the address but the derivation path too?
I doubt that it has changed... what you are seeing is the "change" addresses from his wallet...

When you send Bitcoin, you often end up with change (read here to understand why)... HD wallets adhering to the BIP44 spec generate a separate group of addresses for this purpose... as per the derivation path format:
Code:
m / purpose' / coin_type' / account' / [b]change[/b] / address_index

Because of the way Electrum works, when you put the seed in, it actually derives the master private and public keys at the account level... and stores those in the wallet file. So it's basically "hiding" the m/84'/0'/0' part from you... and you need to use the m/0/x and m/1/y paths to find the receive and change addresses, respectively.

That fact that you can see "used" addresses on the m/1/0 path, indicates that the address you have found is a "change" address... you should be able to see other active addresses on the same public key using m/0/0


Having said that... something seems REALLY off here:


That is technically a "change" address, but the sending address in the transaction that it received coins from is an old Legacy address... so... either:

1. The Coinbase Wallet App is setup to ALWAYS use SegWit change addresses (regardless of sending address type)
or
2. The Coinbase Wallet App gave out a "change" address as a receive address


Can you ask your friend if he recognises either of the "1" addresses in this transaction: https://www.blockchain.com/btc/tx/ac14d45dfa3bfdc5ab026643ab214d2821fe245b401ace85fe01d29583285735

15FfborJuBXicY93ymX9QPf9nrQ6mHeH3k
and
1JuYbj6L8UCtBF5cJHFPaNb3kJEJcPXN8h

Are either of these addresses his? or does he remember receiving from 15FfborJuBXicY93ymX9QPf9nrQ6mHeH3k or sending to 1JuYbj6L8UCtBF5cJHFPaNb3kJEJcPXN8h? Huh
legendary
Activity: 2268
Merit: 18509
And here coinbase wallet says that they change the addresses after transactions so that you never use the same address twice https://help.coinbase.com/en/coinbase/privacy-and-security/data-privacy/why-did-my-wallet-address-change
That help page is talking about Coinbase exchange accounts, and not about the Coinbase Wallet app, which are two different things.

With his public key I can see these addresses and his transactions, but not the one he wants.
Try changing that derivation path to m/0, m/2, m/3, etc., and seeing if anything shows up. Note that if the derivation path does follow BIP84 as it seems to from HCP's screenshots above, then you won't be able to find the address with only the master public key due to the hardened derivation.

How can he give me a Xpub and a Ypub, so that I can scan them also on that website?
xpubs and ypubs will not generate "bc1" addresses by default without some tinkering, and I would suspect it is highly unlikely that Coinbase will have done something non-standard like this. If you really want to look at them too, then your friend will need to import his seed in to Electrum, and select either "legacy (p2pkh)" for the xpub or "p2sh-segwit (p2wpkh-p2sh)" for the ypub on the wallet creation screen.
member
Activity: 76
Merit: 35
He has given me 2 different Zpub public keys, from electrum.

How can he give me a Xpub and a Ypub, so that I can scan them also on that website?
member
Activity: 76
Merit: 35
Yes indeed, it doesn't make any sense. It should show period.
The only possible explanation that I can suppose is that the coibase wallet shows you the same addresses because you tried it with an empty wallet, whereas his was full. And here coinbase wallet says that they change the addresses after transactions so that you never use the same address twice https://help.coinbase.com/en/coinbase/privacy-and-security/data-privacy/why-did-my-wallet-address-change

So maybe coinbase wallet changed his address given that it was already used.

Anyways he said that he's giving me the seed in a week if coinbase doesn't fix this.


With his public key I can see these addresses and his transactions, but not the one he wants.
It's ridiculous, why would the derivation path change? I understand the address but the derivation path too?

legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
-snip-
Didn't work, all addresses are empty and that specific one doesn't show up.
HCP tried it and it worked, I have also done the same steps and it worked.
If you're sure that it restored the same username as the one he had set in the original wallet (used username can't be set to another wallet),
then the only way to resolve this is to wait for their response to your customer support inquiry because the backup should've restored the address using native SegWit's default derivation path.

There's also a chance that there's a corruption happened and that's out of their support's scope.

Or, is you "friend" your friend or another party of a deal?

Have you tried to tell your friend to access it through the browser and access it directly to coinbase.com?
"Coinbase App" and "Coinbase Wallet App" are two different applications. (weird naming system right?)
The former can be used in conjunction with the webpage, but the latter is a non-custodial wallet. (info)
HCP
legendary
Activity: 2086
Merit: 4314
I've tested this with the "Coinbase Wallet App"... created a "new" wallet... got the following seed:
Code:
river company grow smart ticket purity jeans south embark they cream atom

This gave me the following address in coinbase: bc1q4hjyxu8vnrqqeygz0laj4h4492je4qd6s5sdux


I then tried the seed mnemonic in both IanColeman's:






and in Electrum:





I also uninstaled/wiped the app and restore the wallet in that as well, and all 3 wallets yielded the correct addresses:








So, it is very strange that your friend has been unable to recover their wallet from the seed mnemonic. The only possibility I can think of, is that they have restored with a different seed mnemonic than the one they were using previously... however, coinbase assigns the username to the seed mnemonic somehow (I assume by attaching the username to the Master Public Key), so if you wipe the app and restore from your seed mnemonic, it will automatically reassign you the old username (ie. if you use my seed mnemonic above to restore a Coinbase wallet, it should give you the username @bct_test).

So, if the @ghfcvvhh username that it is showing when he restored the wallet in the coinbase app is identical to his previous username, then it should be the same seed mnemonic with the same addresses. Huh Huh Huh
legendary
Activity: 3234
Merit: 2943
Block halving is coming.
Have you tried to tell your friend to access it through the browser and access it directly to coinbase.com?

If not, try it first you must see all of your wallet with balances if he is using a mobile you can use the built-in browser or chrome browser to access the coinbase.com and login there.

This is the only thing that I think will work if the above suggestion does not work because I have wallet created on apps before and I can also access it through their web version with history including the other wallet generated from Coinbase app(Much better try it on the PC/Laptop).
member
Activity: 180
Merit: 38
m/84'/0'/0' == bip84 == bc1 == zpub

If you have the keys you do not need any coinbase wallet at all.
You can import them into any application that is able to handle the protocol and your friends funds will be spendable immediately.

Hey by the way what do you mean with bip84? When he made the wallet and writes the seed in electrum (12 words), you can't click next. So I told him to press the option button and select bip39 so that he could click next (and also because as far as I know the seed phrase is taken from the bip39 list).
Could this bip84/bip39 be the issue???

Bip39 is related to the Mnemonic Phrase see:
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki

Bip84 to the derrivation path see:
https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki

You can use this page also https://iancoleman.io/bip39/

If you want to import Bip39 seed into electrum you have to specify this in the options because it is not a default input.
member
Activity: 76
Merit: 35
m/84'/0'/0' == bip84 == bc1 == zpub

If you have the keys you do not need any coinbase wallet at all.
You can import them into any application that is able to handle the protocol and your friends funds will be spendable immediately.

Hey by the way what do you mean with bip84? When he made the wallet and writes the seed in electrum (12 words), you can't click next. So I told him to press the option button and select bip39 so that he could click next (and also because as far as I know the seed phrase is taken from the bip39 list).
Could this bip84/bip39 be the issue???
member
Activity: 76
Merit: 35
m/84'/0'/0' == bip84 == bc1 == zpub

If you have the keys you do not need any coinbase wallet at all.
You can import them into any application that is able to handle the protocol and your friends funds will be spendable immediately.

But he tried atomic wallet, exodus, and electrum. With electrum he even tried different derivation path.
These wallets only show him empty addresses.
member
Activity: 76
Merit: 35
He gave me 2 different public keys when we were trying different kinds of derivation paths. (is this normal)?
There is only one master public key per derivation path, so he must have given you keys from two different derivation paths.

I mean with it you can only watch all his transactions right? Nobody can enter a wallet with a public keys as far as I know.
That's correct, unless he also accidentally reveals a private key. The combination of a master public key and a private key is enough to completely empty his wallet.

The address that I found starts with bc1 and he does recognize the transaction. It's this one.
It seems like that is a good starting point to go from them. What was the derivation path you used to find the address involved in that transaction?

I have uploaded the image of that address. The derivation path is m/0
member
Activity: 180
Merit: 38
m/84'/0'/0' == bip84 == bc1 == zpub

If you have the keys you do not need any coinbase wallet at all.
You can import them into any application that is able to handle the protocol and your friends funds will be spendable immediately.
legendary
Activity: 2268
Merit: 18509
He gave me 2 different public keys when we were trying different kinds of derivation paths. (is this normal)?
There is only one master public key per derivation path, so he must have given you keys from two different derivation paths.

I mean with it you can only watch all his transactions right? Nobody can enter a wallet with a public keys as far as I know.
That's correct, unless he also accidentally reveals a private key. The combination of a master public key and a private key is enough to completely empty his wallet.

The address that I found starts with bc1 and he does recognize the transaction. It's this one.
It seems like that is a good starting point to go from them. What was the derivation path you used to find the address involved in that transaction?
member
Activity: 76
Merit: 35
The username is irrelevant - it is an unique feature of Coinbase's wallet and is used by Coinbase to let you send funds to other Coinbase wallet users and invade your privacy. It is unrelated to either the seed phrase or the addresses.

The public key he gave you - what letter did it start with? x, y, or z?

The transaction that you found - what letter or number did the associated address start with? Does he recognize the transaction? Did he make it?

He gave me 2 different public keys when we were trying different kinds of derivation paths. (is this normal)?
They both start with zpub.
If you want I can give it to you. I mean with it you can only watch all his transactions right? Nobody can enter a wallet with a public keys as far as I know.
Plus once he gets access to this address with the money I already told him to move everything out of coinbase.

The address that I found starts with bc1 and he does recognize the transaction. It's this one.

https://i.imgur.com/6EtoM6L.jpg

It may be important to state: when I searched the first public key he gave me, this site found no used addresses.
When he gave me the second one, the site found this one that I posted.


legendary
Activity: 2268
Merit: 18509
The username is irrelevant - it is an unique feature of Coinbase's wallet and is used by Coinbase to let you send funds to other Coinbase wallet users and invade your privacy. It is unrelated to either the seed phrase or the addresses.

The public key he gave you - what letter did it start with? x, y, or z?

The transaction that you found - what letter or number did the associated address start with? Does he recognize the transaction? Did he make it?
member
Activity: 76
Merit: 35
This is the address that received the fund

https://i.imgur.com/NRhWOPK.jpg

This is the username he had on coinbase wallet

https://i.imgur.com/xjpKL1z.jpg

This is the screen he got when he logged back into the app. The transactions were gone and the funds too, because the coinbase wallet gave him other addresses and for whatever reason the address with the money doesn't show anywhere
https://i.imgur.com/UUJuiIi.jpg
legendary
Activity: 2268
Merit: 18509
Are the incorrect addresses you are generating starting with "bc1" or with something else?

If you are sure the seed phrase is correct (and there is no passphrase associated with the above address, but I don't think Coinbase wallet even offers this), then your options are either to share the zpub with someone you think can help (being aware of the privacy implications of this), or simply wait for Coinbase to respond.

Is the seed you are using backed up from the old Coinbase wallet before he uninstalled it, or from the fresh install?
member
Activity: 76
Merit: 35
If nc50lc's suggestions don't work, then rather than just trying trial and error to stumble on the correct derivation path you would be better off contacting Coinbase through their support pages and asking specifically for the derivation path which leads to that address. You can find their support pages here: https://help.coinbase.com/en/contact-us.html

I also found this issue on Electrum's GitHub (https://github.com/spesmilo/electrum/issues/6015), where the user said they imported a Coinbase phrase and recovered the SegWit addresses without issue. I would make sure you selected "native segwit" as opposed to manually changing the derivation path. Did the incorrect addresses you generated in Electrum start with "bc1"?

He's already contacted coinbase. They asked him for the txid but they said they'll reply within 5-7 days.
member
Activity: 76
Merit: 35
The address is Native SegWit so it couldn't be anything other than: m/84'/0'/0' for BIP84 or m/0 if Coinbase is using BIP141 for SegWit.
Since it's Coinbase Wallet App, it must be BIP84.
But for Electrum, you should first select "native segwit (p2wpkh)" before editing the derivation path;
otherwise, It'll create legacy addresses despite the change of derivation path.

There's also a chance that the address is at higher index than Electrum's default of 20,
in that case, try to create more addresses by typing this in the console (View->Show Console):
Code:
[wallet.create_new_address(False) for i in range(200)]
Then restart Electrum.
Change "False" to "True" if you want to generate change addresses.

Lastly, sharing the address' public key wont help anyone in finding the correct derivation path.
It should be the "Master Public Key" (zpub), but that will cause your 'friend' privacy issues.

Didn't work, all addresses are empty and that specific one doesn't show up.
legendary
Activity: 2268
Merit: 18509
If nc50lc's suggestions don't work, then rather than just trying trial and error to stumble on the correct derivation path you would be better off contacting Coinbase through their support pages and asking specifically for the derivation path which leads to that address. You can find their support pages here: https://help.coinbase.com/en/contact-us.html

I also found this issue on Electrum's GitHub (https://github.com/spesmilo/electrum/issues/6015), where the user said they imported a Coinbase phrase and recovered the SegWit addresses without issue. I would make sure you selected "native segwit" as opposed to manually changing the derivation path. Did the incorrect addresses you generated in Electrum start with "bc1"?
legendary
Activity: 2394
Merit: 5531
Self-proclaimed Genius
The address is Native SegWit so it couldn't be anything other than: m/84'/0'/0' for BIP84 or m/0 if Coinbase is using BIP141 for SegWit.
Since it's Coinbase Wallet App, it must be BIP84.
But for Electrum, you should first select "native segwit (p2wpkh)" before editing the derivation path;
otherwise, It'll create legacy addresses despite the change of derivation path.

There's also a chance that the address is at higher index than Electrum's default of 20,
in that case, try to create more addresses by typing this in the console (View->Show Console):
Code:
[wallet.create_new_address(False) for i in range(200)]
Then restart Electrum.
Change "False" to "True" if you want to generate change addresses.

Lastly, sharing the address' public key wont help anyone in finding the correct derivation path.
It should be the "Master Public Key" (zpub), but that will cause your 'friend' privacy issues.
legendary
Activity: 2170
Merit: 3858
Farewell o_e_l_e_o
From block explorer: the amount of Bitcoin still be in that address.
Check:

It means his fund is fine so that you and your friend can stop worrying about it too much. I am not familiar with Coinbase so the others will help you out.
member
Activity: 76
Merit: 35
We can give you the public key if it helps in finding out which derivation path is correct.
member
Activity: 76
Merit: 35
Hi, so my friend has a coinbase wallet (stupid, I know). So he has 0.22 btc in this address

bc1q6lm6xa4fgcfxhvge06q3x2j0unqth4k3q56az0

he uninstalled his coinbase wallet app and then he installed it again. The app gave him the same username of course, but it gave him a total new address, which of course is empty.

I've read that coinbase wallet does this to improve privacy by changing addresses all the time. The problem is that now my friend can't get access to his address again.
I tried to help him to get back to it via Electrum but we failed. We tried 3 different derivation paths

m/44'/60'/0'/0/1

m/44'/60'/0'/0/0

m/84'/0'/0'

all the wallets created with his seed (that he has and is correct) and these derivation paths are empty. So it must be another derivation path.

Can we know the exact derivation path so that he can get access to his address with his money inside?

Jump to: