pull down to refresh

The Background

I had some forced closed funds that went "missing" in Blixt wallet last year due to my early time's inexperienced and reckless - I want to restore it in another phone to see how things work, and I didn't know I should close all the channels before, so once you input the seeds to another wallet, it automatically forces close ALL channels! But one good thing I did was swap out most sats before the experiment - having curiosity and willing to try things is good, but always minimize the potential loss before being reckless!
I patiently waited for more than one day, and the strange thing was it did show some confirmed tx, but the sats weren't showing onchain... so where are my missing sats again?

Double Problem, Double Fun

The first thing I tried was exporting the seeds into Blue wallet to see if the sats would show up there, but little did I know that the onchian address type in Blixt is Taproot, and Blue wallet doesn't support that.
My knowledge back then was quite limited, so after a few trials, I wrote down what I did wrong and reminded myself never do that again, but the back of my mind was still trying to see if I could find the missing sats one day, so I kept the old Blixt with the seeds. ( really important! ) I have learned quite a lot about Bitcoin in the past few months, and given such nice low fee time recently, so I'm digging back into the old problems to see if I'm capable of solving them now; also, after solving the previous gap limit issue, I'm now more confident in dealing with challenging ones.
Identifying the problem is the first step in solving any problem.
Is the gap limit problem again? At first, I wondered if it was due to the gap limit problem I had solved before, then I tried to increase it, but no, it's not the same problem. However, I've learned something new this time: to increase the gap limit, you only need to input the master key instead of the seeds.
And I was a bit naughtily curious - I wanted to see if the wallet address really is no limit, so I tested with a gap limit of 1000, 2000, then to 10,000, and wow it really kept syncing, I'm really amazed that with only 12 or 24 words you can generate unlimited address! đŸ˜Č
How?
-- in Electrum: view - console
>>> wallet.change_gap_limit(10000) True >>> wallet.gap_limit 10000 >>>
-- in Sparrow: keystores page—advanced setting—adjust the gap limit, and done, but you can only set the max 999 there.
These are the fresh learned tricks, but I haven't started to solve the new problem yet! And as I kept reading and digging, I found out that there are actually two problems I needed to solve:
1. The Seed Format
The Blixt node's seed format is aezeed
This is different than the typical BIP39 format you see in most Bitcoin wallets, although it may appear to be similar. aezeed includes some extra data including the birth date of the wallet that will help rescans during recovery happen more efficiently.
So, if you put the aezeed into an unsupported wallet, e.g., if you put the aezeed directly into the Sparrow wallet, it shows an invalid checksum. The solution is to decode the seeds first or use the tool that natively supports this type of seeds—currently, both Zeus and Blixt support aezeed.
2. Taproot Address
There are not many wallets that support Taproot addresses at the moment, so when you import the seeds into the unsupported wallets, no problem here, but it can't be "read", so it's not showing any sats. However, not showing doesn't mean that your sats are gone! The solution is to use the wallet that supports the Taproot addresses.

Testing Time

I read few times of this guide from @Darthcoin, and I decided that Zeus should be the easiest solution, I also tested the other two methods just to see which one worked the best, and here was my experience on finding my missing sats from a dead Blixt node:

đŸ§Ș Zeus

I entered the seeds in a fresh Zeus in another phone, as you can only have one embedded LND node in each phone, and you can't delete the current one - the only way to try with the restoring process is to uninstall and install it again ( but if you do this, it will force closed all your existing channels ). Hence, it's better if you have another phone in hand.
How
Step 1. Open a fresh Zeus—Settings—Advanced setup—add a new embedded LND node.
Step 2. Enter the 24 seed words in the Recovery Cipher Seed (aezeed) then click restore mainnet wallet.
You can optionally provide a static backup string in the field labeled 'Disaster recovery data (SCB, Base64)' , but in my case, all I need is to enter the seeds because all the channels are already FC.
Step 3. Patiently wait, as it can take quite some time.
My Restoring Experience
First trial: it didn't load anything.
Second trial: I uninstalled and reinstalled it and tried again, it kept loading, but it was really slow, then I looked around and saw this
Alternatively, if you want a more manual approach, you may be able to spam the create on-chain address function to get all your addresses indexed in LND's DB and restore your balances. You will likely have to generate both Taproot and SegWit addresses for this approach to work. Since new addresses are generated every time you create an invoice, you may have to generate several hundred addresses of each type.
Then, after your addresses have been generated and indexed, use the 'Rescan' functionality under the Embedded Node settings.
so I manually created some Taproot addresses, clicked the rescan wallet and restarted it, and it did show some of the past onchain transactions, but then it kept crashing.
Third trial: I tried the same process one more time, and it loaded for a while, but no onchain transactions showed up.
Fourth trial: I changed the neutrino peers in the hope of increasing the syncing speed: setting—embedded node—peers—Neutrino Peers—deselect the default "connect only to the specified peers", then restart and check again, and still, nothing showed up.
( One good hack for monitoring what Zeus is doing in the background is to go to settings—embedded node—LND logs. )

đŸ§Ș Blixt

