SW
← All projectsSparrow

Sparrow Wallet

Desktop Bitcoin wallet focused on security, privacy, multisignature, and hardware signers.

BitcoinHardware integrationSoftware walletsNormal
Repository coverage

410 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

71security candidates271second-pass queue399AI analyses
88commits · 30 days
151commits · 60 days
249commits · 180 days
404commits · 365 days
Backfill bands
Aug 5 → Feb 6100 seen9 candidatesComplete
Feb 6 → Jun 6128 seen15 candidatesComplete
Jun 6 → Jul 67 seen1 candidatesComplete
Jul 6 → Aug 546 seen8 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

48/100 average clarity
0Strong · 80–100
35Adequate · 60–79
324Thin · 40–59
51Opaque · 0–39
2security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Craig Raw39667385647
doblon8313048
nzb-tuxxx212060
Michele Balistreri212048
nroktib111050
Liz Lightning202045
PeterXMR101045
Ian McKenzie101050
ottosch101050
craigraw101060
Analysis record

Published AI watches

Last scanned 0 minutes ago

Informational 17 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

remove the surplus signatures progress bar segments a finalized multisig transaction discards

This commit fixes a UI display bug in Sparrow Wallet's signature progress bar. When a multi-signature Bitcoin transaction becomes finalized, extra signatures beyond the required threshold are discarded. Previously, the progress bar did not…

UI state desynchronization after multisig finalizationProgress bar segment count mismatch with actual signature setNo change to cryptographic or transaction validation code
40f77206by Craig Raw+9−12 files
No security note in commit
Informational 15 AI analysisMessage 38 · Opaque
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

bump to v2.5.6

This commit is a routine version bump from 2.5.5 to 2.5.6. It only changes version strings in four files (build configuration, documentation, macOS app metadata, and a Java source constant). There are no code logic changes, no bug fixes, a…

f7f36d00by Craig Raw+4−44 files
No security note in commit
Informational 17 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

use a framerate-capped interpolated timeline for the server toggle and wallet tab loading pulse animations, and stop any running server toggle pulse before starting a new one

This commit tweaks two visual animations in the Sparrow Wallet desktop app: the server connection toggle pulse and the wallet loading pulse. It caps how often the screen is redrawn during the pulse and makes sure any already-running pulse …

Resource-consumption / performance hardening: capped animation framerate reduces CPU/GPU load from continuous 60 Hz redraws.State-management hardening: stopping an existing pulse before starting a new one prevents accumulation of running Timelines.No direct security flaw is present in the diff; signals are defensive-hardening in nature.
4da29f4eby Craig Raw+7−132 files
No security note in commit
Low 45 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

cut pasted amounts to the unit precision in the send tab and send to many, and stop the csv import skipping fractional sats and exponent amounts

This commit fixes how Sparrow Wallet handles pasted or imported Bitcoin amounts. Previously, very small or oddly formatted amounts (like scientific notation '1e-8' or fractional satoshis) could be misread or silently skipped during CSV imp…

Amount parsing inconsistency between UI paste and CSV importSilent swallowing of NumberFormatException could skip payment rowsUse of Double.parseDouble for monetary amounts
9e999d3fby Craig Raw+39−362 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add a system theme option that follows the os light or dark setting, and make it the default for new installs

This commit adds a new 'System' theme option to the Sparrow Wallet desktop app that automatically follows the operating system's light or dark mode setting, and makes it the default for new installations. It also updates various UI compone…

a573f22aby Craig Raw+90−3215 files
No security note in commit
Low 36 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

refuse bitbox02 keystore import and discovery for legacy p2sh and p2pkh wallets it cannot sign for, and hide those script types from the device import menus

This commit tightens how Sparrow Wallet handles BitBox02 hardware wallets when working with older Bitcoin address formats (legacy P2PKH and P2SH). Previously, the app could let a user import or discover a wallet that the BitBox02 cannot ac…

Prevents user from configuring a signing device for wallet types the device cannot sign forCould avoid funds becoming unspendable or requiring complex recovery if a user unknowingly imported an unsupported legacy script typeReplaces hard-coded device-specific logic with a generic capability model, reducing future similar issues
de169b18by Craig Raw+23−73 files
No security note in commit
Low 37 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

