spark.exposed

The exit

Spark's current mainnet CLI is a package generator, not a complete recovery workflow

The reviewed reference CLI starts with live leaf discovery and external fee UTXO inputs. Its normal mainnet mode emits transactions and unsigned CPFP PSBTs with manual instructions; the reviewed command does not provide a complete durable broadcast, resume, timelock-monitoring and sweep workflow. 1

1 sourceEvidence reviewed through September 11, 2026

Content checked against the September 11 source audit. Historical measurements and product searches retain their stated dates; deployed configuration and later releases are not independently attested.

What the evidence shows

Technical and product details

  1. Documented behavior

    The unilateralexit command begins with live wallet.getLeaves(), constructs a coordinator client, and asks the user for raw external UTXO information. 1

    Supporting material shown on this page

    Spark CLI unilateralexit implementationPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    3842                walletInternals.config.getCoordinatorAddress(),
    3843              );
    3844
    3845            const feeBumpChains = await constructUnilateralExitFeeBumpPackages(
    3846              hexStrings, // Use all selected leaves
    3847              utxos,
    3848              { satPerVbyte: feeRate },
  2. Technical details

    In normal/mainnet mode it prints raw transactions and unsigned CPFP PSBTs, tells the user to sign them, and instructs manual root-to-leaf parent/child submission. 1

    Supporting material shown on this page

    Spark CLI unilateralexit implementationPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    3842                walletInternals.config.getCoordinatorAddress(),
    3843              );
    3844
    3845            const feeBumpChains = await constructUnilateralExitFeeBumpPackages(
    3846              hexStrings, // Use all selected leaves
    3847              utxos,
    3848              { satPerVbyte: feeRate },
  3. Missing operations

    The command contains no complete mainnet broadcaster, durable resume engine, real-time timelock monitor, or final sweep workflow. 1

    Supporting material shown on this page

    Spark CLI unilateralexit implementationPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    3842                walletInternals.config.getCoordinatorAddress(),
    3843              );
    3844
    3845            const feeBumpChains = await constructUnilateralExitFeeBumpPackages(
    3846              hexStrings, // Use all selected leaves
    3847              utxos,
    3848              { satPerVbyte: feeRate },
  4. Product consequence

    Even the reference command leaves the safety-critical multi-day execution to an expert using external Bitcoin tooling. 1

    Supporting material shown on this page

    Spark CLI unilateralexit implementationPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    3842                walletInternals.config.getCoordinatorAddress(),
    3843              );
    3844
    3845            const feeBumpChains = await constructUnilateralExitFeeBumpPackages(
    3846              hexStrings, // Use all selected leaves
    3847              utxos,
    3848              { satPerVbyte: feeRate },

Scope control

What this does not establish

  • This describes the cited Spark CLI command, not every possible exit tool. Separate software can automate broadcasting, persistence, timelock monitoring, and sweeping once complete state and fee funds exist. This finding concerns the reviewed reference CLI normal mainnet mode, not all possible tooling or the separate Breez SDK signing implementation. 1

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.

1

Spark CLI unilateralexit implementation

Pinned source code · github.com · Pinned or archival · checked 2026-07-14

Open original source

How sources, absence findings, and limitations were evaluated