The exit
Breez 0.23 fixes durable exit-state storage, but wallets pinned to older releases do not inherit that fix
Breez 0.23 now durably stores the exit tree and supports state export, correcting the earlier default-persistence gap. Reviewed wallets pinned to 0.22 or earlier do not inherit that capability until they upgrade, collect and protect the state, and integrate a recovery workflow. 1234
What the evidence shows
Technical and product details
- Version transition
Breez's earlier default SQLite backend supplied no persistent tree store. Breez 0.23.0 now creates a SqliteTreeStore and exposes export and import operations for operator-outage state. 12
Supporting material shown on this page
Breez 0.23 SQLite tree storePinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 39 .ok_or_else(|| SdkError::Generic("storage path is not valid UTF-8".to_string()))?; 40 let tree_store = Arc::new( 41 spark_sqlite::SqliteTreeStore::new(db_path) 42 .map_err(|e| SdkError::Generic(e.to_string()))?, 43 ); 44 Ok(Arc::new(ResolvedStores { 45 storage,Breez 0.23 state exportPinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 120 /// Serializes everything needed to unilaterally exit this wallet's funds 121 /// while the Spark operators are unreachable, so it can be kept somewhere 122 /// the wallet's own storage cannot take with it. 123 pub async fn export_unilateral_exit_state( 124 &self, 125 ) -> Result<ExportUnilateralExitStateResponse, SdkError> { 126 self.inner.export_unilateral_exit_state().await - Current wallet lag
The current reviewed Blink source pins Breez 0.22.0; Primal, Radar, and Cake pin still earlier integrations. Updating the SDK is a wallet release and product-integration task, not an automatic property of an already shipped seed backup. 34
Supporting material shown on this page
Blink Breez 0.22 dependencyPinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 61 "dependencies": { 62 "@apollo/client": "^3.9.11", 63 "@bitcoinerlab/secp256k1": "^1.1.1", 64 "@blinkbitcoin/blink-client": "1.1.0", 65 "@blinkbitcoin/react-native-geetest-module": "0.1.2", 66 "@breeztech/breez-sdk-spark-react-native": "0.22.0", 67 "@expo/react-native-action-sheet": "^4.0.1",Blink unstarted exit flowsPinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 33 [SdkErrorTags.StorageError]: SelfCustodialErrorCode.Generic, 34 [SdkErrorTags.Signer]: SelfCustodialErrorCode.Generic, 35 [SdkErrorTags.SparkError]: SelfCustodialErrorCode.Generic, 36 /** Optimization / unilateral-exit state conflicts (0.22): flows the app never starts, 37 * so no user-facing refinement exists for them. */ 38 [SdkErrorTags.OptimizationAlreadyRunning]: SelfCustodialErrorCode.Generic, 39 [SdkErrorTags.OptimizationCancelled]: SelfCustodialErrorCode.Generic, - Product consequence
Breez has fixed the lower-level persistence gap, but consumers only benefit after their wallet upgrades, collects complete state, protects an export against device loss, and exposes a usable recovery flow. 13
Supporting material shown on this page
Breez 0.23 SQLite tree storePinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 39 .ok_or_else(|| SdkError::Generic("storage path is not valid UTF-8".to_string()))?; 40 let tree_store = Arc::new( 41 spark_sqlite::SqliteTreeStore::new(db_path) 42 .map_err(|e| SdkError::Generic(e.to_string()))?, 43 ); 44 Ok(Arc::new(ResolvedStores { 45 storage,Blink Breez 0.22 dependencyPinned source code · github.com · checked 2026-08-24 Relevant lines from the pinned source · open raw file 61 "dependencies": { 62 "@apollo/client": "^3.9.11", 63 "@bitcoinerlab/secp256k1": "^1.1.1", 64 "@blinkbitcoin/blink-client": "1.1.0", 65 "@blinkbitcoin/react-native-geetest-module": "0.1.2", 66 "@breeztech/breez-sdk-spark-react-native": "0.22.0", 67 "@expo/react-native-action-sheet": "^4.0.1",
Scope control
What this does not establish
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.
Breez 0.23 SQLite tree store
Pinned source code · github.com · Pinned or archival · checked 2026-08-24
Breez 0.23 state export
Pinned source code · github.com · Pinned or archival · checked 2026-08-24
Blink Breez 0.22 dependency
Pinned source code · github.com · Pinned or archival · checked 2026-08-24
Blink unstarted exit flows
Pinned source code · github.com · Pinned or archival · checked 2026-08-24
How sources, absence findings, and limitations were evaluated