reject unknown command line options and values given to flags with an error and exit code instead of starting on the default network, and accept the --option=value form

This commit tightens how Sparrow Wallet handles command-line arguments. Previously, typos or unexpected values could silently be ignored, causing the wallet to start on the default Bitcoin network instead of the one the user intended. Now,…

Command-line argument parsing now rejects unknown options instead of silently ignoring themBoolean flags now reject `--flag=value` forms that would otherwise silently pass the value through as a file/URI argumentProgram now exits with non-zero status on argument errors, reducing risk of unintended default-network startup
46197586by Craig Raw+26−12 files
No security note in commit
Low 37 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

ignore amount digits beyond the selected unit precision in the send tab amount and fee fields and the send to many grid, instead of truncating them in the payment

This commit fixes a UI bug in the Sparrow Bitcoin wallet where typing or pasting too many decimal digits into amount or fee fields could be silently truncated, potentially causing a user to send a different amount than they saw on screen. …

Precision-loss / truncation bug in financial input fieldsUser-facing amount/fee mismatch between displayed value and parsed valueInput validation now tied to unit-specific precision (satoshis indivisible)
6cde97adby Craig Raw+48−315 files
No security note in commit
Low 41 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

derive public keys from the seed when importing a sparrow wallet file

This commit changes how Sparrow Wallet restores its own wallet files. Previously, when importing a Sparrow wallet file, the public keys (used to find transactions and addresses) might not be correctly rebuilt from the seed phrase. The fix …

Correctness fix for key material restoration during wallet importAdds test coverage for encrypted and unencrypted seed-based wallet importAdds test coverage for watch-only wallet import
1fb4e8bbby Craig Raw+149−23 files
No security note in commit
Informational 21 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add file import of the xpub descriptor jade writes to usb storage

This commit adds the ability to import a Bitcoin wallet's extended public key (xpub) into Sparrow Wallet from a file written by a Blockstream Jade hardware wallet via USB storage. Previously, Jade only supported QR-code import. The change …

New file import path parses external descriptor data and converts it to a keystoreScript type mismatch is explicitly rejected with an IllegalArgumentExceptionSilent payments policy (SINGLE_SP) is explicitly rejected
c4b53879by Craig Raw+74−44 files
No security note in commit
Low 34 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

include the non-witness utxo in psbts for krux keystores, and in the qr display when the psbt has more than one input

This commit changes how Sparrow Wallet builds QR codes for partially-signed Bitcoin transactions (PSBTs). For certain hardware wallets (Krux), it now includes extra data (the full previous transaction, called 'non-witness utxo') in the QR …

Hardware wallet signing correctness: missing non-witness UTXO data can cause some signers to reject or mis-handle multi-input segwit PSBTsQR payload size increase: larger QR codes may be harder to scan reliably, potentially affecting usabilitySubproject update (drongo) likely contains related serialization logic changes
0e2c402fby Craig Raw+4−32 files
No security note in commit
Low 35 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

clear a scanned wallet when a file, text payload or unrecognised qr is imported in the same pane

This commit fixes a UI state bug in Sparrow Wallet's import pane. Previously, when a user scanned or imported a wallet and then imported a non-wallet file, text payload, or unrecognized QR code in the same pane, the previously loaded walle…

Stale UI state could mislead users about which wallet is loadedCross-import state retention in single import paneUser interface consistency fix with security-relevant consequences
d7ded1e7by Craig Raw+4−21 file
No security note in commit
Low 35 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

lock the cormorant store against client connection reads and serve history as a copy, and close the client socket however its handler exits

This commit fixes two reliability issues in Sparrow Wallet's built-in Electrum server (Cormorant). First, it makes sure the internal transaction store is locked while being read or updated, and returns a fresh copy of a wallet's history so…

Concurrency: shared mutable store accessed by client handler and polling threads now synchronizedData consistency: history returned as a defensive copy to avoid iterator seeing concurrent modificationsResource leak: client socket now closed in finally block regardless of exception path
6cc4d50aby Craig Raw+57−94 files
No security note in commit
Low 44 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

