BAPBA Protocol
Concepts

Will Transfer Protocol

Detailed of what happens when a will explanation is triggered — from survivor notification to document access.

Will Transfer Protocol

The Will Transfer Protocol defines exactly what happens when a will is activated — either through automated liveness check failure or survivor-initiated transfer.

Trigger Conditions

A will transfer can be triggered in two ways:

1. Automated Trigger (Liveness Failure)

After the host misses HCRAC consecutive liveness checks:

  • HCIT (check interval) passes without response
  • HCRT (response time) × HCRAC (retry attempts) expires
  • Host is marked as "presumed dead"

2. Survivor-Initiated Trigger

Any survivor can initiate the transfer manually if they believe the host has died:

  • Survivor verifies via OTP
  • Transfer process begins immediately
  • Host is notified and can cancel within HCRT

Transfer States

A will goes through these states during transfer:

StateDescription
activeNormal state — host is alive
pending_transferTriggered but awaiting confirmation period
transfer_initiatedTransfer officially started
awaiting_authenticationSurvivors authenticating
accessibleThreshold met, documents available
transfer_stalledNot enough survivors authenticated (30+ days)
transfer_failedInsufficient authentication after 90 days

Step-by-Step Flow

Phase 1: Transfer Initiation

┌─────────────────────────────────────────────────────────────────┐
│                    PHASE 1: INITIATION                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. Trigger condition met                                      │
│                                                                  │
│  2. All survivors notified:                                    │
│     "The host of the will '[will name]' has not responded      │
│      to liveness checks. The will transfer process has         │
│      been initiated."                                          │
│                                                                  │
│  3. Survivor portal opens for authentication                   │
│                                                                  │
│  4. Host (if alive) can cancel within HCRT                     │
│                                                                  │
│  5. Transfer status → "transfer_initiated"                    │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Phase 2: Survivor Authentication

┌─────────────────────────────────────────────────────────────────┐
│                PHASE 2: AUTHENTICATION                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Each survivor must verify their identity:                     │
│                                                                  │
│  1. Access Survivor Portal                                      │
│                                                                  │
│  2. Select their name from the will's survivor list           │
│      (Names only — no contact details shown publicly)         │
│                                                                  │
│  3. OTP sent via their primary connector:                     │
│      - Try primary channel                                      │
│      - Fall back to secondary if failed                        │
│      - If all fail, prompt for backup code                     │
│                                                                  │
│  4. Enter 6-digit OTP (10-minute expiry)                      │
│      - 3 attempts per OTP                                      │
│      - Max 5 OTP requests per hour per survivor                │
│                                                                  │
│  5. Or use backup code (single-use)                             │
│                                                                  │
│  6. Successful verification → SSS share decrypted in memory    │
│                                                                  │
│  7. Authentication progress displayed:                         │
│      "2 of 3 survivors authenticated"                          │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Phase 3: Threshold Met

┌─────────────────────────────────────────────────────────────────┐
│              PHASE 3: THRESHOLD MET                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  When K survivors have authenticated:                          │
│                                                                  │
│  1. Server collects decrypted SSS shares from memory           │
│                                                                  │
│  2. Lagrange interpolation reconstructs DEK                  │
│                                                                  │
│  3. Documents decrypted                                        │
│                                                                  │
│  4. SHA-256 hashes verified                                     │
│                                                                  │
│  5. If hash mismatch → alert all survivors, provide anyway    │
│                                                                  │
│  6. Will status → "accessible"                                 │
│                                                                  │
│  7. All authenticated survivors can:                           │
│     - View personal message from host                           │
│     - Download documents                                        │
│     - Verify integrity                                          │
│                                                                  │
│  8. Access window begins (default: 7 days)                    │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Phase 4: Document Access

Authenticated survivors see:

┌─────────────────────────────────────────────────────────────────┐
│                 SURVIVOR ACCESS PORTAL                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Personal Message from Host                             │   │
│  │  ───────────────────────────────────────────────         │   │
│  │  "Dear Family,                                          │   │
│  │                                                          │   │
│  │   If you're reading this, I'm gone. I wanted to         │   │
│  │   make sure you had access to these important           │   │
│  │   documents. I love you all..."                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Your Documents                                         │   │
│  │  ───────────────────────────────────────────────         │   │
│  │                                                          │   │
│  │  📄 last_will_and_testament.pdf  2.4 MB  ✅ Verified   │   │
│  │  📄 insurance_policy_details.pdf  1.1 MB  ✅ Verified  │   │
│  │  📄 account_passwords.odt         340 KB  ✅ Verified    │   │
│  │                                                          │   │
│  │  [Download All] [View Individual]                       │   │
│  │                                                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  ⚠️ Access expires in 5 days, 12 hours                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Authentication Details

