SW
← Watched projectsVendor accountability

Sparrow

Vendor website ↗
Security hygiene0/100 · Insufficient dataPreliminary score
How the vendor scores

Security hygiene breakdown

Disclosure quality 0/100
Researcher acknowledgement 0/100
Security process 0/100
Patch clarity 0/100
Response quality 0/100
Accountability record

Recent watches

Low 42 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

reject extended private keys when creating a terminal watch only wallet, and show import errors

This commit fixes a bug in Sparrow Wallet's terminal (command-line) watch-only wallet creation. Previously, a user could accidentally paste an extended private key (xprv) into a dialog meant only for public keys or output descriptors, and …

Prevents accidental import of extended private keys into watch-only wallet contextSurfaces previously swallowed import errors to the user via error dialogChanges exception handling from ImportException-only to all exceptions
fa0d4841by Craig Raw+19−152 files
No security note in commit
Low 25 AI analysisMessage 45 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add bitbox02 attestation failed dialog

This commit adds a user-facing warning dialog when a BitBox02 hardware wallet fails an attestation check. Attestation is a process that helps verify the device is genuine and not a counterfeit or tampered unit. Previously, a failed attesta…

Adds explicit user warning for failed hardware wallet attestationPrevents repeated warning dialogs during device enumeration using AtomicBooleanWarns user not to store funds on potentially counterfeit device
1a810c06by Craig Raw+16−12 files
No security note in commit
Moderate 56 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve validation of payjoin proposals, and accept a substituted payment output where a change output is present

This commit strengthens how Sparrow Wallet checks Payjoin proposals received from a payment receiver. Payjoin lets a receiver add their own inputs to a transaction to improve privacy. The changes add missing checks that could previously le…

Added minimum fee-rate enforcement on Payjoin proposalsAdded Taproot (P2TR) key-path and derived-public-key validation and propagationRestricted payment-output substitution to proposals that retain a change output
32f7e58fby Craig Raw+250−233 files
No security note in commit
Informational 18 AI analysisMessage 65 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

remove unused signature verification results in satochip and keycard signers, note where signatures are verified

This commit removes leftover code that checked whether signatures from hardware card signers were valid, but then threw away the result. The signatures are still verified later by a different part of the wallet when the signed transaction …

Removal of local signature verification calls in hardware signer code pathsAdded comments documenting that signature verification occurs later via PSBT.verifyCombinedSignatures()Unused boolean results indicate the removed checks were dead code rather than active security controls
866e9893by Craig Raw+5−132 files
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add option to ignore dust on private key sweep

This commit adds a user-facing checkbox labeled 'Ignore dust' to the private-key sweep feature in Sparrow Wallet. When enabled, very small ('dust') unspent outputs linked to the swept key are excluded from the transaction. This is a usabil…

Adds user-controlled filtering of UTXOs by value thresholdUses existing 'dustAttackThreshold' configuration, implying prior anti-dust handling elsewhereNo input validation, cryptographic, or authorization changes
cf797ea0by nroktib+21−21 file
No security note in commit
Moderate 59 AI analysisMessage 55 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

update external tor socks proxy control port authentication

This commit hardens how Sparrow Wallet talks to an external Tor proxy's control port. Previously, when asking Tor for a new identity, the app used an older authentication method that could send the contents of a secret cookie file over the…

Switches Tor ControlPort authentication from legacy COOKIE to SAFECOOKIE HMAC challenge-responseAdds loopback-only restriction for external Tor ControlPort connectionsValidates cookie file length and uses constant-time hash comparison
b3d51bceby Craig Raw+83−81 file
Vendor flagged security relevance
Moderate 59 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

check all open tabs when verifying a scanned or loaded transaction matches the originating psbt

This commit tightens how Sparrow Wallet checks that a scanned QR code or loaded file matches the transaction the user is currently working on. Previously, the app only compared the new transaction/PSBT against the single currently open tab…

UI workflow hardening: cross-tab verification prevents acceptance of mismatched transactions/PSBTsPreviously, verification was scoped to a single tab's context PSBT, which could be bypassed by tab confusion or user errorSilent Payments edge case preserved: possibleUnverifiableSilentPaymentsTransaction still triggers a dedicated warning
078af174by Craig Raw+66−234 files
No security note in commit
Moderate 59 AI analysisMessage 60 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

verify scanned or loaded transactions match the originating psbt

This commit adds a safety check in the Sparrow Wallet desktop app to make sure a transaction loaded from a file or scanned from a QR code actually matches the PSBT (a partially-signed Bitcoin transaction) that was already open. Before this…

New integrity/matching validation between an originating PSBT and subsequently loaded or scanned transactions/PSBTsUser-facing error dialogs for mismatched transactions and silent-payment transactionsPrevention of displaying a substituted transaction as if it were the intended one
4b8a4594by Craig Raw+64−284 files
No security note in commit
Low 28 AI analysisMessage 62 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

change bip329 wallet labels export to only assert spendable false for frozen coins and omit otherwise

This commit fixes how Sparrow Wallet exports coin labels in the BIP-329 format. Previously, the export incorrectly marked every unspent coin as 'spendable=true' in the exported file, even though the BIP-329 specification says the 'spendabl…

Incorrect BIP-329 field semantics in wallet label exportPotential for importing wallets to misclassify frozen coins as spendablePrivacy/information disclosure from asserting spendable=true on all unspent UTXOs
37bab9f3by Craig Raw+1−11 file
No security note in commit
Moderate 60 AI analysisMessage 55 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve verification of psbt sighash types