ensure cormorant responses and notifications are always serialized per client connection

This commit fixes a race condition in Sparrow Wallet's built-in Electrum server (Cormorant). Previously, a response to a wallet client and an asynchronous notification (like a new block or a balance update) could be written to the same net…

Race condition on shared socket output streamConcurrent writes from RPC response path and event-bus notification pathPotential interleaving/framing of JSON-RPC messages on same TCP connection
6d9d3014by Craig Raw+146−303 files
No security note in commit
Low 27 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

wake a silent payments history waiter when a failed widening restores a completed scan, rather than leaving it parked for the session

This commit fixes a bug in Sparrow Wallet's silent-payments scanning cache. If a background scan had already finished, then a later 'widening' request to extend the scan failed and rolled back, any history request that arrived during the f…

Concurrency / condition-variable waiter starvationSilent-payments history lookup hang / wallet UI unresponsivenessFailure-recovery path missing signal on rollback
7868a94dby Craig Raw+100−122 files
No security note in commit
Informational 18 AI analysisMessage 60 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

guard a short server.version response in the desktop and terminal connection tests

This commit fixes a minor crash bug in Sparrow Wallet's connection-test screens. Previously, if a Bitcoin Electrum server answered the version request with an unusually short response, the wallet would try to read list items that didn't ex…

Input validation hardening for external server responseIndexOutOfBoundsException prevented in UI feedback pathNo cryptographic, authentication, or transaction logic touched
66348fafby Craig Raw+4−42 files
No security note in commit
Low 37 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

omit a paynym contact whose payment code does not parse rather than keeping it with a null code or failing the whole paynym response

This commit fixes a bug in Sparrow Wallet's PayNym (BIP47 reusable payment code) contact handling. Previously, if a single contact in your PayNym following/followers list had a malformed payment code, the app either kept a broken contact w…

Null payment code previously stored in contact objectPotential NullPointerException or downstream dereference of null PaymentCode in contact lists/searchWhole PayNym response could fail on one malformed contact
94ebb849by Craig Raw+43−114 files
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

skip the exchange currencies request in offline mode in the desktop and terminal general settings

This change stops Sparrow Wallet from trying to fetch live fiat-currency exchange rates when the user has explicitly chosen 'offline mode'. Instead of making a network request that is doomed to fail, it now reuses the currency already save…

Avoids unnecessary network egress in offline modeReduces error/warning noise for expected offline behavior
b91f7993by Craig Raw+15−12 files
No security note in commit
Low 37 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

skip addresses already given out under a label and widen the gap limit on an explicit advance in the terminal receive dialog

This commit fixes two related Bitcoin wallet behaviors in Sparrow. First, when you ask for a new receive address, the wallet now skips any address that already has a label, because a label means that address was already given to someone. P…

Address reuse prevention: labeled-but-empty addresses are now skipped consistently across desktop and terminal receive flowsGap-limit widening on explicit advance reduces risk of missing funds during wallet recovery/rescanLogic centralized in WalletForm to reduce UI-specific divergence
cae870ceby Craig Raw+85−164 files
No security note in commit
Low 44 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

cap bbqr display and pdf encodings at the 1295 parts the header can number, using larger parts for data that needs more rather than emitting a sequence that cannot be reassembled

This commit fixes a bug in Sparrow Wallet's BBQ QR code format. Previously, if a large transaction or data blob needed more than 1,295 QR-code-sized pieces, the app would generate pieces with impossible sequence numbers that could not be r…

Integer/sequence-number overflow-like limit violation in a data-encoding protocolPotential denial-of-service or data-integrity failure when exporting large transactions via QRRound-trip unit test added to prevent regression
4b5326d8by Craig Raw+27−12 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

AI review queuedtreat an input transaction the server cannot return as unfetched in the fee, spend, outpoint and diagram viewsby Craig Raw · d66d38df · Sep 15, 2026 · 5 filesMessage 50 · ThinLow 36Details
Commit message · Craig Raw

treat an input transaction the server cannot return as unfetched in the fee, spend, outpoint and diagram views

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 36/100

