Dead node, how do I get BTC back from LN from 24 words seed?


My node died, I have 24 words seed but I don’t have lightning channel backup file. I only have 1 channel and the other party have already closed the channel with me while I was offline.

How do I get my BTC back? do I have to wait for a few weeks?

You can use the 24 word seed in Bluewallet. Sometimes your balance doesn’t reflect the same between Bluewallet and Umbrel so be aware of this. Not sure how long before those funds will hit the wallet. Could be anywhere between a few blocks up to a couple weeks. You can see the last transaction once you import the wallet to Bluewallet to see if the lightning channel transaction has confirmed.

Yes I can see the BTC balance but I don’t see the balance from the LN. I can’t close the LN channel as I don’t have access to the channel backup file.
I believe I have to wait a few weeks to get the BTC back to the wallet?

I experienced the same thing with Bluewallet. My guess as to what is going on is that Bluewallet is unable to see the funds returned from channels (for some reason that I can’t explain).

Either way, if your channel partner has already force closed, you should be able to use a block explorer to find your closing transaction, along with the lock time of the transaction.

I would restore on Umbrel (or another LND implementation) to be certain you’re going to be able to find it.

Yes as @fireworksuprise said you can check the txid along with the time lock

If you can gain access to your node through SSH you maybe brave and take a look some of the internals:

ssh: umbrel@umbrel: cd ~/umbrel/bin
ssh: umbrel@umbrel:~/umbrel/bin $ ​bash lncli --help

exportchanbackup - Obtain a static channel back up for a selected channels, or all known channels
​verifychanbackup - Verify an existing channel backup
restorechanbackup - Restore an existing single or multi-channel static channel backup

Please be careful when messing directly with your node

Thanks. here’s the closing hash, how do I check time lock?

Please note that I don’t have access to channel backup with the dead node. I only had one channel open which was forced closed while I was offline and only have the 24 words seed.

Hi @satosh1,

1. Start by checking your TX

You can see your transaction/payment channel here on a LN Explorer: (query it here)

I have included the output (below)


policy details

from `satoshi_LM_bot`|base fee (sat)|fee %|delay (min HTLC locktime)|update|
| --- | --- | --- | --- |
|1|0.0001|40|2021-07-26 08:53:03|
from `03f9766594831b459b23`|base fee|fee %|delay|update|
| --- | --- | --- | --- |
|1 sat|0.0001|40|2021-07-29 08:50:22|

onchain transactions

||block|transaction|fee paid|
| --- | --- | --- | --- |
|open|[692597](|[5bc1af76f0150c3dd86d2c1b68db442652c971bb3686ee97f670ce3e1c6e8c4f](|177 sat|
|close|[694550](|[0add2fa8c76a6ff90c42489867a6f51edbaafbf13975f373851380bb2b1e4c59](|544 sat|

2. Read this guide on Recovery

Read this guide (Medium Link below):

Basically, we want to interact with your LND daemon on your node.
We are aiming to issue commands to your node to restore the "channel.backup" file which could be on your system as it could be created by default, automatically.

  1. If you can connect to your Umbrel node, you can do this over SSH / Terminal into your node then navigate to your LND CLI (If you have access to it ?) [recursive method]
ssh <change to your IP>
  1. Change Directory to your lnd-cli
$ cd /home/umbrel/umbrel/bin
  1. Then List directory with argument -al to reveal your lnd daemon
umbrel@umbrel:~/umbrel/bin $ ls -al
total 16
drwxrwxr-x  2 umbrel umbrel 4096 Aug  5 16:43 .
drwxr-xr-x 18 umbrel umbrel 4096 Aug 17 02:43 ..
-rwxrwxr-x  1 umbrel umbrel  323 Aug  5 16:43 bitcoin-cli
-rwxrwxr-x  1 umbrel umbrel  313 Aug  5 16:43 lncli
  1. To interact with the LN Daemon you need to issue the “bash” command:
umbrel@umbrel:~/umbrel/bin $ bash lndcli --help
  1. Switch the - -help command with the commands in the guides to try and recover your funds.

These are the commands you will need to utilise:-

$ lncli restorechanbackup [command options] [–single_backup] [–multi_backup] [–multi_file]
–single_backup value - a hex encoded single channel backup obtained from exportchanbackup
–multi_backup value - a hex encoded multi-channel backup obtained from exportchanbackup
–multi_file value - the path to a multi-channel back up file

  1. Read the guide here: - Enable Channel Backups and fund Recovery on LND lightning network
    The aim is to restore your channels so that you can see/interact with your transaction through bash/ssh command line.

How to access your funds after the time lock has occurred?

To be honest I don’t know your exact situation and its kind of difficult to troubleshoot as I’m not hands on sort of speak.

I don’t want to suggest anything I am not 100% on which could possibly make things worse…

  1. Based on what you have already stated you don’t have the channel backup…
  2. The payment-channel was Closed unilaterally
  3. You do have your 24-word Recovery phrase

So, this is going to be a bit long winded as I am still getting to grips with this tech myself.

If you have access to the node via SSH you should be golden.

Query the LND

api.lightning (LND API Ref shell#closechannel)

  • In the reference documentation manual it states the following comment:
# Close an existing channel. The channel can be closed either cooperatively,
# or unilaterally (--force).
# A unilateral channel closure means that the latest commitment
# transaction will be broadcast to the network. As a result, any settled
# funds will be time locked for a few blocks before they can be spent.
# In the case of a cooperative closure, one can manually set the fee to
# be used for the closing transaction via either the --conf_target or
# --sat_per_vbyte arguments. This will be the starting value used during
# fee negotiation. This is optional.
# In the case of a cooperative closure, one can manually set the address
# to deliver funds to upon closure. This is optional, and may only be used
# if an upfront shutdown address has not already been set. If neither are
# set the funds will be delivered to a new wallet address.
# To view which funding_txids/output_indexes can be used for a channel close,
# see the channel_point values within the listchannels command output.
# The format for a channel_point is 'funding_txid:output_index'.

$ lncli closechannel [command options] funding_txid [output_index]

# --funding_txid value   the txid of the channel's funding transaction
# --output_index value   the output index for the funding output of the funding transaction (default: 0)
# --force                attempt an uncooperative closure
# --block                block until the channel is closed
# --conf_target value    (optional) the number of blocks that the transaction *should* confirm in, will be used for fee estimation. If not set, then the conf-target value set in the main lnd config will be used. (default: 0)
# --sat_per_vbyte value  (optional) a manual fee expressed in sat/vbyte that should be used when crafting the transaction (default: 0)
# --delivery_addr value  (optional) an address to deliver funds upon cooperative channel closing, may only be used if an upfront shutdown address is not already set


  • So we know the channel was closed unilaterally (–force’ed)
  • This means that a number of blocks will need to be pass before HTLC (Time-lock) expires to unlocks your transaction.

If the medium article in step 2. has not resolved your issue the only alternative’s I can see is to

See, if waiting for the time lock to elapse and hopefully this will solve the problem and have it back into your wallet available to be spent.

Or if you have no luck using the cli maybe you could somehow use a light wallet like Blue Wallet to send out the sats after unlocked.

Apologies for such a bloated document.
I am researching this problem with you but I will try to update with a more thorough/complete answer after a little more research.

Try to glean some information from your log file you will need to pipe it out to a new file >>

umbrel@umbrel:~/umbrel/lnd/logs/bitcoin/mainnet $ cat lnd.log |grep <your txid>