Earlier, I was manually testing these seeds using the Electrum desktop client. I did: Standard Wallet > I already had the seed> then entered the seed and checked Options/Bip 39 seed > native segwit > no password
and then I checked the balance.
This will work, provided the caveats regarding derivation paths that I have outlined below.
Wallet Address is: bc1qyw9dcldzl6jaam0rdz5 (in particular, it starts with bc1)
I assume you have only shared part of the address for privacy reasons? This is not a full address.
My biggest concern is that I am only checking one wallet address, and if so, I don't know if i'm doing the right derivation path.
You need some more information from your friend. How did he use his Nano X? He must have set it up with Ledger Live. How many different bitcoin accounts did he create? Was it only 1? If it was more than 1, did that address you've shared definitely come from the first account?
If he only made one account and/or that address is definitely from the first account, then it will be under derivation path m/84'/0'/0' (this is displayed by Electrum on the screen where you select "native segwit" in your steps above). If the address is part of a different account, it will not show up in Electrum under this derivation path even if you are using the correct seed. To check other accounts, you need to go through the exact same steps above, but change the derivation path to m/84'/0'/1' for account number 2, m/84'/0'/2' for account number 3, and so on.
There is software known as "btcrecover" (available here:
https://github.com/gurnec/btcrecover) which will automatically check all the seeds for you. However, it is no longer kept up to date and doesn't work with bech32 (bc1) addresses. There is a fork of it here (
https://github.com/3rdIteration/btcrecover) which apparently does support bech32 addresses, but I haven't used this fork myself so cannot verify this. Anything you do with this should be on an offline computer (preferably permanently offline) for your own safety.
Follow the instructions to enter the full address which has coins in it, the best guess of your seed, and let it run. It will check as many seeds as it can to see if any of them contain that address. If the address is in the first account (derivation path m/84'/0'/0')
and your best guess at the seed is close enough, then this script should find it. If you think the address was from an account other than the first one, then I would imagine it would be fairly simple to alter the code to check different accounts, but as I say, I've not used this fork myself so I can't confirm that.