EL
← All projectsElectrum

Electrum

Long-running lightweight Bitcoin wallet for desktop and mobile platforms.

BitcoinSoftware walletsNormal
Repository coverage

942 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.

67security candidates208second-pass queue929AI analyses
67commits · 30 days
117commits · 60 days
469commits · 180 days
926commits · 365 days
Backfill bands
Aug 5 → Feb 6470 seen11 candidatesComplete
Feb 6 → Jun 6346 seen10 candidatesComplete
Jun 6 → Jul 653 seen2 candidatesComplete
Jul 6 → Aug 554 seen3 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.

65/100 average clarity
195Strong · 80–100
418Adequate · 60–79
290Thin · 40–59
39Opaque · 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.
ThomasV76272157
SomberNight35426350063
f321x37121371070
Sander van Grieken991098057
user323062
Roman Zeyde515053
ghost43512067
Sasha Zykov414076
Aaron Fiore414068
Róbert Nagy111098
Ferdinando Ametrano111096
Felix302074
Analysis record

Published AI watches

Last scanned 56 minutes ago

Informational 15 AI analysisMessage 63 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Merge pull request #10816 from accumulator/qml_auth_log_improvement

This commit is a minor logging cleanup in the mobile/QML authentication helper. It changes the wording and placement of debug/error log messages so they reveal the function name only after safely retrieving it, and avoids logging a raw tup…

8dddae68by ghost43+4−41 file
No security note in commit
Moderate 51 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Merge pull request #10798 from SomberNight/202608_base43

This commit fixes a performance weakness in Electrum's handling of large Bitcoin transactions encoded in 'base43'. The base43 encoding and decoding functions run in quadratic time, meaning the work grows much faster than the input size. An…

Quadratic-time base43 encode/decode can be triggered on attacker-controlled inputDenial-of-service via CPU exhaustion / UI freeze on large transaction stringsInput-length cap added as a defensive guard, not a full algorithmic fix
0e9f1a0dby Felix+25−92 files
No security note in commit
Low 41 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Merge pull request #10799 from SomberNight/202608_android_secure_window

This update tightens a privacy feature on Electrum's Android app that prevents the screen from being captured while sensitive Bitcoin private keys or seed phrases are visible. Before, the protection could be accidentally turned off when mu…

Adds visibility-gated secureWindow bindings to protect WIF keys and seed phrasesPrevents secureWindow from being cleared when multiple sensitive dialogs are stackedTargets Android screenshot/recents-thumbnail protection surface
4622390cby accumulator+17−05 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 98 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