This commit adds a safety check in Sparrow Wallet when opening a PSBT (a file format used to pass partially-signed Bitcoin transactions between wallets). Before this change, the wallet did not verify the signature-hash types declared insid…

New user-facing warning for 'Unsafe PSBT'Adds signature-hash verification on PSBT loadCatches PSBTSignatureException specifically
61ed816cby Craig Raw+11−12 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 55 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add custom context menu to signature text area in message sign dialog

This commit adds a standard right-click menu (copy, paste, clear) to the signature text box in Sparrow Wallet's message signing dialog. It is a routine user-interface convenience improvement with no security relevance visible in the code o…

287c943bby Craig Raw+11−01 file
No security note in commit
Low 40 AI analysisMessage 45 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve loaded psbt verification

This commit changes how Sparrow Wallet checks the silent payment addresses inside a loaded PSBT (a partially signed Bitcoin transaction). Previously, the wallet extracted and trusted the silent payment addresses directly from the PSBT file…

Moved silent payment address extraction from controller to wallet-side verification methodRemoved direct trust of PSBT-supplied silent payment address and address-script mappingCommit title explicitly describes the change as improving verification
cb92f765by Craig Raw+3−142 files
No security note in commit
Low 33 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

update bip322 implementation to match completed spec

This commit adds a safety check when extracting a BIP-322 signature from a signed PSBT file. Before, Sparrow would blindly copy the signature into the dialog even if the message inside the PSBT did not match the message the user originally…

Added message-mismatch warning before extracting BIP-322 signature from PSBTPrevents silent overwrite of signature field when PSBT message differs from dialog messageNull-check guards added at both PSBT signature extraction call sites
bc7a0be8by Craig Raw+19−52 files
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add bip322 message signing for silent payments wallets

This commit adds the ability for Sparrow Wallet users with 'silent payments' wallets to sign messages using the BIP322 standard. It is a feature addition that extends existing message-signing support to a new wallet type. There is no indic…

No security-relevant signals detected in the diffFeature addition: BIP322 message signing for silent payments walletsPrivate key material is cleared from memory after signing (spendPrivKey.clear(), privKey.clear())
a2eb937fby Craig Raw+47−244 files
No security note in commit
Low 33 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add policy type to all keystore import interfaces and factory methods for explicit keystore xpub or spscan field population

This commit is a broad code change that threads a new 'policy type' value through many wallet import paths. The main practical effect visible in the diff is adding support for importing a new kind of Bitcoin wallet called 'silent payments'…

Adds silent payments (BIP352) scan key import path for Coldcard singlesigRemoves hard-coded WalletModel assignments in several importer subclasses, relying on getWalletModel()Changes SettingsController script-type selection behavior to always pick the default for the selected policy type
0459f4caby Craig Raw+200−10857 files
No security note in commit
Low 26 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve sp related output descriptor and psbt behaviour

This commit improves how Sparrow Wallet handles a newer Bitcoin address type called 'Silent Payments' (SP). It adds null-safety checks so the app doesn't crash when an extended public key is missing, supports exporting and importing labels…

Null-pointer dereference prevention added in BaseController, WalletLabels, KeystoreController, and SettingsControllerNew Silent Payments descriptor export format with additional argumentsNew 'spscan' label type in WalletLabels import/export
c23dbeedby Craig Raw+46−149 files
No security note in commit
Low 27 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

implement silent payments change outputs and other sp related fixes

This commit adds support for silent payment change outputs in the Sparrow Wallet and fixes related silent payment issues. Silent payments are a newer Bitcoin privacy feature that lets someone receive payments without publicly revealing the…

New feature: silent payments change output supportDefensive check: blocks Bitcoin Core scanning for SINGLE_SP silent payment walletsAddress derivation change: getFreshNode replaced with getNode in several places
c6700884by Craig Raw+69−158 files
No security note in commit
Informational 24 AI analysisMessage 45 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

initial policy type related changes from drongo

This commit is a large but mechanical rename in the Sparrow Wallet codebase. It replaces the old policy type constants `PolicyType.SINGLE` and `PolicyType.MULTI` with more specific names `PolicyType.SINGLE_HD` and `PolicyType.MULTI_HD`, an…

Large enum rename across wallet import/export, signing, and address derivation pathsNew policy type `SINGLE_SILENT_PAYMENTS` introduced with limited exporter supportMessage signing now explicitly restricted to HD single-sig wallets
8780e515by Craig Raw+96−8831 files
No security note in commit
Low 39 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add bip32 derivation fallback when retreiving signing nodes for high-index inputs

This commit adds a fallback path for finding the correct private signing keys when a Bitcoin wallet handles unusual transaction inputs that use very high address indexes. Without the fallback, Sparrow might fail to locate the right key and…

Touches private-key derivation / signing-node lookupRelates to high-index BIP32 derivation pathsOne-line change in wallet signing logic
32a35ed2by Craig Raw+1−11 file
No security note in commit
Low 28 AI analysisMessage 55 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

avoid npe when the extracting signature from a bip322 psbt

This commit fixes a null pointer exception (a common software crash) that could occur when Sparrow Wallet tried to extract a signature from a special type of Bitcoin proof-of-ownership transaction (BIP322 PSBT). Without seeing the actual c…

NullPointerException in signature extraction pathBIP322 PSBT handling code touchedOne-line defensive fix
21f9f9feby Craig Raw+1−11 file
No security note in commit