Skip to content

Commit f431434

Browse files
committed
Timelock Recovery Extension
1 parent b88d9f9 commit f431434

File tree

6 files changed

+1569
-0
lines changed

6 files changed

+1569
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from electrum.i18n import _
2+
3+
fullname = _('Timelock Recovery Utility')
4+
description = ''.join(["<br/>",
5+
_("This plug-in allows you to create Timelock Recovery Plans for your wallet."),
6+
' See: <a href="https://timelockrecovery.com">timelockrecovery.com</a>',
7+
])
8+
9+
available_for = ['qt']
10+
version = '0.1.0'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
Timelock Recovery is a mechanism which, in case of a catastrophic event
2+
(death or lose of your master key), can send your Bitcoin to a secondary wallet of your choice
3+
within a time-window (i.e. 90 days).
4+
<br />
5+
During that time-window, you can see that the Timelock Recovery mechanism has been triggered (a
6+
transaction from your wallet to itself is created on the Bitcoin blockchain), and if this
7+
has happened against your will, you can use your master key to cancel the process (by moving
8+
the funds elsewhere before the time-window expires).
9+
<br />
10+
The implementation of Timelock Recovery is done with two transactions that are signed in advance,
11+
but broadcasted only when needed:
12+
<ol>
13+
<li>
14+
An <i>Alert Transaction</i> which sends the funds from the wallet to itself (consolidating the UTXOs).
15+
</li>
16+
<li>
17+
A <i>Recovery Transaction</i> which sends the funds to a secondary wallet of your choice and can
18+
be added to the blockchain only X days after the <i>Alert Transaction</i> has been broadcasted (and mined).
19+
</li>
20+
</ol>
21+
Optionally, this extension will also let you sign-in-advance a <i>Cancellation Transaction</i> which can be
22+
used to cancel the Timelock Recovery process, by broadcasting it before the time-window expires.
23+
If the <i>Alert Transaction</i> has been broadcasted, the Cancellation Transaction will send the funds again to
24+
the same wallet, which would invalidate the <i>Recovery Transaction</i> (technically: the <i>Recovery Transaction</i>
25+
will be seen as a transaction that is trying to spend a UTXO that has already been spent).
26+
<br />
27+
Timelock Recovery plans do not require any involvement of a third party.
28+
However, two precautions should be taken:
29+
<ol>
30+
<li>
31+
Due to the way Bitcoin transactions and UTXOs work, spending funds from the wallet might break
32+
the entire Timelock Recovery plan.
33+
</li>
34+
<li>
35+
Adding more funds to the wallet will not be covered by the Timelock Recovery plan.
36+
</li>
37+
</ol>
38+
<br />
39+
Therefore it is highly recommended not to use the wallet for any purpose after creating a
40+
Timelock Recovery plan (other than long-term storage).
41+
Instead, for daily purposes use a separate wallet (with a seed in a place that
42+
your loved ones could easily find) and only after accumulating enough funds relevant for long-term
43+
storage, move them to a new highly secured wallet (i.e. with a long passphrase that only you memorize) for
44+
which you create a new Timelock Recovery plan (back to the daily-purpose wallet or to your inheritors' wallet).
45+
<br />
46+
Each accumulation should be done in a new highly secured wallet, but these are easy to create, i.e. you can
47+
memorize a long passphrase and add a counter at the end (1 for the first accumlation, 2 for the second, etc.).
48+
<br />
49+
For more details, visit: <a target="_blank" href="https://timelockrecovery.com" rel="noopener noreferrer">https://timelockrecovery.com</a>.
50+
<br />
51+
Before we begin, please note:
52+
<ol>
53+
<li>
54+
Please prepare in advance the addresses of your inheritors/backup-wallets.
55+
</li>
56+
<li>
57+
Since we are preparing this recovery plan for the long future, it is hard
58+
to estimate what the required fees will be.
59+
If the fee is too low, your inheritors, who don't have access to the master
60+
keys, will not be able to simply "replace-by-fee" and use a higher fee.
61+
At the moment of writing this code (year 2025) this is not a big deal, because
62+
there are acceleration-services, such as
63+
<a target="_blank" href="https://mempool.space/accelerator" rel="noopener noreferrer">
64+
mempool.space's accelerator
65+
</a>, that allows to boost selected transactions for direct payment.
66+
Just in case this service will not be available in the future, the
67+
<i>Alert Transaction</i> will send a small amount of 600 sats to each
68+
destination address. This will allow advance users to boost the
69+
first transaction by spending their unmined UTXO in a mechanism called
70+
Child-Pay-For-Parent.
71+
</li>
72+
</ol>

0 commit comments

Comments
 (0)