docs: add Coldcard Mk3 seed-entropy security notice to plugin README (#10805)

This commit only adds a documentation warning to Electrum's Coldcard plugin README. It does not change any executable code, cryptographic logic, or wallet behavior. The warning tells users that Coldcard/Coinkite disclosed a firmware bug in…

Documentation-only changeReferences an external hardware-wallet firmware advisoryNo code, cryptography, or plugin behavior modified
2c2a40b6by Róbert Nagy+4−01 file
Vendor flagged security relevance
Low 48 AI analysisMessage 81 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

qml/android: protect WIF keys from screenshots in more places

This commit tightens screen-shot protection for private Bitcoin wallet keys (WIF keys and seed phrases) in Electrum's Android/QML user interface. It also fixes a bug where one screen (AddressDetails) was leaving the 'secure window' flag pe…

Adds FLAG_SECURE-style screenshot protection to additional private-key dialogsFixes a bug where secureWindow was never unset in AddressDetailsUses QML Binding 'when' with restoreMode semantics to handle stacked secure dialogs safely
739cba5dby SomberNight+17−05 files
Vendor flagged security relevance
Moderate 60 AI analysisMessage 92 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

lnpeer: chan_reest: ctn overflow: force-close instead of disconnect

This commit fixes a bug in Electrum's Lightning Network code. Previously, if a malicious or malfunctioning peer sent a channel re-establishment message with extremely large commitment numbers (over 2^48), the local program would hit an int…

Addition of explicit overflow check on untrusted peer-supplied commitment countersReplacement of assertion-failure/disconnect behavior with force-close on misbehaviorNew test cases for ctn overflow in both next_local_ctn and oldest_unrevoked_remote_ctn
b3e441f8by SomberNight+22−32 files
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Merge pull request #10791 from SomberNight/202608_wallet_sign_message2

This change moves the trimming of leading/trailing spaces in message-signing fields from the user-interface code into the shared wallet code. For the graphical interfaces (Qt and QML), spaces are still stripped automatically for convenienc…

Behavior change in message signing/verification input handlingCLI now preserves whitespace, which could affect signature validity for messages that intentionally contain leading or trailing whitespaceNo memory-safety, cryptographic, or authentication flaw visible in the diff
b1aa52d7by ghost43+27−185 files
No security note in commit
Informational 19 AI analysisMessage 96 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: strip whitespaces in GUIs, do not strip in CLI

This commit tidies up how Electrum handles extra spaces around Bitcoin addresses, messages, and signatures when signing or verifying messages. Previously, different parts of the program (desktop GUI, mobile-style GUI, command line) behaved…

Behavior normalization across GUI and CLI interfacesNo cryptographic primitive changedNo privilege boundary crossed
4c3064f5by SomberNight+27−185 files
No security note in commit
Informational 22 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: decrypt_message: nicer error msg if pubkey is unrelated

This commit improves the error handling in Electrum's message decryption feature. Previously, if a user tried to decrypt a message using a public key that did not belong to their wallet, the code could proceed and likely fail with a confus…

Input validation added for public key before cryptographic operationUser-facing exception replaces potential internal failureDefensive check prevents use of unrelated key material
92e938f4by SomberNight+5−01 file
No security note in commit
Informational 16 AI analysisMessage 83 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

qt: main_window: use TaskThread for each of sign/verify/encrypt/decrypt

This commit moves four message-crypto operations (sign, verify, encrypt, decrypt) in Electrum's Qt wallet window onto a background worker thread so they all behave the same way. It also lets the background thread surface user-facing errors…

Moved blocking wallet crypto calls off the GUI thread, reducing UI freeze / DoS surfaceRemoved local exception swallowing for encrypt_message; errors now propagate through the window's on_error handlerAdded defensive RuntimeError guard for deleted Qt widget in async callback
4a9a199fby SomberNight+28−151 file
No security note in commit
Low 29 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: force kwargs

This commit changes how Electrum's message-signing function is called so that callers must explicitly name each argument (address, message, password) rather than passing them by position. The main practical effect is to prevent accidental …

API hardening: keyword-only arguments prevent positional argument swapNo explicit security bug fix or vulnerability disclosure in commit message or diffNo changes to cryptographic logic, password handling, or message parsing
e1eb2a34by SomberNight+9−44 files
No security note in commit
Low 39 AI analysisMessage 45 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: consolidate checks from UIs

This commit moves input-validation checks for signing, verifying, encrypting, and decrypting messages out of the user-interface code and into the shared wallet logic. It also adds type checks so that non-text inputs are rejected earlier. T…

Input validation moved from UI controllers into core wallet logicType checks added at the CLI command entry points for message-crypto operationsUserFacingException used consistently for address, wallet, script-type, and key-format errors
48893760by SomberNight+89−396 files
No security note in commit
Low 27 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: decrypt_message: consolidate checks from UIs

This commit moves input-validation and wallet-type checks for message decryption out of the user-interface and command-line layers and into the core wallet code. It also removes a faster, separate decryption path for imported wallets so al…

Input validation consolidated into a single core methodWatching-only wallet check moved from UI to wallet layerMultisig wallet unsupported-operation check moved from UI to wallet layer
9a0cc0d6by SomberNight+25−173 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: refactor: add encrypt_message method, consolidated from UIs

This commit is a simple code cleanup: it moves the message-encryption logic from two separate places (the command-line tool and the Qt graphical interface) into a single shared method on the wallet class. The actual encryption behavior is …

No change to cryptographic primitives or parametersNo change to trust boundaries or input sourcesPure refactor consolidating duplicate code
5e9c8df0by SomberNight+26−183 files
No security note in commit
Informational 13 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: refactor: add verify_message method, consolidated from UIs

This commit is a routine code cleanup: it moves message-signature verification out of three user-interface files into a single shared helper method in the wallet module. There is no security-relevant behavior change visible in the diff. Th…

No security-relevant functional changeRefactoring only: code deduplicationException handling broadened safely (ValueError covers binascii.Error and unicode errors)
ff5bbb04by SomberNight+26−304 files
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

qt: main_window: add type hints to sign/verify, encrypt/decrypt

This commit only adds Python type hints and renames some function parameters for clarity in the Electrum desktop wallet's sign/verify and encrypt/decrypt message dialogs. It does not change what the code actually does, how it processes use…

0906fc20by SomberNight+45−181 file
No security note in commit
Informational 18 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

coldcard: fix get_soft_device_id() discarding its return value

This is a tiny one-line bug fix in Electrum's Coldcard hardware wallet plugin. A helper method that is supposed to fetch a software-based device identifier was calling the parent implementation but accidentally throwing away the result ins…

Missing return value causes method to always return NoneAffects hardware wallet device identification onlyNo change to signing, encryption, or authentication code
d7500508by Felipe Micaroni Lalli+1−11 file
No security note in commit
Informational 19 AI analysisMessage 96 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

qml: strip whitespace from message before signing, as in qt gui

This commit fixes a minor consistency bug in Electrum's newer QML (mobile-style) user interface. When signing a message, the app now removes accidental spaces at the start or end of the message and address, just like the older desktop Qt i…

Behavioral inconsistency between GUI implementations could cause user confusion or failed verificationNo cryptographic weakness introduced; change is input normalizationNo memory-unsafe code, no privilege changes, no network changes
72507328by Ferdinando Ametrano+3−01 file
No security note in commit
Low 48 AI analysisMessage 85 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

config: don't save "hidden wallet" paths in CURRENT_WALLET cv

This commit fixes a privacy leak in the Electrum wallet app. Previously, if a user opened a 'hidden wallet' (one whose filename starts with a dot, like a secret file), Electrum would remember it as the last-used wallet and could reopen it …

Privacy leak: hidden wallet filename persisted in config and could be auto-reopenedInformation disclosure: hidden wallet path exposed in recently-opened listBehavioral fix: setter silently drops sensitive value rather than persisting it
c43cf8e4by SomberNight+14−23 files
No security note in commit
Low 28 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

lnrouter: liquidity hints: add extra penalty if amt near cannot_send

This commit tweaks how Electrum's Lightning Network payment routing avoids channels where a previous payment attempt already failed. Previously, the router would treat a channel almost at its known failure limit almost the same as a channe…

Routing/liquidity-hint logic changed to penalize amounts close to a known cannot_send thresholdAdds defensive assertions on num_inflight_htlcs type and rangeSelf-described by author as a 'completely naive bandaid' / heuristic improvement
ee75ea31by SomberNight+12−21 file
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 queuedtests: wizard: KeystoreWizard: also test disable_keystore()by SomberNight · 0fea61ac · Aug 14, 2025 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: wizard: KeystoreWizard: also test disable_keystore()

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 15/100

This commit is purely a test improvement. It adds unit tests for a wallet feature that disables a keystore (turning a spendable wallet back into a watch-only wallet), and makes two tiny supporting changes: adding type hints to a plugin helper and adding an abstract method stub in the wallet base class. There is no security fix here and no behavior change in the actual wallet code that users run.

Lower-prioritytests: wizard: KeystoreWizard: add test case for old seedby SomberNight · 6554ec67 · Aug 14, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: wizard: KeystoreWizard: add test case for old seed

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds new test cases to Electrum's existing test suite. It checks that the wallet setup wizard correctly handles old-style Electrum seed phrases and stores the seed/passphrase properly. There is no change to production code, no bug fix, and no security-relevant behavior change.

AI review queuedwallet: enable/disable_keystore: trivial clean-upby SomberNight · e3d1c6ae · Aug 14, 2025 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · SomberNight

wallet: enable/disable_keystore: trivial clean-up

45/100 · ThinMessage clarity
✓ 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 is a minor code cleanup commit. It fixes a typo in a user-facing message ('keytore' to 'keystore'), adds abstract method declarations for enable/disable_keystore in the base wallet class, updates type hints, and changes test fixture values. There is no security-relevant change.

Lower-prioritytests: commands: onchain_history: add test for "show_fiat" paramby SomberNight · 34f04507 · Aug 14, 2025 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: commands: onchain_history: add test for "show_fiat" param

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds a new automated test for an existing feature. It does not change any production code, so it cannot introduce a security vulnerability or fix one. The test checks that the 'show_fiat' option for the on-chain history command correctly includes fiat currency values in the output.

Lower-prioritycontants: add support for mutinynet signetby f321x · 348ca667 · Aug 14, 2025 · 3 filesMessage 76 · AdequateInformational 15Details
Commit message · f321x

contants: add support for mutinynet signet

Adds the mutinynet signet (https://github.com/MutinyWallet/mutiny-net/)
to the supported networks so it's possible to
use it with Electrum. Mutinynet is similar to signet, except for a
shorter block interval (30 sec), a nice faucet
(faucet.mutinynet.com) and some extra features in its core fork.
It also has some lightning network nodes, see
the mempool instance on mutinynet.com.

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit adds support for a new Bitcoin test network called 'mutinynet signet' to the Electrum wallet. It is purely a configuration/network addition: it defines a new network class, provides a genesis block identifier, and lists some default servers and Lightning nodes. There is no indication of any security bug or vulnerability being fixed or introduced.

Lower-priorityplugin: fix translatable string, and organize whitespace/imports/type hints while weŕe at it.by Sander van Grieken · 2ca9e1b6 · Aug 14, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Sander van Grieken

plugin: fix translatable string, and organize whitespace/imports/type hints while weŕe at it.

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

This is a minor cleanup commit in Electrum's plugin system. It fixes a typo in a user-facing help string ('Regdit' to 'Regedit'), removes an unused import, corrects a type hint, and fixes one function that could return nothing instead of the expected two-value result. There is no security issue here.

AI review queuedtests: unittest QETransactionListModel date formatby f321x · 292ade89 · Aug 14, 2025 · 1 fileMessage 75 · AdequateInformational 15Details
Commit message · f321x

tests: unittest QETransactionListModel date format

adds unittests for the date formatting and categorization in
QETransactionListModel

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

This commit only adds new automated tests for how transaction dates are displayed and grouped in Electrum's mobile/QML user interface. It does not change any production code, fix a bug, or alter program behavior. There is no security relevance.

AI review queuedqml: stop showing seconds in tx history timestampsby f321x · 0c7d8646 · Aug 14, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · f321x

qml: stop showing seconds in tx history timestamps

Reduces the precision of the date field in the qml transaction history
list to minutes. Seconds don't seem very useful in practice and add
clutter to the UI. This adapts the behaviour to the Qt GUI.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a minor user-interface tweak for Electrum's QML (mobile-style) transaction history. It removes seconds from displayed timestamps, showing times only to the nearest minute, matching the older Qt desktop GUI. There is no security relevance.

AI review queuedcommands: add back from_height/to_height params to onchain_historyby SomberNight · d7c76b99 · Aug 13, 2025 · 4 filesMessage 81 · StrongInformational 17Details
Commit message · SomberNight

commands: add back from_height/to_height params to onchain_history

closes https://github.com/spesmilo/electrum/issues/10119

also:
- wallet.get_onchain_history was broken with from_height/to_height args
- "show_fees" param is and was non-existent. fees are always added to output
- MyEncoder(json.JSONEncoder) changed a bit:
- I am pretty sure cutting the last 3 chars was intended to cut off the seconds
- however that was making incorrect assumptions about what datetime.isoformat() returns
- which depends on whether microsecond precision is available or whether an explicit timezone is set
- this now makes it clear that we want minutes-resolution, but still leaves the timezone-ambiguity

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit restores two command-line options, from_height and to_height, to Electrum's onchain_history command. It also fixes a small bug where the wallet's internal history filtering was reading the wrong variable for block height, and tightens how dates are formatted to JSON. There is no direct security vulnerability here; it is mostly a bug-fix and feature-restoration change.

Lower-prioritywizard: fix missing 'wallet_password' and 'wallet_password_hardware' views on abstract KeystoreWizard (these were implicitly defined by the Qt subclass) and test wallet keystore enable.by Sander van Grieken · e1d5d803 · Aug 13, 2025 · 2 filesMessage 83 · StrongInformational 23Details
Commit message · Sander van Grieken

wizard: fix missing 'wallet_password' and 'wallet_password_hardware' views on abstract KeystoreWizard
(these were implicitly defined by the Qt subclass) and test wallet keystore enable.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 23/100

This commit fixes a bug in Electrum's wallet setup wizard where two password-related screens ('wallet_password' and 'wallet_password_hardware') were accidentally only defined in the Qt desktop version, not in the shared wizard logic. The fix adds those missing view definitions to the abstract KeystoreWizard so non-Qt interfaces (like command-line or mobile builds) can complete wallet creation properly. It also adds tests verifying that a hardware wallet keystore can be enabled after setup. There is no direct evidence in the commit of a security vulnerability; it appears to be a correctness/robustness fix for wizard flow.

AI review queuedhww: fix crash when disabling keystore for hww (was unimplemented for Hardware_Keystore) also preserve derivation path and root fingerprint for watch-only keystore.by Sander van Grieken · 0a2cd5fd · Aug 13, 2025 · 1 fileMessage 73 · AdequateLow 32Details
Commit message · Sander van Grieken

hww: fix crash when disabling keystore for hww (was unimplemented for Hardware_Keystore)
also preserve derivation path and root fingerprint for watch-only keystore.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Low 32/100

This commit fixes a crash in the Electrum Bitcoin wallet that occurred when users tried to disable a hardware wallet keystore. It also ensures that important wallet metadata (the derivation path and root fingerprint) is preserved when converting a wallet to watch-only mode. The change is a defensive bug fix rather than a security vulnerability, but the missing metadata could have caused user confusion or wallet recovery issues.

Security candidatewizard: add initial tests for KeystoreWizard for electrum and bip39 seeds, hwwby Sander van Grieken · 0c5403b9 · Aug 13, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Sander van Grieken

wizard: add initial tests for KeystoreWizard for electrum and bip39 seeds, hww

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
secret or key material
AI analysis · Informational 15/100

This commit only adds new automated tests for Electrum's wallet setup wizard. It does not change any production code, fix a bug, or alter security behavior. The tests verify that seed-based and hardware-wallet wizard flows produce the expected wallet keys.

AI review queuedqt: wizard: pass wallet_type to Keystore wizard via initial viewstateby Sander van Grieken · 66c0fec1 · Aug 13, 2025 · 2 filesMessage 50 · ThinInformational 12Details
Commit message · Sander van Grieken

qt: wizard: pass wallet_type to Keystore wizard via initial viewstate

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 12/100

This commit is a small internal code cleanup in Electrum's Qt graphical interface. It changes how the 'wallet type' is passed into the keystore wizard, moving it from a direct constructor argument into a structured 'view state' object. There is no indication this fixes a security bug; it appears to be a refactoring or bug-fix for wizard behavior.

AI review queuedwizard: add script and derivation to keystorewizard flow. fixes #10063by Sander van Grieken · 4eccfdaa · Aug 13, 2025 · 2 filesMessage 58 · ThinInformational 15Details
Commit message · Sander van Grieken

wizard: add script and derivation to keystorewizard flow. fixes #10063

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

This commit adjusts the wallet setup wizard so that users who enter a seed phrase are also asked to confirm the script type and derivation path before the keystore is finalized. It is a UI flow fix for issue #10063 and does not change any security-critical code, cryptographic operations, or network behavior.

Security candidatefix: psbt_nostr: don't allow to save tx without txidby f321x · 478fb483 · Aug 13, 2025 · 5 filesMessage 85 · StrongLow 34Details
Commit message · f321x

fix: psbt_nostr: don't allow to save tx without txid

Stops the psbt nostr plugin from trying to save transactions without
txid to the wallet history and doesn't give the user the option to do
so.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
signing boundarysigning or wallet path
AI analysis · Low 34/100

This commit fixes a bug in Electrum's PSBT-over-Nostr plugin. Previously, the plugin could try to save a Bitcoin transaction to the wallet history even when the transaction didn't yet have a transaction ID (txid). Such transactions are incomplete (for example, unsigned legacy transactions). Saving them could cause errors, confusion, or corrupt wallet state. The fix adds a check that prevents saving unless a txid exists, and hides or disables the 'Save to Wallet' button in the user interface when saving isn't allowed.

Lower-prioritytests: wizard: imported addrs: validate each addr with "is_address()"by SomberNight · acc52e39 · Aug 12, 2025 · 2 filesMessage 83 · StrongLow 42Details
Commit message · SomberNight

tests: wizard: imported addrs: validate each addr with "is_address()"

This was already done *in the GUIs*, but the backend should definitely
do at least sanity-check-level validation like this.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validation
AI analysis · Low 42/100

This commit adds a safety check in Electrum's wallet creation wizard to verify that strings entered as 'imported addresses' actually look like valid Bitcoin addresses. Previously, the GUI did this check, but the backend code did not. The change prevents invalid or accidental garbage strings from being accepted as wallet addresses. It is a hardening improvement rather than a fix for a known active attack.

Lower-prioritytests: bitcoin: merge testnet/mainnet address_to_script testsby SomberNight · 19b2567d · Aug 12, 2025 · 1 fileMessage 75 · AdequateInformational 15Details
Commit message · SomberNight

tests: bitcoin: merge testnet/mainnet address_to_script tests

and add an extra explicit mixed-case bech32 test case

75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only changes test code. It merges duplicate test cases for Bitcoin mainnet and testnet address parsing, adds a few extra test vectors (including one for mixed-case bech32 addresses), and removes a separate test class. There is no change to the actual wallet or address-handling logic, so it cannot introduce a security vulnerability or fix one in production code.

AI review queuedqml: handle invoice validation errors on saveby Sander van Grieken · 43c6f450 · Aug 12, 2025 · 3 filesMessage 45 · ThinInformational 24Details
Commit message · Sander van Grieken

qml: handle invoice validation errors on save

45/100 · ThinMessage clarity
✓ 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 24/100

This commit fixes a bug in Electrum's mobile-style QML user interface where saving an invoice could fail silently. Previously, if the invoice data was invalid, the app would not show an error and might still close the dialog or continue as if the invoice was saved. Now the app checks whether saving succeeded, displays an error message if it failed, and stops the process. This is a user-experience and reliability fix rather than a high-severity security flaw.

Lower-prioritytests: wizard: add test cases for imported walletsby SomberNight · dad18c03 · Aug 12, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: wizard: add test cases for imported wallets

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds new automated test cases for Electrum's wallet creation wizard, specifically covering wallets created from imported addresses and imported private keys. It does not change any production code, user-facing behavior, or security logic.

Lower-prioritytests: wizard: add test cases for multisigby SomberNight · d78782c6 · Aug 12, 2025 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · SomberNight

tests: wizard: add test cases for multisig

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds new automated tests for Electrum's wallet creation wizard, specifically covering multisignature wallet setups. It does not change any production code, user-facing behavior, or security-sensitive logic. There is no indication of a vulnerability or security fix.

Lower-prioritytests: wizard: add test case for "restore from slip39"by SomberNight · fe3ebb31 · Aug 12, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: wizard: add test case for "restore from slip39"

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds new automated tests for restoring a Bitcoin wallet from SLIP39 seed shares in Electrum's wallet creation wizard. It does not change any production code, user-facing behavior, or security-sensitive logic. There is no vulnerability or security fix here.

Lower-prioritytests: wizard: add test case for "restore from xpub"by SomberNight · 30a646f8 · Aug 12, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · SomberNight

tests: wizard: add test case for "restore from xpub"

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds a new automated test to Electrum's wallet creation wizard. It checks that restoring a standard wallet from an extended public key ('xpub') produces the expected Bitcoin receiving address. No production code was changed, and there is no security fix or vulnerability introduced here.

Lower-priorityqml: qetxdetails: update mempool depth on fee histogramby Sander van Grieken · 9a7ca749 · Aug 12, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Sander van Grieken

qml: qetxdetails: update mempool depth on fee histogram

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

This commit adds a small UI improvement to Electrum's mobile/QML interface. When the Bitcoin network's fee histogram changes (showing how busy the mempool is), the transaction details screen now refreshes so the displayed mempool depth stays current. There is no security issue here.

Lower-priorityappimage: bump appimagetool to new version/repoby f321x · b93ffdd7 · Aug 12, 2025 · 4 filesMessage 93 · StrongLow 29Details
Commit message · f321x

appimage: bump appimagetool to new version/repo

Updates the appimage build scripts to use the newer
https://github.com/AppImage/appimagetool tool to bundle the appimage
instead of the discontinued https://github.com/AppImage/AppImageKit.
To prevent the new appimagetool from downloading a random "latest"
appimage runtime (`type2-runtime`) binary this PR also adds
functionality to clone and build
https://github.com/AppImage/type2-runtime from source. This is done
using the build scripts provided in the `type2-runtime` repository,
however the Dockerfile they use for building is replaced by a copy with
pinned package versions to prevent issues with reproducibility.

This should fix the issue of missing libfuse2 which users of the appimage
have on "modern" distributions.
The new `type2-runtime` is statically linked and includes the required
dependencies now instead of relying on the host to provide it.

93/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
AI analysis · Low 29/100

This commit updates Electrum's Linux AppImage packaging scripts. It swaps an old, discontinued AppImage build tool for a newer one, and builds the AppImage runtime from source instead of downloading a pre-built binary from the internet. The goal is to make builds more reproducible and fix a missing system-library problem on newer Linux distributions. There is no direct evidence in the commit of a security vulnerability being patched; it is primarily a build-hygiene and reliability change.

Lower-prioritycontrib/make_download: invert GPG name trickeryby SomberNight · db43e0c7 · Aug 12, 2025 · 1 fileMessage 68 · AdequateInformational 18Details
Commit message · SomberNight

contrib/make_download: invert GPG name trickery

if I ran the script with the *.sombernight_releasekey.asc sigs present in dist/,
"SomberNight" and "sombernight_releasekey" were both included as signers

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100

This commit fixes a small script that builds Electrum's download webpage. Previously, the script could list the same person twice under slightly different names if certain signature files were present. The change makes the script consistently use the key file name internally while still showing the friendly display name to users. It is a cosmetic/integrity cleanup, not a fix for an exploitable vulnerability.