I'll assume you are fairly familiar with Taproot high-level principle, mainly key path spend vs script path spend.
On the pure Bitcoin front, the wallet works with a deadman-switch: you set Taproot scripts spend-path, each corresponding to one of your heirs, each with a timelock you decide. As the owner, you use the key spend-path anytime you want. In order to reset the deadman switch, you just spend your coins, thus moving them on a new address with updated timelocks. If you cannot spend using the key path, for whatever reason, then the timelocks of the scripts spend-path will expire and allow your heirs to spend. More on that in
https://btcherit.com/docs/why-heritageNote that it also works as a backup access solution if you lose your "main" keys: you create a backup wallet and use it as your first heir (does it answer your point on preventing loss, or did I misunderstood?).
The service does not hold any private key, in that sense it is non custodian: it has no way of spending the funds. If you use the service, it will store the Bitcoin Descriptors of your wallet, i.e. all the inheritance configurations you created. As such, the service knows exactly what are your addresses, what funds they currently hold and at what point in time the alternative script spending paths will open. Using these informations, the service knows when it needs to start urging you to reset the deadman switch (currently 30days before the first script spending-path opens). If you don't do so and a script spending path opens, then it notifies the corresponding heir, then the next, then the next, ...
The service currently notifies by email only, but at some point it could also use phone numbers for examples. Of course, you are providing the contact infos of your heirs to that effect.
If one of your heirs register with the service using an email address you declared for them, they will see their inheritance (provided their corresponding script path is open, else they don't see anything). The service will be able to generate the appropriate unsigned transaction so that they can claim the coins. It is expected that they have the corresponding seed/wallet in order to sign it. Currently, without a wallet GUI, it may be unrealistic to expect a non-technical heir to retrieve the coins using only the CLI, even with the doc available. That's why I'm currently developing one.
What the service offers is mainly two things:
- Track and remember your Descriptors, so it can generates the appropriate unsigned-tx when needed;
- Track coins and timelocks in order to notify owners and heirs appropriately.
It does not cost anything to fiddle around in the web interface if you want to, it may gives you a better idea of the expected usage.
Here is how I used the service: I have 3 heirs, 1 backup wallet and two relatives. For each heir (including my backup), I generated a mnemonic and wrote it in sealed enveloppes that I gave to them. I made it so they can visually verify the enveloppe has not been opened.
In the service, I declared each heir using an Extended Public Key derived from each mnemonic and I arranged them in the order and with the delays I wanted.
If at some point one of my heir lost their envelope, or think it may have been compromised, I can just make a new one and update my inheritance configuration.
For now that's it, and I have ideas to make it better:
- possibility for a user of the service to publicly provide an extended public key, so that others can easily reference them as heir.
- notification of the owners if an heir signal their mnemonic has been compromised.
I don't really know if I'm clear, sorry if not, please keep poking me
EDIT: More direct answer to your questions:
Can you give more information about this and how it works or expected to work?
This reply and
https://btcherit.com/docs/why-heritage should be informative, please come back with more questions if you have some.
By what means will notifications be sent and how will recipients of the notification be set up?
You declare your heirs in the service with, basically, an Extended Public Key and email address(es). The service knows when the timelocks expire and notify the corresponding heir by email when that happen. In the future, SMS notifications, phone calls, postal mail or even in-person are on the table, but for now its only email (i.e. the cheapest). Please tell me if you have requests on this topic.
If the wallet is to be completely non custodian, how do you plan to facilitate inheritance?
The service
DO NOT touch your private keys. That remains you and your heirs responsibility. But when using Bitcoin scripts, there is another challenge: not loosing the scripts. It is especially important with Taproot. As an heir, you need to know your exact script, and all the intermediate values of the Taptree MAST in order to recompute the TapTweak correctly if you want to spend, having only your private key to sign the transaction is far from enough. The service is there to abstract that away: as an heir, you will receive a PSBT that contains the information you need, nothing more. In particular, an heir may not know how many other heirs exist or who they are.
At some point in the future, the service
may provide a "just send me bitcoins" way of inheriting, by asking the heir to provide their mnemonic and a destination address. But I think doing so now would send mixed messages so I will not do it in the foreseeable future. I remember to well the shit-storm Ledger took when they proposed their backup solution, for now I prefer to go with "the service does not touch private keys, ever".
Let me know your toughts!
This has been keenly discussed on this forum and I'll like to hear your own strategy to prevent loss.
See the end of my reply about my setup with 3 heirs.
Also, the Heritage wallet creation tutorial (
https://btcherit.com/docs/create-wallet) is in fact exactly my setup. Please tell me if you want to know more.