I entered the seeds in a fresh Blixt too, as I wanted to keep the old Blixt with the seeds in its original state until I solved this problem - don't touch the "crime scene" until you solved the puzzle.
How
Step 1. Open a fresh Blixt and choose the restore
Step 2. Enter the 24 seed words
In my case, all I need is to enter the seeds because all the channels are already FC.
Step 3. Patiently wait, as it can take quite some time.
My Restoring Experience
First trial: the onchain sync is done, and the wallet was restored and loaded to 15%, and it started to show some onchain transactions; however, the syncing shut down in the middle of the process.
Second trial: the onchain sync is done, and the wallet was restored and loaded to 9%; however, the syncing shut down in the middle of the process.
Third trial: the onchain sync is done, and the wallet was restored and loaded to 21%; however, the syncing shut down in the middle of the process.
Fourth trial: it was already 1 am, so I left the phone running and came back to check in the morning; it kept loading but still failed to restore. I also changed the peer to see if it could improve the speed - setting - stop and delete Neutrino files, but it's the same: really slow syncing.
( One good hack to monitor what Blixt is doing in the background is to click the LND log on the syncing in progress page. Or, if you want to check if the node is well synced, go to settings—show node data—check the Synced to Chain and Synced to Graph; if it's false, then it means the node is still syncing. )

đŸ§Ș Sparrow

I decided to give it a try with Sparrow wallet while I was waiting for both Zeus and Blixt to sync.
How
Step 1. Download this page and use it offline: right click and choose "save page as."
Step 2. Disconnect the internet and open the file that you downloaded
Go to the section "Decode mnemonic"—input the seeds into Mnemonic—choose "BTC (Bitcoin, Native SegWit, BIP84)"—copy the zprv showing in "HD node root key base58" for later use.
Step 3. Open Sparrow wallet—file—New wallet and name it—Create
  1. Choose "Tarpoot" in the setting script type
  2. Choose "New or Imported Software Wallet"
  3. Click Apply
  4. Click "Enter Private Key"
  5. Paste the zprv that you created from the previous decoding, import keystore, and click Apply.
Step 4. Patiently wait, as it can take quite some time.
My Restoring Experience
Guess what! 165k sats showed up in less than 5 mins:)

đŸ„ Results

Zeus: I was expecting to see at least some of the past transactions in Zeus, but unfortunately, nothing showed up after all these tests.
Blixt: At least I can see some of the past transactions in Blixt, but still, it failed to sync fully.
Sparrow: it restored my sats within 5 minutes while Zeus and Blixt were still syncing!
Hence, my testing of restoring funds from Aezeed and Taproot addresses, Sparrow wallet was the fastest, while Zeus and Blixt were still syncing. Also, other Bitcoiners recommended a great tool to restore onchain funds for any dead LND node, and you could also give it a try: chantools.

Takeaways

  • If you are facing any force closed problems from Blixt or Zeus and want to recover the onchain funds, I recommend using Sparrow. ( see the steps above )
  • It's better to empty most of the funds for experiments before you know what you're doing—risk control is important, and every sats is precious!
  • ALWAYS keep the seeds well because your Bitcoin NEVER leaves you, and stay calm if you have any "missing sats" because high chance is that you only lack the knowledge to "locate" it.
  • Keep testing and learning - patience you must have, and these troubleshooting experiences are really empowering! Especially in times when people just want to buy ETFs without dealing with any self-custody, but they will never be free, because freedom is self-responsibility.
May the sats always be with you!
Natalia is a very good padawan! I am proud of her ! Following my steps and guides, will take her to higher levels. Good job!
reply
and joining the memes makers!
reply
Now that you are into writing guides and making memes, I can retire from SN. My legacy is in good hands. I can go to finish my citadel.
and when she has reached and mastered all the wisdom that @DarthCoin can impart upon her, we will take over we are many
Wow this is very good info and very well laid out! I remember someone on Nostr asking about recovering sats from the same, if not similar, situation. I will send them here if I find them again. I will also be including this in my “Best of Stacker News” for March. đŸ€™
reply
glad you like it:)
reply
ha, never used the cryptography toolkit, now I know why Sparrow recovery didn't work for me, thank you. tbh, now that i know to use it, would use chantools again, seems faster and neat :) great work again
reply
thanks! and I haven't test with chantool yet, it seems quite complicated now that I know how to use Sparrow for it. 👀
but would you like to share your fun experience?
reply
0 sats \ 3 replies \ @Lux 14 Mar
feels very empowering using the terminal commands, like doing magic with words :)
reply
that's how I feel learning about the gpg!
reply
0 sats \ 1 reply \ @Lux 14 Mar
i've been procrastinating on that
reply
I should get my new post ready then! 👀
reply
Thank you for this guide!
reply
it would come in handy when "that day" comes. 👀
reply
I hope it wont, but I bookmarked it. Already had the "experience" of recovering a dead LND node. Its a fucking pain in the ass.
reply
Yay, a post! :D I hope this is the start of many more. Was this to celebrate making it into the MSM top 10? :D
reply
haven't checked my rank yet, and it's too early to check - keep doing the work and staying humble is the way! 👀
reply
Wise words
reply
reply
I admit that I watch it every day, but since I'm hidden, I'm not entirely sure of my position.
reply
There is a Telegram group too where experienced noderunners help with this kind of issues. Nitesh and others helped me recover some funds at some point when Umbrel screwed up one of their updates. Community is amazing. As proven by this guide. Keep it up and thanks for sharing!
reply
33 sats \ 0 replies \ @OT 14 Mar
Thanks for sharing!
I had a similar problem a while back but was too cautious to use the aezeed conversion tool.
I just entered the seed into Zeus and it came up. Blue wallet and bit banana should work too.
reply
Nice guide, however similar steps did nothing for me. Sats just would not show up in the wallet.
Zeus wallet team member suggested using chantools to sweep the sats and it helped. So if your sats do not show up during a recovery process, don't give up just yet.
reply