Unilateral-exit readiness
A seed alone is not an operator-outage recovery backup for Spark
Blink's published case study states that a seed cannot rediscover current leaves after Operators are offline. Its documented procedure requires complete, current, validated leaf and ancestor state, represented by a recovery bundle saved while Operators are reachable; with that state, the seed still supplies signing authority. 12
What the evidence shows
Technical and product details
- State requirement
Blink states that current leaves cannot be discovered from the seed alone after Spark Operators are offline. 1
Supporting material shown on this page
Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14 Relevant lines from the pinned source · open raw file 22leaves cannot be discovered from the seed alone. The exit needs a **recovery 23bundle** — a JSON snapshot of the wallet's leaves and their ancestor 24transactions — refreshed while operators are still online: 25 26```sh 27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json 28``` - State representation
Blink's procedure stores the required current leaves and ancestor transactions in a recovery bundle. Another implementation could persist equivalent complete state in a different format. 1
Supporting material shown on this page
Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14 Relevant lines from the pinned source · open raw file 22leaves cannot be discovered from the seed alone. The exit needs a **recovery 23bundle** — a JSON snapshot of the wallet's leaves and their ancestor 24transactions — refreshed while operators are still online: 25 26```sh 27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json 28``` - Online preparation
The required state must be refreshed and validated while Operators remain reachable; the seed does not encode later changes to the wallet's Spark tree. 1
Supporting material shown on this page
Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14 Relevant lines from the pinned source · open raw file 22leaves cannot be discovered from the seed alone. The exit needs a **recovery 23bundle** — a JSON snapshot of the wallet's leaves and their ancestor 24transactions — refreshed while operators are still online: 25 26```sh 27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json 28``` - Outage consequence
If current, complete exit state was not saved in advance, the documented offline procedure has no graph from which to construct the exit. 1
Supporting material shown on this page
Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14 Relevant lines from the pinned source · open raw file 22leaves cannot be discovered from the seed alone. The exit needs a **recovery 23bundle** — a JSON snapshot of the wallet's leaves and their ancestor 24transactions — refreshed while operators are still online: 25 26```sh 27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json 28```
Scope control
What this does not establish
- The seed still derives the signing keys, fee-funding address, and final sweep. Complete current leaf-and-ancestor state need not use Blink's JSON format, but it must exist before an all-Operator outage. With that state and fee funds, the documented exit proceeds without later Operator cooperation. 12
Sources and excerpts
Primary sources
The relevant details and available source-code excerpts appear alongside the claims above. This list preserves the complete original-source trail for independent verification.
Blink recovery-bundle requirement
Pinned source code · github.com · Pinned or archival · checked 2026-07-14
Blink seed-derived operations
Pinned source code · github.com · Pinned or archival · checked 2026-07-14
How sources, absence findings, and limitations were evaluated