This commit fixes a bug in the Sparrow Wallet desktop app where, if the Bitcoin server could not return a transaction referenced by a wallet input, the app would crash or show incorrect data. The change makes the app treat such transactions as 'unfetched' and display 'Unknown' or the raw transaction hash instead of throwing exceptions or dereferencing missing data. This is a defensive UI/data-handling fix rather than a cryptographic vulnerability, but it prevents user-facing errors and possible misleading fee/value displays.

AI review queuedshow alert buttons carrying their own text in the terminal rather than failing to map themby Craig Raw · fb864314 · Sep 15, 2026 · 2 filesMessage 50 · ThinInformational 19Details
Commit message · Craig Raw

show alert buttons carrying their own text in the terminal rather than failing to map them

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes a user-interface bug in Sparrow Wallet's terminal (command-line) mode. Previously, alert buttons with custom labels like 'Refresh Wallet' could not be shown correctly and were either mislabeled or failed to map. The change adds a new dialog class that displays buttons with their actual text, so users see the correct choices and can act on them.

AI review queuedrelease the node refresh subscription when a wallet is closed, and on a settings form that can never receive oneby Craig Raw · d9648404 · Sep 15, 2026 · 2 filesMessage 50 · ThinLow 27Details
Commit message · Craig Raw

release the node refresh subscription when a wallet is closed, and on a settings form that can never receive one

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This change fixes a resource leak in the Sparrow Wallet desktop app. When a wallet tab was closed, a background subscription that refreshes wallet data from the connected server was not being stopped, so it could keep running and potentially cause memory to be held longer than needed. The patch now explicitly stops (disposes of) that subscription when a wallet is closed, and also prevents a settings form from ever starting one.

AI review queueddisable the terminal add account button when no accounts remain to addby Craig Raw · ba438591 · Sep 15, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Craig Raw

disable the terminal add account button when no accounts remain to add

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply disables the 'Add Account' button in the terminal version of Sparrow Wallet when there are no accounts left to add. It is a minor user-interface improvement to prevent a user from clicking a button that would have no effect. There is no security issue here.

AI review queueduse forward slashes for the linked table test csv marker path so h2 does not strip windows separators, and assert the fixture wrote the marker before checking it was not rewritten on loadby Craig Raw · 9da43fa7 · Sep 15, 2026 · 1 fileMessage 60 · AdequateInformational 14Details
Commit message · Craig Raw

use forward slashes for the linked table test csv marker path so h2 does not strip windows separators, and assert the fixture wrote the marker before checking it was not rewritten on load

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This commit fixes a unit test that was failing on Windows. The test uses an embedded H2 database feature, and Windows file paths use backslashes. H2 interprets backslashes in its connection URL as escape characters, so the test path was being mangled. The fix converts the Windows path to forward slashes for the URL and adds a check that the test setup actually created the expected file before proceeding. There is no change to production wallet code or user-facing behavior.

AI review queuedname the bitcoin unit in the value, balance and fee column headings of the transactions, utxos and search results csv exportsby Craig Raw · eacc62d2 · Sep 15, 2026 · 3 filesMessage 50 · ThinInformational 15Details
Commit message · Craig Raw

name the bitcoin unit in the value, balance and fee column headings of the transactions, utxos and search results csv exports

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only changes the column headings in CSV export files so they include the name of the bitcoin unit being used (for example, 'Value (BTC)' or 'Value (sats)'). It is a user-experience improvement, not a security fix.

AI review queuedswitch wallet tables and charts to btc when an open wallet on the auto unit receives 1 btc or moreby Craig Raw · 48034ab1 · Sep 15, 2026 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Craig Raw

switch wallet tables and charts to btc when an open wallet on the auto unit receives 1 btc or more

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit changes how Sparrow Wallet displays bitcoin amounts in tables and charts. When a wallet using the 'auto' unit setting receives 1 BTC or more, the app now switches the display from satoshis to BTC. This is a user-interface convenience change, not a security fix.

AI review queuedrefresh the cached bitcoin core descriptor ranges when a wallet wants a range beyond them, so a range bitcoin core has already extended is not imported again or refusedby Craig Raw · b366c7ff · Sep 15, 2026 · 1 fileMessage 50 · ThinLow 35Details
Commit message · Craig Raw