OTP Delivery

ChannelTypical DeliveryFallback
Email< 30 secondsSMS
SMS< 10 secondsEmail
WhatsApp< 10 secondsTelegram
Telegram< 10 secondsEmail

OTP Security

  • 6 digits — 1 million possible codes
  • 10-minute expiry — Time window for entry
  • 3 attempts — Per OTP session
  • Rate limiting — Max 5 OTP requests per hour per survivor
  • Hashed storage — OTPs hashed with Argon2

Backup Codes

Each survivor has 5 backup codes:

  • Format: 8-character alphanumeric (e.g., A3F7-K9M2)
  • Single-use — Marked as consumed after use
  • Irreversible — Hash stored, can't be recovered
  • Regeneration — Host can regenerate (invalidates old codes)

Failure Scenarios

Insufficient Survivors

If fewer than K survivors authenticate within 30 days:

  1. Status → "transfer_stalled"
  2. Weekly reminders sent to unauthenticated survivors
  3. After 90 days → "transfer_failed"

Document Integrity Failure

If SHA-256 hash doesn't match during decryption:

  1. Alert all authenticated survivors
  2. Log security incident
  3. Still provide access with warning
  4. Document may have been tampered with

Storage Unavailable

If storage provider is disconnected during transfer:

  1. Use cached presigned URLs if available
  2. Notify host to reconnect (if alive)
  3. May delay transfer until storage restored

Access Window

Once threshold is met, survivors have 7 days (configurable) to access documents.

After the window expires:

  • Documents are re-encrypted
  • SSS shares are redistributed
  • Will returns to active state (if host revived)

Cancellation

Host Cancellation

If triggered but host is alive:

  1. Host logs into dashboard
  2. Clicks "Cancel Transfer"
  3. All survivors notified
  4. Will status returns to "active"
  5. Normal liveness checks resume

Limitations

  • Host can only cancel during transfer_initiated state
  • After threshold is met, cancellation is no longer possible

Complete Flow Diagram

┌─────────────────────────────────────────────────────────────────┐
│                                                                  │
│  ┌──────────┐    ┌─────────────────┐    ┌──────────────────┐  │
│  │  ACTIVE  │───►│ PENDING_TRANSFER│───►│TRANSFER_INITIATED │  │
│  └──────────┘    └─────────────────┘    └──────────────────┘  │
│       ▲                                          │             │
│       │                                          ▼             │
│       │              ┌─────────────────────────────────┐      │
│       │              │   SURVIVORS AUTHENTICATING      │      │
│       │              │   Each survivor verifies OTP    │      │
│       │              │   Server collects SSS shares    │      │
│       │              └─────────────────────────────────┘      │
│       │                              │                          │
│       │                              ▼                          │
│       │              ┌─────────────────────────────────┐      │
│       │              │   THRESHOLD MET (K of N)        │      │
│       │              │   - Reconstruct DEK             │      │
│       │              │   - Decrypt documents           │      │
│       │              │   - Verify hashes               │      │
│       │              └─────────────────────────────────┘      │
│       │                              │                          │
│       │                              ▼                          │
│       │              ┌─────────────────────────────────┐      │
│       │              │        ACCESSIBLE               │      │
│       │              │   Survivors download docs       │      │
│       │              │   Access window expires         │      │
│       │              └─────────────────────────────────┘      │
│       │                              │                          │
│       │                              ▼                          │
│       │              ┌─────────────────────────────────┐      │
│       │              │  RE-SEALED (or STALLED/FAILED)  │      │
│       │              └─────────────────────────────────┘      │
│       │                                                      │
│       └──────────────────────────────────────────────────────┘

FAQ

Can survivors coordinate with each other?

Yes. The portal shows progress (e.g., "2 of 3 survivors authenticated"). Survivors can see who has authenticated but not their contact information.

What if survivors can't receive OTP?

They can use backup codes. If they have neither OTP access nor backup codes, they cannot authenticate.

Can the host cancel after survivors authenticate?

No. Once the threshold is met, the transfer is final. This prevents a malicious host from canceling after survivors have already invested effort.

How long does the entire process take?

  • If survivors respond quickly: 24-48 hours from first authentication to access
  • If survivors are unavailable: Up to 30 days before "stalled", 90 days before "failed"

Is there a way to expedite transfer?

Survivors can all authenticate quickly by:

  • Checking their email/SMS regularly
  • Using backup codes if OTP delivery fails

Next Steps

On this page