Files
2026-06-20 09:50:02 -04:00

20 KiB
Raw Permalink Blame History

BitcoinAfter.Life logo

BitcoinAfter.Life — BAL PROTOCOL 1.0

USER MANUAL (revB)

This is the GitHubfriendly (HTML/Markdown + images) edition of the official BAL user manual. The original PDF lives in the bal_plugin_manual Gitea repository. A styled singlepage version is available as manual.html.


Welcome to using BAL, the opensource plugin for Electrum Wallet, dedicated to managing bitcoin digital inheritance.

An opensource plugin is a software extension that adds functionality to an existing program, and whose source code is publicly available. This means that anyone can view, modify, and distribute the plugin code.

The plugin was designed for Electrum, the Gold standard of Bitcoin wallets.

It was not considered reasonable to proceed with the development of a new wallet or a fork of a wallet (a bifurcation of Electrum's code) so as not to put funds at risk. Instead, we thought it prudent to lean as a plugin on the most tested and therefore secure opensource Bitcoin wallet (Electrum), trusting that in the future the plugin will be placed directly on Electrum by default.

Installing the BAL plugin

The steps for installing the BAL plugin are very simple:

  1. Install the latest version of Electrum (Bitcoin wallet).
  2. Install the BAL plugin (find the files on the Bitcoinafter.life site or links on the Bitcointalk forum), copying it to the Electrum plugins folder.
  3. Activate the plugin from the Electrum menu (Tools → Plugins → BAL).
  4. Restart Electrum.

Now you are ready to leave your digital legacy to your heirs!


The BAL interface

Figure 1 — Electrum with the BAL plugin installed

Figure 1 — the screen that appears after starting Electrum with the BAL plugin installed.

As you can see there are now two new tabs (HEIRS and WILL) on the Electrum interface.

  • HEIRS = the screen of heirs to whom you want to leave your inheritance.
  • WILL = the screen that shows you the technical details of your inheritance:
    • locktime
    • creation time
    • transaction fees for miners
    • status
    • heirs
    • willexecutor with associated fees

NB: Inheritance with the BAL plugin can also be set on a wallet that is still receiving incoming transactions not yet confirmed on the blockchain.


The HEIRS parameters

You can leave the default plugin parameters; they are more than fine for 99 % of inheritance cases.

Figure 2 — HEIRS tab parameters

Figure 2 — the parameters on the HEIRS tab: (1) Delivery Time, (2) Check Alive, (3) Fees.

1 — Delivery Time (Locktime)

Indicates the date on which the inheritance of your wallet on the blockchain will be transferred to the recipient. You can enter the inheritance date either as Relative (example: 1 year from today → RAW = 1y) or as a Precise Date (Date).

If you choose Raw, you can insert various options based on a suffix:

  • d: number of days after the current day (e.g. 1d means tomorrow)
  • y: number of years after the current day (e.g. 1y means one year from today)

* The locktime can be anticipated to update the will.

2 — Check Alive (Threshold)

(i.e. check whether you are still alive, and then postpone the inheritance.)

This parameter — settable as relative (RAW) or absolute (DATE) — indicates the time by which the inheritance will not be changed by postponing it.

NB: if you set it negative (i.e. back in time) it is as if it were not there. This can be useful for doing quick inheritance tests.

Example: if you set the inheritance to one year from today and the Check Alive (threshold) parameter to 6 months, then in 8 months — if you open Electrum — the BAL plugin will ask whether you want to update the inheritance date.

Why does it do this? Because it assumes that if you open the Electrum wallet with the plugin, you are still alive, and therefore estimates that you will still live a certain amount of time, so you probably want to postpone the inheritance so as not to transfer it too soon while you are still alive.

A practical example

Today is January 1, 2025. I set the inheritance for December 1, 2025 (11 months from now) and the CheckAlive (threshold) at 6 months (so June 1, 2025):

Future case histories:

  • Case 1 — I no longer access the Electrum wallet: the inheritance on December 1, 2025 will be transferred to the heir (sent to Bitcoin nodes by the willexecutors).
  • Case 2 — I access the wallet in 4 months (earlier than the set 6month CheckAlive threshold); the inheritance will remain set for December 1, 2025.
  • Case 3 — I access the wallet in 7 months (later than the 6 months set); the plugin will ask whether I want to postpone the date of the inheritance, because it assumes I am still alive and may want to postpone the inheritance so as not to transfer it while I am still alive.

3 — Fees

Denoted in satoshi/vbyte. This parameter indicates the fees that go to the miners to have the transaction validated on the blockchain at the time of inheritance. It is the classic fee/commission you pay every time you send bitcoin to another wallet.

We recommend leaving the default value of 100 sat/vbyte; this way you will be sure the inheritance is accepted by the miners, even on days when the blockchain is saturated and network costs are high. (As of January 2025, that is roughly $25 USD for a wallet without too many UTXOs — a value that allows the tx to be placed on the blockchain even on congested days.)


IMPORTANT — sizing inheritance transaction amounts

Automatic sizing to 100 % of the wallet. The plugin always makes sure that ALL the value of the wallet is delivered to the heirs.

  • Example: I have a wallet with 3 BTC. I write as inheritance 1 BTC to JONNY and 10 % to ANDREA. The BAL plugin sends 1 BTC to Jonny and all the rest (2 BTC) to Andrea.
  • Or: I set 5 % to Jonny and 80 % to Andrea. The plugin recalculates the percentages proportionally so the wallet is completely emptied. Instead of 5 %/80 % it sends 5.9 % to Jonny and 94.1 % to Andrea, for a total of 100 %. (Otherwise 15 % would be left in the wallet.)

NB: if you wanted to send only 80 % of the wallet to the heirs and make 20 % inaccessible forever (bitcoins lost forever — increasing digital scarcity and giving wealth to all bitcoin participants), just set yourself as an heir with a percentage (e.g. 20 %) to an internal wallet address. This also improves the privacy of the transaction, as it is difficult to understand the destination wallets.

  • Another example: I own 10 BTC and want to give Jonny exactly 4 BTC and Andrea exactly 2 BTC. What about the missing 4? The plugin recalculates to transfer 100 %. The only way to give Jonny and Andrea the exact BTC is to transfer the missing 4 to another wallet by designating a third heir.

Staggered inheritance over time

Currently BAL version 1.0 does not support this. It is already in development for version 2 of the protocol. In version 2 it will be possible, for example, to stagger the inheritance 10 % per year until the tenth year, or even 1 % per month, month by month for 10 years — as if it were a kind of annuity, but without the need for third parties or intermediaries.


The [NEW HEIR] button

After setting steps 1, 2, 3, press the [New Heir] button and the BAL New Heirs window appears:

Figure 3 — New Heir window

Figure 3 — adding a new heir.

Here you enter the following parameters:

  • Name: name of the heir, with any details you prefer.
  • Address: the Bitcoin wallet address where the inheritance will be sent.
  • Amount: how much you want to send to this heir (as a percentage or a fixed value). The plugin always makes sure that 100 % of the inheritance is given to the heirs (see Sizing inheritance transactions).

NB: You can add several heirs — even 10 or more.


Delivery time changes

If you change the Delivery Time of a will, when Electrum closes the BAL plugin will notify you that you need to update the inheritance.

  • If you postponed the Delivery Time: the plugin will create a transaction to invalidate the current inheritance and create a new, postponed one. To do this safely, the BAL plugin creates a transaction that it sends to the miners, which you will have to sign, costing 100 sat/vbyte.
  • If you anticipated the Delivery Time: the plugin simply sends a new inheritance transaction to the WillExecutor servers, which anticipates and thus invalidates the transactions already sent to them.

👉 For a complete, codeaccurate breakdown of every change (add/remove heir, change percentages, fee, executor, date earlier/later) and whether it costs an onchain fee, see the companion Inheritance Options Guide.


RAW settings

If you set, for example, RAW1d and it is, say, 5 p.m., the plugin will not execute the inheritance precisely 24 hours later (5 p.m. the next day) but will roughly estimate the blockchain block number corresponding to that time — so with a tolerance of a few hours.

NB: Inheritance is executed on nodes, on average, with a tolerance of about 1 hour after the date/time set in the BAL plugin (because of the 11block Bitcoin median).


Heirs sheet — quick test tip

If you want a quick test run, enter an upcoming legacy date/time (e.g. 18 hours later). For such short intervals the Check Alive could create problems, so set the Check Alive parameter in the past (a date before today) — e.g. a previous month.


Practical example — multiple dates

I have 2 children, Peter (12) and Arnold (16). I own 10 BTC and want each to receive 5 BTC on their respective 18th birthdays.

In the current BAL plugin (1.0) it is not possible to set different delivery dates — the inheritance date is unique. So in this case I prepare two wallets of 5 BTC each and set the respective inheritance with the BAL plugin. Electrum helps here, as it lets you easily create and manage multiple wallets.


BAL plugin parameters

Accessible from the menu Tools → Plugins.

Backup Transaction

Figure 4 — Backup Transaction parameter

Figure 4 — the Backup Transaction option (default: Disabled).

Backup Transaction (default Disabled) is used to manage the inheritance transaction (locktime tx) even without the BAL plugin automations that rely on the online WillExecutor servers.

By enabling this option you also keep an offline backup of the signed legacy transaction, useful in case all online WillExecutor servers are destroyed (a highly unrealistic event).

The backup transaction is saved locally — on a USB stick or wherever you prefer. For example, it can be delivered through a notary, trusted persons, or even directly to the heir. (In the latter case, however, the heir becomes aware that they will receive an inheritance on a specific date and amount, which could be imprudent.)

The backup transaction, once delivered to the heir, can — at a later date than the inheritance delivery time — be sent to the nodes via Electrum to receive the funds in the inheritance wallet.

Difficulties and risks of using only the backup transaction (versus trusting the automation of WillExecutor servers):

  1. Risk of the transaction being invalidated later if you accidentally spend even one satoshi from one of the wallets you presigned the legacy transaction from.
  2. Difficulty delivering the signed transaction to the heir (the heir would learn about the inheritance and its value).
  3. Each step must be handled by hand, with the risk of errors.

If you activated Backup Transactions in the parameters, this is visible in the [WILL] screen with the status NONE in the WillExecutor column:

Figure 5 — Backup transaction in the WILL screen

Figure 5 — backup transaction shown with "NONE" willexecutor.

Then, by rightclicking it and selecting [Details], the following screen appears, where you can save your transaction to your preferred medium (USB flash drive, cloud, NAS, etc.):

Figure 6 — Transaction details

Figure 6 — transaction details / save dialog.


Wallet security — saving your will

To keep a copy of your will, simply save the wallet from Electrum (File → Save Backup).

If, for example, your notebook is stolen or breaks down, just install Electrum on a new computer together with the BAL plugin and open the previously saved wallet.

Remember to save (and not lose) your wallet password on Electrum, or you will no longer be able to access the inheritance data saved with the wallet. If you restore your wallet from SEED only, you will regain access to your bitcoin funds but lose the BAL inheritance data saved with the wallet file.

You can also export the heir list to keep a printable copy of your inheritance:

Figure 7 — Export the heir list

Figure 7 — exporting / printing the heir list.


WillExecutor service list

This window opens from the Electrum menu, Tools → Willexecutor, and shows the official list of willexecutor servers.

If you want to make changes — such as adding an additional willexecutor server — you can enter it manually or import a list of willexecutor servers (found on the bitcointalk.org forum or on the official BAL website).

Commands in the window:

  • Ping: checks which servers in the list are online — a green dot means active.
  • Import: imports a willexecutor list other than the default.
  • Export: exports the list of willexecutor servers in your plugin (useful to move it to another Electrum + BAL installation).
  • Add: adds a willexecutor server manually.

List columns

  1. URL — the URL address of the willexecutor.
  2. Base Fee — the commission/reward for the willexecutor. This reward lets the willexecutor cover the cost of keeping the server online. The willexecutor earns the base fee only on the date of inheritance, and only if it is the first to send the transaction to the nodes — which sets in motion a competition among willexecutors to earn the base fee. (Example: I set up an inheritance that will happen in 4 years; in that case the willexecutor will only earn the fee in 4 years.)
  3. Info — server description or website link.
  4. Default Address — the bitcoin wallet address where the base fee will be sent.
  5. S — server status. A green dot = server online.

Rightclick on a server line opens four subcommands:

Figure 8 — Will‑executor right‑click menu

Figure 8 — the willexecutor context menu.

  1. Select — rightclick the server, add the green check mark on the left, and this willexecutor will be used in your inheritance.
  2. Edit — edit the relevant column field.
  3. Ping — verify that the server is online.
  4. Delete — delete the server from the list.

Privacy of (online) willexecutors

Transactions sent to willexecutor servers (pushed) by the BAL plugin are stored on the servers. They are not publicly accessible (for privacy), but from your BAL plugin you can check at any time whether the transaction is properly stored on the servers: rightclick the inheritance transaction in the WILL tab and choose Check. The transaction will be tagged in the Status column as Checked if it is indeed online on the server.

WILL tab columns

a. Locktime — the date of inheritance. b. Txid — identification of the bitcoin transaction. c. WillExecutor — address of the willexecutor. d. Status — see the table below.


Colour progression of transaction statuses

Transactions on the WILL page are coloured to conveniently display their status of progress. Below are the colour progression states your legacy transactions can have in the WILL tab, on each willexecutor that is online.

Chromatic progression table

# Status Meaning Colour HEX
1 New TX new inheritance White (transparent) #FFFFFF
2 Signed TX inheritance signed into the wallet Azure #2BC8ED
3 Pushed TX sent to willexecutor Azuregreen #73F3C8
4 Checked TX actually present in the willexecutor Bright green #8AFA6C
5 Confirmed TX confirmed in the blockchain Gray #BFBFBF
6 Pending TX awaiting confirmation on blockchain Yellow #FFCE30
7 Failed Communication failure with willexecutor Red #E83845
8 Invalidated UTXO input is no longer available Orange #F87838
9 Replaced A backdatedlocktime transaction spends the same input Violet #FF97E9

WILL tab — commands

Figure 9 — WILL tab and Will‑Details window

Figure 9 — the WILL tab with its commands.

  1. Prepare — prepares the inheritance and puts it on the list.
  2. Sign — sign your legacy transaction with your private key (using your wallet password or hardware key).
  3. Broadcast — sends the inheritance transaction to the online WillExecutor servers on your WillExecutor Service List.
  4. Display — brings up the WillDetails window, where you can see the transactions with all available data:
    • Locktime (date of inheritance)
    • Creation time
    • Transaction fee (to the miners)
    • Status (see table)
    • Heirs
    • Willexecutor (server address)
    • Commission (base fee) — reward for the willexecutor

Figure 10 — Will‑Details window

Figure 10 — the WillDetails window (Display).

NB: When you close Electrum, the plugin automatically proceeds to execute Prepare → Sign → Broadcast (if they have not already been completed) to ensure the inheritance is correctly executed.


Using hardware keys

Ledger, BitBox2, etc. — all hardware keys that are compatible with and recognised by Electrum are compatible with the BAL plugin.


Insights (privacy)

Caution: consolidation of UTXOs

When you send the entire contents of a wallet, you risk losing the privacy of your UTXOs. It may be a good rule of thumb to execute the inheritance leaving a small remainder to another wallet, to improve the privacy of the transaction — especially if there is only one heir.

Example: 99.7 % inheritance to the heir and 0.3 % to a random bitcoin address (e.g. taken randomly from a block explorer).


Wallet inheritance behaviour when the balance / UTXO changes

If your wallet managed with the BAL plugin changes in balance — e.g. you send additional funds or spend some — the inheritance must be updated.

The BAL plugin takes care, when closing Electrum, to check whether there has been any such change (balance or UTXO) and then updates the inheritance automatically.

Thanks to this you can use an inheritanceready wallet on Electrum even for everyday Bitcoin transactions (possibly with a hardware key to sign), knowing that in case of death the entire contents of the wallet will be sent to your heirs.

If you use your readonly wallet on devices other than your Electrum (using the public key Zpub/Xpub, e.g. to monitor funds remotely), any funds sent directly into the wallet will not be added to the inheritance already set up. To work around this, open your wallet on Electrum so the plugin can update the inheritance UTXOs and resend them to the willexecutors, updated with the new value.

⚠️ WARNING: If you use the same SEED on multiple devices (a behaviour always strongly discouraged), spending even one transaction of even one satoshi invalidates the inheritance, because it changes the wallet's UTXO structure and therefore the nodes discard the inheritance transaction.


About installing a willexecutor server or collaboration, send your request to: info@bitcoin-after.life


Signed,
Svātantrya