refresh the cached bitcoin core descriptor ranges when a wallet wants a range beyond them, so a range bitcoin core has already extended is not imported again or refused

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 35/100

This change fixes a bookkeeping issue between the Sparrow Wallet app and Bitcoin Core. When Bitcoin Core automatically expands the set of addresses it watches for a wallet, Sparrow could get out of sync and either try to re-import descriptors it already had, or refuse to extend the wallet's address range. The patch refreshes Sparrow's cached view of those ranges before deciding whether to import. The main risk is operational: users could see missing transactions, failed wallet loads, or address gaps, rather than a direct theft-of-funds bug.

AI review queuedinclude unconfirmed wallet descendant fees when increasing a transaction fee, advise the replaced fees plus relay cost on rejection, and allow a cpfp child to be replacedby Craig Raw · b6c68694 · Sep 15, 2026 · 2 filesMessage 50 · ThinLow 33Details
Commit message · Craig Raw

include unconfirmed wallet descendant fees when increasing a transaction fee, advise the replaced fees plus relay cost on rejection, and allow a cpfp child to be replaced

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 33/100

This commit fixes how Sparrow Wallet calculates fees when you speed up or replace a Bitcoin transaction. Previously, if your wallet had unconfirmed follow-up transactions (like a CPFP child) that depended on the transaction being replaced, the wallet did not count their fees toward the replacement cost. That could cause the replacement to be rejected by the network for paying too little. The fix also improves the error message so users are told the correct minimum fee to use next time, and it allows a CPFP child that pays to a change address to be treated as a consolidation output when bumping fees.

AI review queuedcormorant: purge a bitcoin core wallet transaction with only mempool conflicts once it leaves the mempoolby Craig Raw · 392c398e · Sep 15, 2026 · 3 filesMessage 50 · ThinLow 41Details
Commit message · Craig Raw

cormorant: purge a bitcoin core wallet transaction with only mempool conflicts once it leaves the mempool

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 41/100

This commit tightens how Sparrow's Cormorant integration decides when a Bitcoin Core wallet transaction has been replaced or dropped from the mempool. It now also considers new 'mempool conflicts' reported by Bitcoin Core 28+, waits until Core has finished loading its mempool before concluding a transaction is gone, and double-checks whether a transaction might have been confirmed in a block before purging it. The change is a defensive bug-fix that reduces the chance of Sparrow wrongly removing a transaction from its local view.

AI review queuedkeep the block transaction a transaction tab shows when its input transactions cannot be fetched, so its confirmation count follows new blocksby Craig Raw · 9f0ee555 · Sep 14, 2026 · 1 fileMessage 50 · ThinInformational 16Details
Commit message · Craig Raw

keep the block transaction a transaction tab shows when its input transactions cannot be fetched, so its confirmation count follows new blocks

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This small change fixes a UI bookkeeping bug in Sparrow Wallet. When you open a transaction in a tab, the wallet now properly stores the on-chain block information even if it could not fetch all of that transaction's input transactions. Previously, the block information may not have been saved in that case, so the confirmation count shown in the tab would not update as new blocks arrived. This is a correctness/fix for displayed state, not a vulnerability that lets someone steal funds or run code.

AI review queuedshow a transaction tab confirmation indicator correctly when its tab opens at six confirmations or a reorg takes it back belowby Craig Raw · 579c3fdf · Sep 14, 2026 · 3 filesMessage 50 · ThinInformational 20Details
Commit message · Craig Raw

show a transaction tab confirmation indicator correctly when its tab opens at six confirmations or a reorg takes it back below

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100

This commit fixes a UI display bug in Sparrow Wallet's transaction confirmation indicator. Previously, if a transaction tab opened when a transaction already had six or more confirmations, the little progress/tick icon would not draw correctly. It also now handles the rare case of a blockchain reorganization (reorg) reducing confirmations back below six, restoring the progress circle instead of leaving a tick. There is no indication this affects funds, private keys, or transaction signing.

