Not sure how where to find funds or how to restore wallet

Hi guys,

I recently tried to move Cardano tokens from a Yoroi Shelley wallet to a Ledger Nano X wallet. I was having a transaction error staking so I tried to resolve this by connecting to adalite however there were no funds showing in the account despite being able to see the funds in the wallet in the Yoroi app.

I then uninstalled the app and then tried to connect to the Ledger Nano X again but the address used to receive funds is no longer visible and my funds are also nowhere to be found. When I search the address in cardanoscan.io I can see that the funds are still in that wallet but I just don’t know how to access it.

I have the wallet and transaction ID for sending from Yoroi to my Ledger, can someone please advise how I can restore the wallet or retrieve my funds?

Thanks

When you say “Yoroi Shelley wallet” do you mean a wallet that was not controlled by your Ledger i.e. you have the 24-words for that wallet?

Yes it’s a wallet created in the Yoroi app that’s ‘Shelley-Era’ but it’s 15 words rather than 24 and yes I have them. I restored this wallet and can see the transaction which I made from this wallet.

Ok, and the target address is one that is controlled by Ledger and you actually see in ADALite.io when you connect your Ledger to it?

The target address was one that was generated in Yoroi with the ‘GENERATE ANOTHER ADDRESS’ function for the Ledger Nano X wallet but I can’t see that one in adalite so I’m unsure whether it is controlled by Yoroi or Ledger :confused:

I also just restored Nano Ledger X wallet to Yoroi using the 24 word phrase and cannot see any used addresses for it in Yoroi. Previously my Ledger wallet within Yoroi was showing one used address.

In that case, I’d say it is not clear who controls that target address. In ADALite you will see all addresses for each BIP44 account in the order of their respective derivation path (e.g. m/1852’/1815’/0’/0/0). In Yoroi it is a bit awkward because you don’t see the path information and Yoroi greys out addresses that were used already. The lowest index is likely at the bottom of the receive list - in ADALite, it is at the top.

Anyway, if that Tx does not show up on the ADALite account balance and you don’t see the address, it is likely that the target address is in fact not controlled by Ledger.

Yes I believe that to be the case as well as the address cannot be seen in adalite in the ‘My Addresses’ section but this doesn’t make sense as I generated an address for the Ledger Nano X wallet within Yoroi - in theory it should be a wallet controlled by Ledger right?

How exactly did you “generated an address for the Ledger Nano X wallet within Yoroi”?

Within the Ledger wallet that I had added to Yoroi, I used the ‘GENERATE ANOTHER ADDRESS’ button.

Ok, I tried this …

Here you see address /8 of account #1 on ADALite

This is also the current address in Yoroi

When I click in “Generate New Address”, I indeed get the next address (i.e. the one at index /9)

You can repeat this several times - Yoroi simply selects the next index in the BIP44 hierarchy - This is not surprising and expected.

Try this experiment and see if you can reproduce that. I’d say, the target address should be one of a lower index than you currently see in Yoroi. Unless of course you did something funky which selected an entirely different address space. i.e. another account or a ledger passphrase.

Okay yes I can reproduce that when I just connected to my Ledger via Yoroi again. Right now I’m thinking there’s a possibility that the wallet I sent the funds to was for a previous Ledger wallet which I no longer have the 24 seed key for. It appears the target address does not belong to my current Ledger wallet. Do you think that could be the case?

Strangely though, the Ledger wallet restored to Yoroi using the 24 word key appears to be different to my current Ledger wallet (i.e. the receiving addresses are different.)

That’s possible. Also, I assume you then copied that Yoroi address to some other place where you sent your funds from - in transit that clipboard content may got replaced/hacked. Perhaps you’d like to check that too? Your Ledger (device) would have displayed another address than the one you pasted to your source wallet.

Oh dear, I just confirmed that Yoroi generates “new addresses” without a Ledger even connected. So this thing is stateful and would happily generate addresses for a HW wallet that you no longer have.

From what I remember the target address matched the address showing in my Yoroi wallet so I don’t think a hack occurred. Now I’m very confused though about how/why the same Ledger wallet (i.e with the same 24 word seed phrase) for some reason shows two wallets with different addresses when connected to Yoroi.

To clarify, the old Ledger wallet I was referring to was for the same physical Ledger however I generated a new wallet (i.e. new seed phrase) by resetting the Ledger, rather than using a different Ledger device. I guess this problem could still be applicable though in that it might have sent funds to a ‘deleted’ wallet. Alternatively there’s a chance I may have actually reset my Ledger with the funds in it. I’m going to try and figure out whether this was the case. Also, thank you for your assistance!

Also to clarify … when you initialize/reset a Ledger it generates a large random seed. From that seed your primary private key is derived. The seed is also encoded (not encrypted) in 24-words according to the BIP39 standard. Ledger supports BIP44 - hierarchical deterministic wallets, which means that it can generate an infinite large address hierarchy from the root private key. The random seed is stored on a secure chip, which guarantees that the private keys never leave the device.

The address space is a function of those 24-words, not of the device. If you have your old random seed (encoded in that mnemonic), you can restore your old address space.

Unfortunately I don’t have the old random seed as it thought I would no longer need it, but I just remembered that when I was recently trying to transfer funds from the target address I currently can’t access, that it requested me to confirm the transaction via the Ledger, I believe this should mean that the target wallet address should in some way be linked to the Ledger wallet that is currently active. I think that also rules out the possibility of it belonging to a deleted wallet or the one that I no longer have the seed for. I’m not sure how to troubleshoot from here though. Any other ideas or assistance would be very very appreciated :pray:

There is generally no way to go from a given addr to a derivation path. You could check, whether it asked to …

  • confirm the transaction via the Ledger
  • confirm the transaction via a Ledger

In the later case the wallet would send the unsigned Tx to any attached Ledger, the Ledger would then not be able to sign the Tx because it does not control the TxIn.

As we’ve seen, Yoroi is a bitch when it comes to dealing with multiple HW devices. I can image that you can attempt to send funds on the basis of some stale state in the plugin and all goes well until stuff actually needs to happen on the attached HW wallet. It would not mean that the address that Yoroi tries to send funds from is actually controlled by the device that is (currently) attached to it.

I think there is a chance close to certainty, that the target address is not controlled by your current Ledger mnemonic. In which case you’d be left with remembering that old mnemonic, perhaps from some old encrypted backup?

Hmm I don’t know how to check whether it asked to confirm the transaction via the Ledger vs a Ledger, do you know how I could do that? But it seems like I’m screwed, that mnemonic is long gone, torn to shreds probably soon to be recycled. :sob: Thanks for your assistance.