Chantools recovery n00b question #131
-
Hi All, I ended up using the chantools. I'm not technical enough to understand anything in there but I was able to follow a youtube video on the topic which helped me install chantools and run the triggerforeclose command (https://www.youtube.com/watch?v=OcObiknVX5w). I got the forceclose transaction IDs showing up in mempool but it hasn't moved beyond this stage. Does everything look good to those who are knowledgeable?
Lastly, I have one TOR channel peer that I can't seem to figure out how to triggerforceclose with chantools. Any ideas and/or suggestions on where to proceed next? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 22 replies
-
The force close transactions are now in the mempool. The next steps will be:
For the Tor channel, you can use the just released version |
Beta Was this translation helpful? Give feedback.
-
Hi Guggero, I was able to inch forward with your guidance. However, the next step is also giving me problems. umbrel@umbrel:~/chantools-linux-arm64-v0.13.0$ ./chantools sweepremoteclosed --recoverywindow 300 --feerate 25 --sweepaddr bc1qxjmycglvyrynwu7a2qqz3gx90ef3mcu9np0x3s --publish Error: could not query API for addresses with funds: could not query unspent: error decoding data from API 'https://blockstream.info/api/address/bc1qhu0l0j6g66qdttn2c4dmld7q8420vjudsq6vreqdgep6hlne0e9sq077n3', server might be experiencing temporary issues, try again later; error details: invalid character '<' looking for beginning of value I promise to teach other people in the umbrel community when you help me through this! :) 🙏🙏🙏 |
Beta Was this translation helpful? Give feedback.
-
Recovering Channel Funds with Chantools: A Beginner's Guide Hello! If you're a newbie stuck in the process of recovering funds from closed Lightning Network channels, this guide is for you. I've learned quite a bit through this journey and received immense support from @guggero, whose contributions to chantools have been invaluable. Here’s a step-by-step guide to help you through: Step 1: Trigger Force Close MY SPECIFIC EXAMPLE: umbrel@umbrel:~/chantools-linux-arm64-v0.13.1$ ./chantools triggerforceclose --peer 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f@3.33.236.230:9735 --channel_point 8c1acbc8e6d42bd0ec8ce4743beea1a0a38e5551a8e02cf005b248a0a46b2a37:1 Find the peer's IP on platforms like 1ml.com. If there’s no IP, the process might get tricky, requiring alternative methods to contact the peer or close channels (more on that at the end). Let's continue assuming you have found your peer's IP. Your channel point can also be found here by looking at the channel tab: There will be an output like this that will give you your transaction ID: Assuming you successful Step 2: Pull Anchor After successfully force-closing your channels, use this command to pull the anchor: MY SPECIFIC EXAMPLE: umbrel@umbrel:~/chantools-linux-arm64-v0.13.1$ ./chantools pullanchor --anchoraddr bc1quevkxg25hsj0y0tvwqxlupxy27xpntf6aqcz3mw9k2cn8ly8vytsfy7xrd --sponsorinput dc021c7114a0f0dfae9ad592a67db3874a7f2cfc9024a789eda2d50dcf91967d:0 --changeaddr bc1qxjmycglvyrynwu7a2qqz3gx90ef3mcu9np0x3s --feerate 30) Locate the anchor address and sponsorinput by exploring the transaction details in a block explorer like mempool.space. Here is my specific example: https://mempool.space/tx/12f08e21ab674c7dd7f8d7000a57709d17e0c40e612ac92fe4d51afd06b791c2 The --anchorddr is either one of the two 0.00000330 BTC addresses that I circled here: Note: if your command fails, try again with the alternative address and see if it works. A --sponsorinput can be found by running lncli listunspent and choosing one of the addresses that's large enough --changeaddr is your BTC wallet address or you can put in fromseed Step 3: Sweep Remote Closed This command helps you sweep funds from remotely closed channels: MY SPECIFIC EXAMPLE: --sweepaddr is your BTC wallet address or you can put in fromseed Ensure all listed addresses in your outputs are confirmed to successfully run this command. If your attempt In my case, I needed to use the gugger.guru API. Here's what the command looked like: MY SPECIFIC EXAMPLE #2: If it works it should look like this: Each unspent output address can be found in your original Triggerforcelcose ID's: Note on Executing Sweepremoteclosed: May you encounter no issues in obtaining the IP addresses for your counterpart's node and find this guide useful. Goodluck! |
Beta Was this translation helpful? Give feedback.
Cool that the
triggerforceclose
command worked! Now you just have to confirm the 4 transactions. You will always get thenon-BIP68-final
error as long as any of the 4 transactions says "unconfirmed" on mempool.space.So you must use the
pullanchor
command to get them confirmed (or wait until they do on their own, which could still take quite a while with the current mempool conditions).