AI review queuedtreat a bitcoin core chain that falls below the last polled tip as a reorg rather than failing every poll until reconnectby Craig Raw · f0f8bcfe · Sep 14, 2026 · 1 fileMessage 50 · ThinLow 31Details
Commit message · Craig Raw

treat a bitcoin core chain that falls below the last polled tip as a reorg rather than failing every poll until reconnect

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 31/100

This change fixes how Sparrow Wallet detects blockchain reorganizations when connected to Bitcoin Core. Previously, if Bitcoin Core's active chain briefly dropped below the last known block height (for example during a reorg), Sparrow would throw an error on every poll and keep failing until the user reconnected. Now it correctly recognizes this situation as a reorg and resets its last known block, allowing normal polling to continue.

Security candidatekeep the trezor pairing credential and v1 message payloads out of the logsby Craig Raw · 2a60100e · Sep 14, 2026 · 1 fileMessage 50 · ThinModerate 56Details
Commit message · Craig Raw

keep the trezor pairing credential and v1 message payloads out of the logs

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
credential or privilege state
AI analysis · Moderate 56/100

This commit updates a linked subproject called 'lark' with the stated goal of preventing Trezor hardware wallet pairing credentials and older v1 message payloads from being written to application logs. If successful, it reduces the risk that sensitive wallet communication secrets could leak through log files, which might otherwise be read by malware, backups, or support staff. However, the actual code changes are inside the subproject and not visible in this commit, so we can only judge from the commit message.

AI review queuedfloor the electrum batch page size at one when halving it after a timeoutby Craig Raw · cc3257a5 · Sep 14, 2026 · 2 filesMessage 50 · ThinLow 33Details
Commit message · Craig Raw

floor the electrum batch page size at one when halving it after a timeout

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 33/100

This commit fixes a bug in Sparrow Wallet's Electrum server batching logic. When the wallet had experienced network timeouts, it tried to shrink its request batch size by half. If the configured page size was already 1, halving it produced 0, which then caused every future batched request to fail for the rest of the session. The fix ensures the page size never drops below 1. This is a reliability/denial-of-service bug rather than a way for an attacker to steal funds directly.

AI review queuedrefuse an announced tip the header sync cannot link in, reverting to the store tip with a warningby Craig Raw · f6235bbe · Sep 14, 2026 · 2 filesMessage 50 · ThinModerate 63Details
Commit message · Craig Raw

refuse an announced tip the header sync cannot link in, reverting to the store tip with a warning

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 63/100

This commit hardens Sparrow Wallet's handling of block-chain tip announcements from Electrum servers. Previously, a server could announce a fake high block height and the wallet might keep retrying or accept the claim, affecting confirmation counts shown to the user. The change now refuses an announced tip if the wallet cannot verify it links into the known chain, falls back to the last verified store tip, and warns the user. It also prevents endless retries on the same bad tip.

AI review queuedpay the silent payment address of a resolved instruction where the sending wallet can, treating the address in the body as a fallbackby Craig Raw · e63e4b27 · Sep 11, 2026 · 5 filesMessage 50 · ThinInformational 21Details
Commit message · Craig Raw

pay the silent payment address of a resolved instruction where the sending wallet can, treating the address in the body as a fallback

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 21/100

This commit changes how Sparrow Wallet chooses between a regular Bitcoin address and a newer 'silent payment' address when paying someone via a DNS name or a Bitcoin URI. Previously, the wallet preferred the regular address. Now, if the sending wallet supports silent payments, it prefers the silent payment address and only falls back to the regular address when silent payments aren't possible. This is a feature/correctness improvement rather than a fix for an active security flaw, but it reduces the chance of silently using a weaker address type when a stronger one is available.

Security candidateverify psbt silent payment metadata against the input hash of every input, not only the eligible onesby Craig Raw · 8e9661a6 · Sep 11, 2026 · 1 fileMessage 60 · AdequateModerate 55Details
Commit message · Craig Raw

verify psbt silent payment metadata against the input hash of every input, not only the eligible ones

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing boundary
AI analysis · Moderate 55/100

