Files
bal-website/index.html
bitcoinafterlife 649087adc9 Surface the blog on the homepage
Add a latest-post pointer in the hero and a three-card blog section
after the FAQ. Both reuse existing classes; the blog was previously
reachable only from the navbar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 14:48:27 +02:00

923 lines
48 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" class="nojs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bitcoin After Life Protocol — Decentralized Bitcoin Inheritance</title>
<meta name="description" content="Bitcoin After Life (BAL) Protocol — Decentralized Bitcoin inheritance through time-locked transactions. No notary, no custodian. Open-source Electrum plugin and Will-Executor network.">
<link rel="icon" type="image/x-icon" href="/pitura/ico/Logo_nero.ico">
<link rel="canonical" href="https://bitcoin-after.life/index.html">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Bitcoin After Life">
<meta property="og:title" content="Bitcoin After Life Protocol — Decentralized Bitcoin Inheritance">
<meta property="og:description" content="Decentralized Bitcoin inheritance through time-locked transactions. No notary, no lawyer, no custodian. Open-source Electrum plugin and Will-Executor network.">
<meta property="og:url" content="https://bitcoin-after.life/index.html">
<meta property="og:image" content="https://bitcoin-after.life/pitura/og-default.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@BitcoinAfterLif">
<meta name="twitter:title" content="Bitcoin After Life Protocol — Decentralized Bitcoin Inheritance">
<meta name="twitter:description" content="Decentralized Bitcoin inheritance through time-locked transactions. No notary, no lawyer, no custodian. Open-source Electrum plugin and Will-Executor network.">
<meta name="twitter:image" content="https://bitcoin-after.life/pitura/og-default.png">
<meta name="theme-color" content="#2d6cdf">
<script>
/* Runs before first paint: removes the `nojs` class set on <html>, so the
mobile menu button is only shown when it can actually work. */
document.documentElement.classList.remove('nojs');
</script>
<!--
=========================================================
Bitcoin After Life Protocol — landing page
Visual system: "Slate" (adapted from bal-welist-preview.html)
Accent: blue (#2d6cdf), faithful to the reference file.
Content: index2.html + updated facts from the GitHub repo
(Electrum 4.8.0, PyQt6, install flow, Anticipate/Postpone,
Server-column states, release v0.6.1, MIT license).
All UI copy is in English by project convention.
=========================================================
-->
<style>
:root{
--maxw:1120px;
--radius:10px;
--bg:#eef1f4;
--panel:#ffffff;
--ink:#1a2027;
--muted:#5b6672;
--line:#dfe4ea;
--line-strong:#cbd2da;
--accent:#2d6cdf;
--accent-soft:#e6eefc;
--ok:#1f9d57;
--ok-soft:#e3f4ea;
--warn:#b5701b;
--warn-soft:#fbf0df;
--display:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
--body:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
--shadow:0 1px 2px rgba(20,30,50,.05);
--shadow-lg:0 6px 20px rgba(20,30,50,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{
background:var(--bg);
color:var(--ink);
font-family:var(--body);
line-height:1.55;
-webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
section{scroll-margin-top:72px}
/* ---------- Top bar ---------- */
.topbar{
position:sticky;top:0;z-index:30;
background:rgba(255,255,255,.86);backdrop-filter:saturate(150%) blur(8px);
border-bottom:1px solid var(--line);
}
.topbar .wrap{display:flex;align-items:center;gap:18px;height:60px}
.topbar .logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;color:var(--ink)}
.topbar .logo img{width:30px;height:30px;display:block}
.topbar .logo span{font-size:15px;letter-spacing:-.01em}
.topbar nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.topbar nav a{
color:var(--muted);font-size:13px;padding:7px 11px;border-radius:7px;
}
.topbar nav a:hover{color:var(--ink);background:var(--accent-soft);text-decoration:none}
.topbar .x{color:var(--ink);font-weight:600}
.topbar nav a.manifesto{color:var(--accent);font-weight:600;border:1px solid #cfe0fb;background:var(--accent-soft)}
.topbar nav a.manifesto:hover{background:#d9e7fd;color:var(--accent)}
/* ---------- Hero ---------- */
header.hero{padding:56px 0 40px;border-bottom:1px solid var(--line);background:
radial-gradient(900px 300px at 80% -40%,var(--accent-soft),transparent 70%);}
.hero .wrap{display:grid;grid-template-columns:1.4fr .9fr;gap:40px;align-items:center}
.hero .badge{
display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;
color:var(--accent);background:var(--accent-soft);border:1px solid #cfe0fb;
padding:5px 11px;border-radius:999px;letter-spacing:.02em;margin-bottom:18px;
}
.hero h1{
font-family:var(--display);font-weight:600;letter-spacing:-.02em;
font-size:42px;line-height:1.06;margin:0 0 14px;
}
.hero h1 .blue{color:var(--accent)}
.hero .lead{color:var(--muted);font-size:17px;max-width:540px;margin:0 0 26px}
.cta-row{display:grid;grid-template-columns:1fr 1fr;gap:11px;max-width:540px;margin-bottom:22px}
.cta-row .btn{justify-content:center;text-align:center}
.btn{
font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;
padding:11px 18px;border-radius:9px;border:1px solid var(--accent);
background:var(--accent);color:#fff;display:inline-flex;gap:8px;align-items:center;
}
.btn:hover{filter:brightness(1.07);text-decoration:none}
.btn.ghost{background:var(--panel);color:var(--ink);border-color:var(--line-strong)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}
.fiat-note{font-size:13px;color:var(--muted);max-width:540px;line-height:1.6}
.fiat-note strong{color:var(--ink)}
/* B2 — accent-bar callout for the "Bitcoin-only / no FIAT" statement */
.fiat-bar{
display:flex;gap:13px;align-items:flex-start;max-width:540px;
background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);
border-radius:0 10px 10px 0;padding:14px 18px;box-shadow:var(--shadow);
}
.fiat-bar .btc{font-size:22px;line-height:1.3;color:#f7931a;font-weight:700;flex:none}
.fiat-bar .t{font-size:13.5px;line-height:1.6;color:var(--ink)}
.fiat-bar .t strong{font-weight:600}
.fiat-bar .t .m{color:var(--muted)}
/* Latest-post pointer: same bar, accent icon instead of the Bitcoin glyph. */
.fiat-bar.latest-post{margin-top:11px}
.fiat-bar.latest-post .btc{font-size:17px;color:var(--accent)}
.hero-card{
background:var(--panel);border:1px solid var(--line);border-radius:14px;
box-shadow:var(--shadow-lg);padding:30px 28px;text-align:center;
}
.hero-card img{width:138px;height:138px;margin:0 auto 14px;display:block}
.hero-card .name{font-family:var(--display);font-weight:600;font-size:18px}
.hero-card .tag{color:var(--muted);font-size:13px;margin-top:2px}
.hero-card .stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.hero-card .stat{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 8px}
.hero-card .stat .n{font-family:var(--display);font-weight:600;font-size:20px;line-height:1}
.hero-card .stat .l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.hero-card .stat .sig{font-size:10px;margin-top:2px;display:none}
.hero-card .stat .sig a{color:var(--muted);text-decoration:underline}
.hero-card .stat .sig a:hover{color:var(--accent)}
/* ---------- Section scaffolding ---------- */
.section{padding:56px 0}
.section.alt{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.eyebrow{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:10px}
.section h2{font-family:var(--display);font-size:28px;font-weight:600;letter-spacing:-.01em;margin:0 0 12px}
.section .sub{color:var(--muted);font-size:16px;max-width:760px;margin:0 0 30px}
.prose p{color:var(--muted);font-size:15.5px;max-width:820px;margin:0 0 16px}
.prose p strong,.prose p em{color:var(--ink)}
.prose p em{font-style:italic;font-weight:500}
/* ---------- Feature grid ---------- */
.grid{display:grid;gap:16px}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.card{
background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
padding:24px;box-shadow:var(--shadow);
}
.section.alt .card{background:var(--bg)}
.card .ic{
width:42px;height:42px;border-radius:10px;display:grid;place-items:center;
background:var(--accent-soft);font-size:20px;margin-bottom:14px;
}
.card h3{font-size:16px;margin:0 0 8px;letter-spacing:.01em}
.card p{font-size:14px;color:var(--muted);margin:0 0 14px;line-height:1.6}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{
font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
border:1px solid var(--line-strong);border-radius:5px;padding:3px 7px;
}
.card .more{font-size:13px;font-weight:600;color:var(--accent)}
/* Blog cards: titles read as headings, like on blog.html, not as links. */
.card h3 a{color:var(--ink)}
.card h3 a:hover{color:var(--accent);text-decoration:none}
/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.step{
background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
padding:22px;box-shadow:var(--shadow);position:relative;
}
.section.alt .step{background:var(--bg)}
.step .no{
font-family:var(--mono);font-size:12px;font-weight:600;color:#fff;background:var(--ink);
width:26px;height:26px;border-radius:7px;display:grid;place-items:center;margin-bottom:13px;
}
.step h3{font-size:15px;margin:0 0 7px}
.step p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.6}
.phase-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.phase{font-size:12px;color:var(--muted);background:var(--accent-soft);border:1px solid #cfe0fb;border-radius:7px;padding:6px 12px}
.phase b{color:var(--ink)}
/* ---------- Callout ---------- */
.callout{
display:flex;gap:14px;background:var(--accent-soft);border:1px solid #cfe0fb;
border-radius:var(--radius);padding:18px 20px;margin-top:22px;font-size:14px;color:var(--ink);
}
.callout .k{font-size:20px;line-height:1}
.callout.warn{background:var(--warn-soft);border-color:#eed8b4}
.callout p{margin:0;line-height:1.6}
.callout p strong{font-weight:600}
/* FAQ "see the manual" box: match the FAQ column exactly (880px, left-aligned) */
.callout.faq-more{max-width:880px}
/* ---------- Install ---------- */
.install-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.req-list{list-style:none;margin:0;padding:0}
.req-list li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.req-list li:last-child{border-bottom:0}
.req-list .b{font-weight:600;min-width:118px}
.req-list .v{color:var(--muted)}
pre.code{
background:var(--ink);color:#e8edf3;border-radius:10px;padding:16px 18px;
font-family:var(--mono);font-size:12.5px;line-height:1.7;overflow-x:auto;margin:0 0 12px;
}
pre.code .c{color:#8aa0b6}
.ol{margin:0;padding-left:20px;color:var(--muted);font-size:14px}
.ol li{margin:8px 0;line-height:1.55}
.ol code{font-family:var(--mono);background:var(--bg);border:1px solid var(--line);padding:1px 6px;border-radius:5px;color:var(--ink);font-size:12.5px}
/* ---------- Server states table ---------- */
.table-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-top:8px}
.section.alt .table-card{background:var(--bg)}
table{width:100%;border-collapse:collapse;font-size:14px}
thead th{
text-align:left;font-weight:600;color:var(--muted);font-size:11px;letter-spacing:.08em;
text-transform:uppercase;padding:13px 16px;border-bottom:1px solid var(--line-strong);white-space:nowrap;
}
tbody td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
td.label{font-family:var(--mono);font-size:12.5px;color:var(--ink);white-space:nowrap}
td.mean{color:var(--muted)}
/* ---------- FAQ ---------- */
.faq{display:grid;gap:10px;max-width:880px}
.qa{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.section.alt .qa{background:var(--bg)}
.qa>summary{
list-style:none;cursor:pointer;
display:flex;align-items:center;gap:14px;padding:16px 18px;color:var(--ink);
}
.qa>summary::-webkit-details-marker{display:none}
.qa .qn{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:600;flex:none;width:26px}
.qa .qt{font-weight:600;font-size:15px;flex:1}
.qa .chev{flex:none;color:var(--muted);transition:transform .2s}
.qa[open] .chev{transform:rotate(180deg)}
.qa .ans{padding:0 18px 18px 58px;color:var(--muted);font-size:14.5px;line-height:1.65}
.qa .ans p{margin:0 0 10px}.qa .ans p:last-child{margin:0}
.qa .ans ul{margin:6px 0;padding-left:18px}
.qa .ans li{margin:5px 0}
.qa .ans strong{color:var(--ink)}
.qa .ans em{color:var(--ink);font-style:italic}
/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding:34px 0 40px;color:var(--muted);font-size:14px;background:var(--panel)}
footer .sig{font-family:var(--display);font-weight:600;color:var(--ink);font-size:16px}
footer .links{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0}
footer .built{font-size:13px;color:var(--muted);margin-top:8px}
/* ---------- Mobile navigation ---------- */
/*
The hamburger button is hidden on desktop and only revealed under 900px.
WHY a button and not the old `display:none` on the links: hiding the nav
removed every in-page destination on phones. The button keeps all sections
reachable, and the <noscript> rule below keeps the menu usable even when
JavaScript is unavailable.
*/
.navtoggle{
display:none;margin-left:auto;
width:44px;height:44px;flex:none;
align-items:center;justify-content:center;
background:var(--panel);border:1px solid var(--line-strong);border-radius:9px;
color:var(--ink);cursor:pointer;padding:0;
}
.navtoggle:hover{border-color:var(--accent);color:var(--accent)}
.navtoggle .bars{display:block;width:18px;height:2px;background:currentColor;position:relative}
.navtoggle .bars::before,.navtoggle .bars::after{
content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;
}
.navtoggle .bars::before{top:-6px}
.navtoggle .bars::after{top:6px}
.navtoggle[aria-expanded="true"] .bars{background:transparent}
.navtoggle[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.navtoggle[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}
/* ---------- Responsive ---------- */
@media (max-width:900px){
.hero .wrap{grid-template-columns:1fr;gap:28px}
.hero-card{order:-1}
.cols-3,.steps,.install-grid{grid-template-columns:1fr}
.cta-row{grid-template-columns:1fr;max-width:none}
.cols-2{grid-template-columns:1fr}
.hero h1{font-size:34px}
/* Off-canvas navigation panel, anchored to the sticky top bar. */
.navtoggle{display:inline-flex}
.topbar nav{
position:absolute;top:100%;left:0;right:0;
margin-left:0;display:none;flex-direction:column;gap:2px;flex-wrap:nowrap;
background:var(--panel);border-bottom:1px solid var(--line);
box-shadow:var(--shadow-lg);padding:10px 20px 16px;
}
.topbar nav.open{display:flex}
/* 44px minimum height: the smallest reliable touch target. */
.topbar nav a{
font-size:15.5px;padding:0 12px;min-height:44px;
display:flex;align-items:center;border-radius:8px;
}
.topbar nav a.manifesto{justify-content:flex-start}
}
/*
Type scale for phones. The desktop sizes (14px cards, 13.5px steps,
10.5px chips) are legible on a 1440px monitor but tiny on a 6-inch
screen, which is the "everything is too small" complaint. Sizes go up
on small screens, not down.
*/
@media (max-width:700px){
.wrap{padding:0 18px}
header.hero{padding:34px 0 30px}
.section{padding:40px 0}
.hero .lead{font-size:16.5px}
.section .sub{font-size:15.5px}
.prose p{font-size:16px}
.card p{font-size:15px}
.card h3{font-size:17px}
.step p{font-size:15px}
.step h3{font-size:16px}
.chip{font-size:11.5px}
.qa .qt{font-size:15.5px}
.qa .ans{font-size:15.5px;padding-left:18px}
.req-list li{font-size:15px}
.ol{font-size:15px}
.callout{font-size:15px}
.fiat-bar .t{font-size:14.5px}
.btn{font-size:15px;padding:13px 18px}
footer .links{gap:12px 18px}
}
@media (max-width:560px){
.section h2{font-size:24px}
.hero h1{font-size:29px}
.hero-card{padding:24px 18px}
.hero-card img{width:112px;height:112px}
.card{padding:20px}
.step{padding:19px}
.req-list .b{min-width:0}
.req-list li{flex-direction:column;gap:2px}
}
@media (max-width:400px){
.wrap{padding:0 15px}
.hero h1{font-size:26px}
.section h2{font-size:22px}
.hero-card .stats{grid-template-columns:1fr}
}
/*
Wide tables cannot shrink below their content, so on narrow screens they
either overflow the page or crush the text. Scrolling the table alone
keeps the rest of the layout intact.
*/
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll table{min-width:420px}
/*
Without JavaScript the panel cannot be toggled, so the links are shown
inline. On narrow screens they wrap under the logo and the bar is allowed
to grow, instead of being clipped by the fixed 60px height.
*/
.nojs .navtoggle{display:none}
.nojs .topbar nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;
box-shadow:none;border-bottom:0;padding:0;margin-left:auto;background:transparent}
@media (max-width:900px){
.nojs .topbar .wrap{height:auto;min-height:56px;flex-wrap:wrap;padding-bottom:8px;gap:10px}
.nojs .topbar nav{margin-left:0;width:100%;gap:4px 6px}
.nojs .topbar nav a{font-size:14.5px;min-height:40px;padding:0 10px;
display:flex;align-items:center;border:1px solid var(--line);border-radius:8px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Bitcoin After Life",
"url": "https://bitcoin-after.life",
"logo": "https://bitcoin-after.life/pitura/logo/Logo_nero.svg",
"sameAs": [
"https://x.com/BitcoinAfterLif"
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Bitcoin After Life",
"url": "https://bitcoin-after.life"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the Bitcoin After Life Protocol for?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It is open-source software to manage the inheritance of Bitcoin held with a seed phrase, and to create an emergency backup of a wallet. It uses time-locked transactions sent to Will-Executor servers, which broadcast them to the Bitcoin network on a pre-set delivery date."
}
},
{
"@type": "Question",
"name": "Why a plugin for Electrum rather than a dedicated wallet?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Electrum is heavily tested and widely regarded as a reference Bitcoin wallet. The BAL plugin never signs transactions itself, Electrum does. This maximises security, reduces maintenance, and lets users trust the signing process independently of BAL."
}
},
{
"@type": "Question",
"name": "How much does an inheritance or wallet backup cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "An inheritance involves two fees, both paid in Bitcoin only: a miner fee chosen by the user at signing time, and a Will-Executor fee deducted from the inheritance when the transaction is broadcast. There are no subscriptions or card payments."
}
},
{
"@type": "Question",
"name": "What is a Will-Executor?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A Will-Executor is a server that receives your pre-signed, time-locked transaction, stores it, and broadcasts it on the delivery date. It cannot alter or steal the transaction because you have already signed it; its only incentive is the fee embedded in the transaction, received once the inheritance confirms on-chain."
}
},
{
"@type": "Question",
"name": "Can I use the plugin with a hardware wallet?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. The plugin is compatible with any hardware wallet supported by Electrum, such as Ledger, Trezor, Coldcard, BitBox02, Jade and KeepKey. Using a dedicated computer for cold-wallet signing is recommended for maximum security."
}
},
{
"@type": "Question",
"name": "Is the plugin compatible with all Electrum wallet types?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It works with standard seed-based single-signature Electrum wallets and with supported hardware wallets. Multisig wallets are not yet supported, and compatibility with Electrum's TrustedCoin (2FA) wallets is currently unknown."
}
},
{
"@type": "Question",
"name": "Is a BAL 2.0 version planned?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. BAL 2.0 is in development. Its main new feature will be staggered inheritance: scheduling gradual distributions over time instead of a single lump-sum transfer."
}
}
]
}
</script>
</head>
<body>
<!-- ===== Top bar ===== -->
<div class="topbar">
<div class="wrap">
<a class="logo" href="#top"><img src="/pitura/logo/Logo_nero.svg" alt="Bitcoin After Life logo" width="30" height="30"><span translate="no">Bitcoin After Life</span></a>
<button class="navtoggle" id="navToggle" type="button"
aria-expanded="false" aria-controls="mainNav" aria-label="Open menu">
<span class="bars"></span>
</button>
<nav id="mainNav">
<a href="#features">Features</a>
<a href="#how">How it works</a>
<a href="#executors">Will-Executors</a>
<a href="#plugin">Plugin</a>
<a href="#install">Install</a>
<a href="#faq">FAQ</a>
<a href="blog.html">Blog</a>
<a href="https://bitcoin-after.life/docs/">Docs</a>
<a class="manifesto" href="manifesto.html">Manifesto</a>
<a class="x" href="https://x.com/BitcoinAfterLif" title="@BitcoinAfterLif on X">@X</a>
</nav>
</div>
</div>
<!-- ===== Hero ===== -->
<header class="hero" id="top">
<div class="wrap">
<div>
<span class="badge">● Open-source · Bitcoin-only · No custodian</span>
<h1>Leave your Bitcoin to your heirs — <span class="blue">without a third party.</span></h1>
<p class="lead">The <span translate="no">Bitcoin After Life</span> (BAL) Protocol uses time-locked transactions and an open-source Will-Executor network to make decentralized Bitcoin inheritance possible. No notary, no lawyer, no custodian.</p>
<div class="cta-row">
<a class="btn" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases">Electrum Plugin Releases</a>
<a class="btn ghost" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-server/releases">BAL Server Releases</a>
<a class="btn ghost" href="https://welist.bitcoin-after.life/">Will-Executor List</a>
<a class="btn ghost" href="https://bitcoin-after.life/gitea/bitcoinafterlife">Source Code</a>
</div>
<div class="fiat-bar">
<span class="btc"></span>
<span class="t"><strong>Open-source project.</strong> <span class="m">The BAL Protocol is built and funded exclusively with Bitcoin — no FIAT currencies were used.</span></span>
</div>
<!--
Latest post pointer. When a new article goes live, update the title and
href here AND the three cards in the #blog section further down.
-->
<div class="fiat-bar latest-post">
<span class="btc">📄</span>
<span class="t"><strong>New on the blog:</strong>
<a href="blog/the-quietest-day.html">The Quietest Day — what really happens when your Bitcoin inheritance arrives</a></span>
</div>
</div>
<aside class="hero-card">
<img src="/pitura/logo/Logo_nero.svg" alt="Bitcoin After Life Protocol logo" width="138" height="138">
<div class="name">BAL Protocol</div>
<div class="tag">Electrum plugin + Will-Executor</div>
<div class="stats">
<div class="stat"><div class="n"><a id="latest-release-link" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases">-</a></div><div class="l">Latest release</div><div class="sig"><a id="latest-release-sig" href="#">sig</a></div></div>
<div class="stat"><div class="n">10 yr</div><div class="l">Min. support</div></div>
<div class="stat"><div class="n">MIT</div><div class="l">License</div></div>
<div class="stat"><div class="n">100%</div><div class="l">Bitcoin-funded</div></div>
</div>
</aside>
</div>
</header>
<main>
<!-- ===== Key features ===== -->
<section class="section alt" id="features">
<div class="wrap">
<span class="eyebrow">Key features</span>
<h2>What BAL gives you</h2>
<p class="sub">Five capabilities, all peer-to-peer, all Bitcoin-only, all open source.</p>
<div class="grid cols-3">
<div class="card">
<div class="ic">🔐</div>
<h3>Decentralized inheritance</h3>
<p>Plan Bitcoin inheritance without any third party — notary, spouse or custodian. Fully peer-to-peer, with no legal overhead and no intermediaries, ever.</p>
<div class="chips"><span class="chip">Bitcoin only</span><span class="chip">Peer-to-peer</span></div>
</div>
<div class="card">
<div class="ic">⏱️</div>
<h3>Time-locked transactions</h3>
<p>Transactions are created with a Locktime set to a future date. Will-Executors retain and broadcast them automatically on the delivery date. Your keys never leave your device — Electrum handles all signing.</p>
<div class="chips"><span class="chip">Desktop</span><span class="chip">Self-custody</span></div>
</div>
<div class="card">
<div class="ic">💾</div>
<h3>Wallet backup</h3>
<p>Pre-sign a recovery transaction to a secondary address. If you lose your seed, the funds are sent automatically to your backup wallet.</p>
<div class="chips"><span class="chip">Recovery</span><span class="chip">Open source</span></div>
</div>
<div class="card">
<div class="ic">💰</div>
<h3>Economic incentives</h3>
<p>Each inheritance transaction includes a fee for the Will-Executor, paid on confirmation. Incentives grow with Bitcoin's value over time.</p>
<div class="chips"><span class="chip">Server</span><span class="chip">Bitcoin only</span></div>
</div>
<div class="card">
<div class="ic">🌐</div>
<h3>Open source &amp; community</h3>
<p>Anyone can run a Will-Executor server and earn commissions. The community is encouraged to discover new use cases.</p>
<div class="chips"><span class="chip">Open source</span><span class="chip">Community</span></div>
</div>
<div class="card">
<div class="ic">🪪</div>
<h3>You stay in control</h3>
<p>The plugin never signs on your behalf. It asks — you decide. Every refresh of your will is confirmed by you, password or hardware wallet included.</p>
<div class="chips"><span class="chip">Non-custodial</span><span class="chip">Hardware-wallet</span></div>
</div>
</div>
</div>
</section>
<!-- ===== How it works ===== -->
<section class="section" id="how">
<div class="wrap">
<span class="eyebrow">How it works</span>
<h2>From setup to automatic execution</h2>
<p class="sub">Six steps — from first setup to the automatic execution of your Bitcoin will. For the full protocol walkthrough, see <a href="https://bitcoin-after.life/docs/protocol/how-it-works.html">How it works</a> in the manual.</p>
<div class="steps">
<div class="step"><div class="no">01</div><h3>Add heirs</h3><p>Enter the Bitcoin address of your heir(s) in the BAL plugin. No notary or intermediary required.</p></div>
<div class="step"><div class="no">02</div><h3>Prepare transaction</h3><p>The wizard builds a time-locked transaction with your delivery date and the Will-Executor fee.</p></div>
<div class="step"><div class="no">03</div><h3>Sign</h3><p>Electrum signs with your key. The plugin never touches your keys — the signed will is stored locally.</p></div>
<div class="step"><div class="no">04</div><h3>Send to Will-Executors</h3><p>Your signed will is sent to Will-Executor servers from the WeList. They hold it until the delivery date.</p></div>
<div class="step"><div class="no">05</div><h3>Use Electrum normally</h3><p>Keep using Electrum as usual. Every session auto-postpones your delivery date — Check Alive, zero effort. <span style="font-size:.82em;color:var(--muted)">(in Advanced mode)</span></p></div>
<div class="step"><div class="no">06</div><h3>Always up to date</h3><p>On close of your wallet, the plugin checks your balance and asks to refresh your will. You confirm — it never signs for you.</p></div>
</div>
<div class="phase-row">
<div class="phase"><b>0103</b> Setup</div>
<div class="phase"><b>04</b> Deploy</div>
<div class="phase"><b>05</b> Stay alive</div>
<div class="phase"><b>06</b> Auto-execute</div>
</div>
<div class="callout">
<span class="k">🔑</span>
<p><strong>Note on signing.</strong> The plugin never signs on your behalf. If your wallet uses a password or a hardware wallet, you will be prompted to confirm. The plugin asks — you decide. Your will stays accurate and always under your control.</p>
</div>
</div>
</section>
<!-- ===== Will-Executors ===== -->
<section class="section alt" id="executors">
<div class="wrap prose">
<span class="eyebrow">Will-Executors</span>
<h2>The beating heart of the protocol</h2>
<p>The economic incentive that makes all this possible is a fee included in each inheritance transaction. It is paid when the Will-Executor transmits the inheritance transaction to the nodes, and is therefore inserted into the block. The first one to send the transaction to the nodes wins the inheritance fee.</p>
<p>We expect the BAL Protocol to succeed thanks to these incentives. They are <strong>substantial and grow with the value of Bitcoin over time</strong>, and they are attractive to more and more servers joining the inheritance transactions with a prospect of medium- to long-term gains.</p>
<p>Anybody can create a Will-Executor server to contribute to the protocol and earn commissions, since the code is available as open source. Read more in the manual: <a href="https://bitcoin-after.life/docs/will-executors/what-they-are.html">what Will-Executors are</a> and <a href="https://bitcoin-after.life/docs/will-executors/running-a-server.html">running a Will-Executor</a>.</p>
<div class="callout">
<span class="k">📋</span>
<p>Will-Executors are listed on the public <strong>WeList</strong> directory and shown directly inside the plugin. <a href="https://welist.bitcoin-after.life/">Browse the Will-Executor List →</a></p>
</div>
</div>
</section>
<!-- ===== Components / Plugin ===== -->
<section class="section" id="plugin">
<div class="wrap">
<span class="eyebrow">Components</span>
<h2>Plugin, server and docs</h2>
<p class="sub">Two open-source components and the documentation that ties them together.</p>
<div class="grid cols-3">
<div class="card">
<div class="ic">🔌</div>
<h3><span translate="no">Bitcoin After Life</span> plugin</h3>
<p>Created for the <strong>Electrum</strong> wallet — the gold standard among Bitcoin wallets. We hope Electrum developers will one day integrate it by default.</p>
<div class="chips"><span class="chip">Desktop</span><span class="chip">PyQt6</span></div>
<p style="margin-top:14px"><a class="more" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin">View plugin repository →</a></p>
</div>
<div class="card">
<div class="ic">🖥️</div>
<h3>BAL Server</h3>
<p>The server acts as a Will-Executor: it retains signed transactions and broadcasts them at the delivery date, so the inheritance runs without human intervention.</p>
<div class="chips"><span class="chip">Server</span><span class="chip">Open source</span></div>
<p style="margin-top:14px"><a class="more" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-server">View server repository →</a></p>
</div>
<div class="card">
<div class="ic">📖</div>
<h3>Documentation &amp; examples</h3>
<p>On bitcoin-after.life you'll find instructions to install the plug-in in Electrum and several practical examples on how to manage inheritance.</p>
<div class="chips"><span class="chip">Guides</span><span class="chip">Examples</span></div>
<p style="margin-top:14px"><a class="more" href="https://bitcoin-after.life">View website →</a></p>
</div>
</div>
</div>
</section>
<!-- ===== Requirements & Installation (from GitHub) ===== -->
<section class="section alt" id="install">
<div class="wrap">
<span class="eyebrow">Requirements &amp; installation</span>
<h2>Get the plugin running</h2>
<p class="sub">The plugin is a behavior-preserving refactor that cleanly separates the business logic from the PyQt GUI. Build a clean, integrity-checkable archive and install it in Electrum. For the full step-by-step walkthrough with screenshots, see the <a href="https://bitcoin-after.life/docs/getting-started/installation.html">installation guide</a> in the manual.</p>
<div class="install-grid">
<div class="card">
<h3>Requirements</h3>
<ul class="req-list">
<li><span class="b">Electrum</span><span class="v">4.8.0 — latest stable release, tested against plugin v0.6.1.</span></li>
<li><span class="b">License</span><span class="v">MIT.</span></li>
</ul>
</div>
<div class="card">
<h3>Install as an external plugin (zip)</h3>
<ol class="ol">
<li>Electrum → <strong>Tools → Plugins</strong> → install from file → pick the built zip.</li>
<li>Enable <strong><span translate="no">Bitcoin After Life</span></strong> and restart Electrum.</li>
<li>Recommended: verify the zip's SHA-256 matches the value printed by <code>build_zip.py</code>.</li>
</ol>
</div>
</div>
<div class="callout warn">
<span class="k">⚠️</span>
<p><strong>Safety.</strong> This plugin builds real Bitcoin inheritance transactions with time-locks. Test on <strong>testnet</strong> or a small fund wallet first, and you always can review the generated transactions before broadcasting.</p>
</div>
</div>
</section>
<!-- ===== Plugin operations ===== -->
<section class="section" id="operations">
<div class="wrap">
<span class="eyebrow">Plugin operations</span>
<h2>How a will is built and kept safe</h2>
<div class="prose">
<p>The plugin generates a transaction with a <strong>Locktime</strong> set to a future date. The transaction is signed and sent to one or several Will-Executors, who retain it and broadcast it at the expiry date.</p>
<p>To provide the economic incentive for the Will-Executor to keep and broadcast the transaction, an output contains a <strong>fee payment</strong>, received only once the inheritance transaction is confirmed in the blockchain.</p>
</div>
<div class="grid cols-2" style="margin-top:8px">
<div class="card">
<h3>Changes to the beneficiaries or the Wallet Balance</h3>
<p>If there are any changes to the will for example, prior to the signed locktime, the addition of a beneficiary, or a change to the wallet balance the will is anticipated by one day and resubmitted to the will executors, without the need to invalidate the old one, saving costly On-Chain fees.</p>
</div>
<div class="card">
<h3>Postpone</h3>
<p>If the new delivery time is <em>later</em> than a will that was already signed and/or pushed, the previously committed coins must be invalidated on-chain <strong>first</strong> — otherwise a Will-Executor could broadcast the old, earlier-locktime transaction and execute the inheritance too early.</p>
</div>
</div>
<div class="callout" style="margin-top:22px">
<span class="k">🖥️</span>
<p>The will-transaction list also shows a dedicated <strong>Server</strong> column, so you always know whether each inheritance transaction is actually stored on the Will-Executor servers — independently of the row colour. See the full reference (labels, statuses, and available actions) in the <a href="https://bitcoin-after.life/docs/user-guide/will-tab.html">WILL tab guide →</a></p>
</div>
</div>
</section>
<!-- ===== FAQ ===== -->
<section class="section alt" id="faq">
<div class="wrap">
<span class="eyebrow">FAQ</span>
<h2>Frequently asked questions</h2>
<p class="sub">Seven quick answers to the most common questions about the protocol and the plugin.</p>
<div class="faq" id="faqList">
<details class="qa"><summary><span class="qn">01</span><span class="qt">What is the <span translate="no">Bitcoin After Life</span> Protocol for?</span><span class="chev"></span></summary>
<div class="ans"><p>It is software designed to manage the <strong>inheritance of your Bitcoin</strong> stored with a seed phrase (private key). It also lets you create an <strong>emergency backup</strong> of your wallet in case you lose your seed. The protocol uses time-locked transactions sent to Will-Executor servers, which broadcast them to the Bitcoin network at the pre-set delivery date.</p></div>
</details>
<details class="qa"><summary><span class="qn">02</span><span class="qt">Why a plugin for Electrum rather than a dedicated wallet?</span><span class="chev"></span></summary>
<div class="ans"><p>Because <strong>Electrum is hyper-tested</strong> and considered the gold standard among Bitcoin wallets. The BAL plugin does <em>not</em> sign transactions itself — that is entirely Electrum's job. This maximises security, reduces the maintenance burden, and lets users trust the signing process completely independently of BAL.</p></div>
</details>
<details class="qa"><summary><span class="qn">03</span><span class="qt">How much does an inheritance or wallet backup cost?</span><span class="chev"></span></summary>
<div class="ans"><p>An inheritance costs two fees, both paid <strong>exclusively in Bitcoin</strong> — no subscriptions, no credit cards:</p>
<ul><li><strong>Miner fee:</strong> chosen by the user at signing time. A higher fee is recommended to ensure future confirmation.</li><li><strong>Will-Executor fee:</strong> deducted directly from the inheritance at execution, when the Will-Executor broadcasts the transaction.</li></ul></div>
</details>
<details class="qa"><summary><span class="qn">04</span><span class="qt">What is a Will-Executor?</span><span class="chev"></span></summary>
<div class="ans"><p>Will-Executor servers are the <strong>beating heart of the BAL Protocol</strong>. They receive your pre-signed, time-locked transactions, store them securely, and broadcast them at the pre-set delivery date. They <em>cannot alter or steal</em> the transaction, because it is already fully signed by you. Their only incentive to act correctly is the <strong>fee embedded in the transaction</strong>, received only once the inheritance is confirmed on-chain.</p></div>
</details>
<details class="qa"><summary><span class="qn">05</span><span class="qt">Can I use the plugin with a hardware wallet?</span><span class="chev"></span></summary>
<div class="ans"><p>Yes — the BAL plugin is compatible with <strong>any hardware wallet</strong> supported by Electrum (Ledger, Trezor, Coldcard, BitBox02, Jade, KeepKey and others). Using a dedicated PC for cold-wallet signing is recommended for maximum security.</p></div>
</details>
<details class="qa"><summary><span class="qn">06</span><span class="qt">Is the plugin compatible with all Electrum wallet types?</span><span class="chev"></span></summary>
<div class="ans"><p>BAL works with <strong>standard Electrum wallets</strong> (single-signature, seed-based) and with <strong>hardware wallets</strong> supported by Electrum (see FAQ 11). It is <strong>not yet compatible with multisig wallets</strong> — support is planned for a future plugin release. Compatibility with <strong>Electrum's TrustedCoin (2FA) wallets</strong> is currently <strong>unknown / unsupported</strong>; it has not yet been determined whether or when this will be addressed.</p>
<p>If you use a multisig or TrustedCoin (2FA) wallet, please do not rely on BAL for inheritance until compatibility is confirmed.</p></div>
</details>
<details class="qa"><summary><span class="qn">07</span><span class="qt">Is a BAL 2.0 version planned?</span><span class="chev"></span></summary>
<div class="ans"><p>Yes — <strong>BAL 2.0</strong> is in development. The main new feature will be support for <strong>staggered inheritance</strong>: instead of a single lump-sum transfer, it will be possible to schedule gradual distributions over time (for example 10% per year), giving heirs a more structured and flexible inheritance plan.</p></div>
</details>
</div>
<div class="callout faq-more" style="margin-top:22px;max-width:880px">
<span class="k">📖</span>
<p>Looking for something more specific — Check Alive, running a Will-Executor, wallet compatibility, and more? See the <strong>full FAQ in the manual</strong>. <a href="https://bitcoin-after.life/docs/faq.html">Browse the full FAQ →</a></p>
</div>
</div>
</section>
<!-- ===== From the blog =====
The three most recent posts, newest first. When a new article goes live,
add it at the top here, drop the oldest, and update the latest-post
pointer in the hero. -->
<section class="section" id="blog">
<div class="wrap">
<span class="eyebrow">From the blog</span>
<h2>Notes on inheritance, Bitcoin and sovereignty</h2>
<p class="sub">Essays and practical notes from the project — on why inheritance breaks down, and on what mathematics can guarantee that paperwork cannot.</p>
<div class="grid cols-3">
<article class="card">
<div class="chips"><span class="chip">19 September 2026</span></div>
<h3 style="margin-top:12px"><a href="blog/the-quietest-day.html">The quietest day: what really happens when your Bitcoin inheritance arrives</a></h3>
<p>A well-designed inheritance should be a non-event on the day it arrives. What the heir actually does, what to leave them years in advance, and why an address without a key is a tomb.</p>
<a class="more" href="blog/the-quietest-day.html">Read the article →</a>
</article>
<article class="card">
<div class="chips"><span class="chip">12 September 2026</span></div>
<h3 style="margin-top:12px"><a href="blog/liquid-network-and-why-we-trust-only-bedrock.html">Liquid Network's $320M lesson: why BAL only builds on bedrock</a></h3>
<p>A $320 million bug on a Bitcoin sidechain is a reminder of a rule we follow without exception: no sidechains, no Layer-2s, no experimental scripts — only Bitcoin's most tested primitives.</p>
<a class="more" href="blog/liquid-network-and-why-we-trust-only-bedrock.html">Read the article →</a>
</article>
<article class="card">
<div class="chips"><span class="chip">6 September 2026</span></div>
<h3 style="margin-top:12px"><a href="blog/what-a-will-executor-can-see.html">What can a Will-Executor actually see? Privacy in the BAL protocol</a></h3>
<p>A Will-Executor holds one signed, time-locked transaction — and nothing else. What it can see, what it cannot, and why that protection comes from architecture rather than from a privacy policy.</p>
<a class="more" href="blog/what-a-will-executor-can-see.html">Read the article →</a>
</article>
</div>
<p style="margin-top:22px"><a class="more" href="blog.html">All articles on the blog →</a></p>
</div>
</section>
</main>
<!-- ===== Footer ===== -->
<footer>
<div class="wrap">
<div class="sig">Svātantrya</div>
<div>Signed — <span translate="no">Bitcoin After Life</span> Protocol</div>
<div class="links">
<a href="https://bitcoin-after.life">bitcoin-after.life</a>
<a href="mailto:info@bitcoin-after.life">info@bitcoin-after.life</a>
<a href="https://x.com/BitcoinAfterLif">@BitcoinAfterLif</a>
<a href="https://bitcoin-after.life/svatantrya.asc">PGP Key</a>
<a href="https://bitcoin-after.life/docs/press-kit.html">Press Kit</a>
<a href="https://bitcoin-after.life/gitea/bitcoinafterlife">Source Code</a>
</div>
<div class="built">Built with ₿itcoin. No FIAT was used in the making of this protocol.</div>
</div>
</footer>
<script>
/*
Mobile menu toggle.
The `nojs` class is set on <html> in the document head and removed here,
so a visitor without JavaScript keeps a plain inline navigation rather
than a button that does nothing.
*/
(function () {
const toggle = document.getElementById('navToggle');
const nav = document.getElementById('mainNav');
if (!toggle || !nav) return;
function setOpen(open) {
nav.classList.toggle('open', open);
toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
toggle.setAttribute('aria-label', open ? 'Close menu' : 'Open menu');
}
toggle.addEventListener('click', function () {
setOpen(!nav.classList.contains('open'));
});
// Close after choosing a destination, otherwise the panel would cover
// the section the visitor just jumped to.
nav.addEventListener('click', function (e) {
if (e.target.tagName === 'A') setOpen(false);
});
document.addEventListener('keydown', function (e) {
if (e.key === 'Escape') setOpen(false);
});
})();
</script>
<script>
/*
FAQ accordion built on native <details>/<summary>.
WHY native: it stays accessible and keyboard-friendly with zero JS.
This small script just enforces single-open behavior (clicking one
question closes the others) for a tidier reading experience.
*/
const items = document.querySelectorAll('#faqList details.qa');
items.forEach(d => {
d.addEventListener('toggle', () => {
if (d.open) items.forEach(o => { if (o !== d) o.open = false; });
});
});
</script>
<script>
(function () {
const apiUrl = 'https://bitcoin-after.life/gitea/api/v1/repos/bitcoinafterlife/bal-electrum-plugin/releases/latest';
const link = document.getElementById('latest-release-link');
const sig = document.getElementById('latest-release-sig');
const releasesUrl = 'https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases';
if (!link) return;
fetch(apiUrl)
.then(r => r.ok ? r.json() : Promise.reject(new Error('HTTP ' + r.status)))
.then(data => {
if (!data || !data.tag_name) return;
link.textContent = data.tag_name;
const assets = data.assets || [];
// Take the real zip asset straight from the API instead of
// rebuilding its name from a fixed template. The publisher does
// not always use the same filename (e.g. "bal_electrum_plugin_v0.6.0.zip"
// vs "bal_v0.6.1.zip"), so any reconstructed name eventually breaks.
const zipAsset = assets.find(a => /\.zip$/i.test(a.name));
const sigAsset = assets.find(a => /\.zip\.(sig|asc)$/i.test(a.name));
// If no zip asset is found, fall back to the releases page so the
// link is never dead.
link.href = zipAsset ? zipAsset.browser_download_url : releasesUrl;
if (sig) {
if (sigAsset) {
sig.href = sigAsset.browser_download_url;
sig.style.display = 'inline';
} else {
sig.style.display = 'none';
}
}
})
.catch(err => {
console.error('Failed to fetch latest release:', err);
link.href = releasesUrl;
if (sig) sig.style.display = 'none';
});
})();
</script>
</body>
</html>