This commit updates a submodule called 'drongo' with a one-line change whose message says it now checks silent payment metadata against every transaction input, not just the eligible ones. Silent payments are a privacy feature for Bitcoin. The change sounds like a security fix because verifying only some inputs could let a malicious or malformed PSBT (a partially-signed Bitcoin transaction) slip past checks. However, the actual code change is just a submodule pointer bump, so we cannot see the real code fix from this commit alone.

AI review queuedhide the gap limit and request a birth date for a silent payments wallet in the terminalby Craig Raw · b43f24f9 · Sep 11, 2026 · 2 filesMessage 50 · ThinInformational 18Details
Commit message · Craig Raw

hide the gap limit and request a birth date for a silent payments wallet in the terminal

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit tweaks the terminal (command-line) version of Sparrow Wallet. For a new type of wallet called a 'silent payments' wallet, it hides the 'gap limit' setting (which doesn't apply) and asks the user for the wallet's creation date when importing a watch-only silent-payments wallet. This is a user-interface improvement, not a security fix.

AI review queuedhide account discovery on a silent payments walletby Craig Raw · 4ee9a4a7 · Sep 11, 2026 · 1 fileMessage 50 · ThinInformational 16Details
Commit message · Craig Raw

hide account discovery on a silent payments wallet

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit simply hides the 'Discover' button when adding an account to a Silent Payments wallet. It is a UI change, not a fix for a vulnerability. There is no evidence of a security bug being patched.

Security candidateexplicitly reject a psbt signed over silent payment outputs that have not been computedby Craig Raw · 6fcdc88b · Sep 11, 2026 · 1 fileMessage 50 · ThinModerate 55Details
Commit message · Craig Raw

explicitly reject a psbt signed over silent payment outputs that have not been computed

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundary
AI analysis · Moderate 55/100

This commit updates a submodule called 'drongo' inside the Sparrow Wallet project. The title says it now explicitly rejects a partially-signed Bitcoin transaction (PSBT) if it has been signed over silent payment outputs that were not actually computed. In plain terms, it tries to prevent a wallet from accepting a transaction signature that covers hidden recipient addresses it never verified. We cannot see the actual code change because only the submodule commit hash changed.

AI review queuedhold silent payment notifications arriving before the subscribe response is recorded, discarding those of a replaced subscriptionby Craig Raw · 7ae8ee95 · Sep 11, 2026 · 5 filesMessage 50 · ThinLow 47Details
Commit message · Craig Raw

hold silent payment notifications arriving before the subscribe response is recorded, discarding those of a replaced subscription

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 47/100

This commit fixes a race condition in Sparrow Wallet's silent-payments scanning. When the wallet subscribes to a server to scan for silent payments, the server's first notification can arrive before the wallet has finished recording the subscription's official start height. Without the fix, that early notification could be ignored (potentially leaving the scan stuck waiting forever) or a notification from an old, replaced subscription could be wrongly applied (showing incorrect transaction history). The change holds early notifications in a small queue until the start height is known, then applies only the ones that belong to the current subscription, in the correct order.

Lower-prioritywrite the output descriptor of a silent payments address as rawtr()by Craig Raw · e05d81bc · Sep 11, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Craig Raw

write the output descriptor of a silent payments address as rawtr()

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedsize an unresolved silent payment output as the p2tr output it becomes when deriving the feeby Craig Raw · 3dc99b6b · Sep 10, 2026 · 4 filesMessage 50 · ThinLow 42Details
Commit message · Craig Raw

size an unresolved silent payment output as the p2tr output it becomes when deriving the fee

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 42/100

This commit fixes how Sparrow Wallet calculates transaction size and fees for silent-payment transactions before they are fully signed. Previously, the wallet treated an unresolved silent-payment output as if it took up no space, which made the displayed transaction size, fee rate, and effective fee rate look smaller than they would be once broadcast. The fix sizes these outputs as the Taproot (P2TR) outputs they become after signing, so fee calculations and warnings match reality.

Lower-prioritytake the silent payments tweak of an input from the wallet node when adding key path informationby Craig Raw · 0a0a6919 · Sep 10, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Craig Raw

take the silent payments tweak of an input from the wallet node when adding key path information

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body