EL
← All projectsElectrum

Electrum

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

BitcoinSoftware walletsNormal
Repository coverage

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

64security candidates205second-pass queue54AI analyses
55commits · 30 days
108commits · 60 days
454commits · 180 days
924commits · 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
191Strong · 80–100
409Adequate · 60–79
285Thin · 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.
SomberNight3492517063
f321x3712121070
Sander van Grieken98108057
ThomasV7222056
user322062
Roman Zeyde511053
Sasha Zykov411076
Aaron Fiore411068
Ferdinando Ametrano111096
Ilya Artemov200050
Oren200043
Sebastian van Staa100045
Analysis record

Published AI watches

Last scanned 1 minute ago

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 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 25 AI analysisMessage 68 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

trezor: drop session after closing it

This commit fixes a bug in Electrum's support for Trezor hardware wallets. After a Trezor session times out or is closed, Electrum now forgets the old session ID. Previously it kept the stale session ID, so the next attempt to sign a trans…

Fixes a stale-session reference that caused InvalidSessionError on re-authenticationEnsures PIN re-prompt after session timeout/closureFailure mode was denial-of-service (transaction signing crash), not unauthorized signing
071b1e24by f321x+8−51 file
No security note in commit
Informational 18 AI analysisMessage 58 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

qml: update ConfirmTxDialog onValidChanged

This is a small user-interface fix for the Electrum mobile/QML app. When sweeping private keys, the confirmation dialog that shows how much money will be moved initially displayed an amount of 0 because it did not refresh after the transac…

bd776e24by f321x+3−01 file
No security note in commit
Low 42 AI analysisMessage 85 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

wallet.check_sighash: don't assume tx.add_info_from_wallet alrdy ran

This commit fixes a defensive check in the Electrum Bitcoin wallet. Before signing a transaction, Electrum checks whether the transaction uses unusual 'sighash' flags that could allow someone else to move coins unexpectedly. The bug was th…

Sighash sanity check could be bypassed for beyond-gap-limit wallet inputsFix adds defensive deep-copy and wallet-info population inside check_sighashRegression test demonstrates dangerous sighash is now caught even with gap_limit=2
b57327fbby SomberNight+48−02 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 65 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

exchange rate: remove CoinDesk provider

This commit simply removes the CoinDesk exchange-rate provider from Electrum because CoinDesk's old API no longer works and its new API requires a paid authorization token. It is a routine cleanup, not a security fix.

6571e479by f321x+0−1972 files
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

hw_wallet/qt: reuse device message dialog across button requests

This commit is a user-interface performance and polish fix for Electrum's hardware wallet integration. It stops the app from destroying and recreating the same on-screen prompt every time a hardware wallet asks the user to confirm a transa…

898a4c27by Sasha Zykov+15−11 file
No security note in commit
Low 25 AI analysisMessage 88 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

lnmsg: add new primitive type `bip340sig`, add tlv merkle root calculation and schnorr-sign over tlvs, implicit en/decode utf8 fields, schnorr signature verification.

This commit adds new Lightning Network message handling code to Electrum. It introduces a new BIP-340 Schnorr signature field type, computes Merkle roots over TLV (type-length-value) records, signs and verifies those roots, and adds implic…

New cryptographic signing/verification path addedNew BIP-340 tagged-hash Merkle root constructionSignature TLVs excluded from the Merkle root they sign
759ef10dby Sander van Grieken+160−111 file
No security note in commit
Moderate 55 AI analysisMessage 68 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

lnpeer: on_ping: drain out-socket buffer

This change fixes a potential denial-of-service weakness in Electrum's Lightning network peer handling. Previously, when Electrum replied to a peer's 'ping' message, it would add the reply to the outgoing socket buffer without waiting to c…

memory exhaustion / DoS mitigationunbounded outbound buffer growth preventedbackpressure added to peer ping/pong handling
9b206576by SomberNight+6−12 files
Vendor flagged security relevance
Informational 20 AI analysisMessage 100 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

ci: security review: give more permissions to claude

This commit changes Electrum's automated CI security-review bot so that the Claude AI assistant is allowed to run shell commands and modify files on its own, rather than only answering questions. The change is intentional and runs inside a…

New command-line flag named `--dangerously-skip-permissions` introducedCI script now permits an AI agent to execute commands and modify files without interactive permission checksExecution context changed from root to unprivileged `node` user to satisfy Claude's refusal to run as root
39cdb23eby f321x+4−12 files
No security note in commit
Informational 15 AI analysisMessage 90 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

tests: regtest: make test_just_in_time less flaky

This commit only changes a test script. It adds a wait helper so a test that opens two Lightning channels in a row does not fail randomly on continuous integration. There is no change to Electrum's actual wallet or Lightning code, so users…

12547f94by f321x+23−01 file
No security note in commit
Informational 24 AI analysisMessage 78 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Upgrade `trezorlib` to 0.20.1

This commit updates Electrum's Trezor hardware wallet plugin to work with a newer version of the trezorlib library (0.20.1). It rewrites how Electrum opens sessions with Trezor devices, especially when passphrases are used. The change is a…

Dependency upgrade of hardware-wallet communication libraryRefactoring of device session and passphrase handlingChange from init_device() to ping() for liveness check
0f2fa36eby Roman Zeyde+69−464 files
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

qml: additional styling updates

This commit is purely a user-interface styling refresh for Electrum's QML (mobile/desktop) GUI. It swaps some visual components (highlight panes, button containers, padding, colors) and introduces a new shared 'DialogHighlightPane' control…

28f744f7by Sander van Grieken+136−8525 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

qml: styling updates qt6.10

This commit is a routine user-interface refresh for Electrum's mobile/desktop QML app, adjusting colors, spacing, button containers, and placeholder text to match newer Qt 6.10 styling. There is no security-relevant change and no indicatio…

cdb5c0b8by Sander van Grieken+209−17540 files
No security note in commit
Informational 18 AI analysisMessage 65 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

android: pin hostpython3 PyProjectRecipe versions, pin android and pyjnius recipes Cython version

This commit tightens the Android build process for the Electrum Bitcoin wallet by pinning exact versions of build tools (like Cython, pip, setuptools) and their cryptographic hashes. It also updates the version of python-for-android used. …

Pins build-time dependency versions and cryptographic hashesUpdates python-for-android pinned checkout commitAdds new pinned recipe overrides for android and pyjnius Cython prerequisites
74f3c042by Sander van Grieken+54−34 files
No security note in commit
Low 28 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

android: build pyqt_builder and sip ourselves, hash pin all hostpython_prerequisites

This commit updates the Android build setup for the Electrum Bitcoin wallet. It switches to a newer version of the python-for-android build tool, starts building two PyQt-related packages (pyqt_builder and sip) from source instead of relyi…

Hash-pinning of build-time Python dependencies (setuptools, pip)Source-build of pyqt_builder and sip instead of wheel installationpython-for-android checkout bump to newer commit
c8f5798dby Sander van Grieken+21−56 files
No security note in commit
Low 25 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

qml: add workarounds for issue assigning custom types to QObject properties

This commit changes how the Electrum mobile/desktop QML GUI passes custom data objects between Python and the user interface. It switches many typed properties to the generic QVariant/'var' type and adds runtime type checks (asserts) in Py…

Type system relaxation: custom typed QML/Python properties changed to generic QVariant/varRuntime type enforcement added via assert statements in Python settersNo explicit security framing in commit message or diff
9772a6d5by Sander van Grieken+86−5924 files
No security note in commit
Moderate 62 AI analysisMessage 93 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

verifier.py: fix CVE-2012-2459: reject left-sibling duplicates

This commit fixes a known Bitcoin weakness (CVE-2012-2459) in Electrum's light-client verification. Because Bitcoin's Merkle tree duplicates the last hash when a level has an odd number of items, an attacker can craft a block proof that ma…

Fixes CVE-2012-2459 (Merkle tree duplicate-node weakness)Adds explicit LeftSiblingDuplicate exceptionStrengthens SPV Merkle proof verification
3d390742by SomberNight+106−262 files
Vendor flagged security relevance
Moderate 65 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

daemon: set restrictive permission on RPC-server unix domain socket

Electrum's background daemon runs a local control server using a Unix domain socket. Previously, that socket file was created with permissions 0775, meaning any user in the same group could connect to it and potentially control the wallet.…

permission tightening on local RPC socketacknowledged race condition between socket creation and chmodlocal privilege boundary issue (group-writable socket)
9d204abfby SomberNight+8−11 file
Vendor flagged security relevance
Moderate 62 AI analysisMessage 78 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

in GUI mode, only start a limited minimal RPC server

This commit reduces the attack surface of Electrum's built-in remote-control server when running in normal GUI mode. Previously, the RPC server exposed many wallet-related commands; now, in GUI mode on mainnet, it only exposes two safe com…

Reduction of RPC attack surface in GUI modeUnencrypted localhost RPC with config-stored passwordWindows localhost TCP exposure of RPC server
d951a3d2by SomberNight+22−102 files
Vendor flagged security relevance
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 queuedLNWallet: set OPT_ANCHOR_REQ for peer, rm config.ENABLE_ANCHOR_CHANNELSby SomberNight · 193ea6da · May 4, 2026 · 6 filesMessage 95 · StrongTriage 12Details
Commit message · SomberNight

LNWallet: set OPT_ANCHOR_REQ for peer, rm config.ENABLE_ANCHOR_CHANNELS

- require the OPTION_ANCHORS peer feature
- rm the config.ENABLE_ANCHOR_CHANNELS config var, which some users might have set (maybe even forgot they did)
- instead add a new config.TEST_LN_OPEN_SRK_CHANNELS, explicitly for testing

---

As @f321x said, the intention is:
> This will prevent opening new outgoing and incoming SRK channels.
> It will also prevent connecting to peers that don't signal anchor support at all (INIT features), so existing channels to them would need to get force closed or the peer needs to be bullied into updating their node software.
> Existing SRK channels with peers that signal anchor support (e.g. SRK channel opened to Electrum Trampoline) remain usable.

However the part re preventing new incoming SRK channels is not correct AFAICT. I am fixing that in a later commit in the branch.
This is because, AFAIU BOLT-02, just because we negotiated OPTION_ANCHORS as a peer feature, setting channel_type to an SRK channel in open_channel is still technically valid.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedcommands: export_lightning_preimage: add comment about wallet passwordby SomberNight · 3399c20a · Apr 28, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · SomberNight

commands: export_lightning_preimage: add comment about wallet password

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI review queuedbolt11: follow-up renamesby SomberNight · b0a5e201 · Apr 27, 2026 · 2 filesMessage 35 · OpaqueTriage 0Details
Commit message · SomberNight

bolt11: follow-up renames

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedqml: BalanceDetails: fix typoby SomberNight · d2700dfb · Apr 27, 2026 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · SomberNight

qml: BalanceDetails: fix typo

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedqt, watchtower: cleanup importsby f321x · 560d90e8 · Apr 27, 2026 · 2 filesMessage 35 · OpaqueTriage 0Details
Commit message · f321x

qt, watchtower: cleanup imports

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedlnaddr: rename LnAddr -> bolt11by f321x · 306cac19 · Apr 27, 2026 · 15 filesMessage 58 · ThinTriage 12Details
Commit message · f321x

lnaddr: rename LnAddr -> bolt11

The LnAddr, lndecode and lnencode naming didn't imply that it is
bolt 11 specific, making it confusing to work with, now that there are
also bolt 12 "lnaddr".
Renaming it to *bolt11* creates a clear separation to bolt 12 things and
reduces mental load.

This commit is pure renaming (using the PyCharm IDE refactor function),
except for the removal of the `object` inheritance of LnAddr/BOLT11Addr,
this is Python 2 legacy.

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedcrash_reporter: detect more altcoin-forks, don't send reportsby SomberNight · 3534f62b · Apr 27, 2026 · 1 fileMessage 91 · StrongTriage 0Details
Commit message · SomberNight

crash_reporter: detect more altcoin-forks, don't send reports

A new crash report [0] looks to be from a fork where the altcoin has the same genesis block [1] as Bitcoin.
But ofc "branding" is important, so they updated the URLs to point to their fork -- so we could also test against that.

[0]: https://github.com/spesmilo/electrum/issues/10610
[1]: https://github.com/palladium-coin/pallectrum/blob/0df81c6af8d36f3549739576681d3df9969e32fd/electrum/constants.py#L194

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
AI review queuedqt: send start_new_window exc to reporterby f321x · c8c44e35 · Apr 24, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · f321x

qt: send start_new_window exc to reporter

Send more types of exceptions happening during daemon.load_wallet
in `ElectrumGui.start_new_window()` to the crash reporter to catch
e.g. assertion failures instead of showing them to the user as a warning
dialog.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI review queuedqml: deduplicate wallet name validationby f321x · d34129ef · Apr 23, 2026 · 4 filesMessage 60 · AdequateTriage 12Details
Commit message · f321x

qml: deduplicate wallet name validation

Deduplicates the wallet name validation between wizard and daemon.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedappimage: update Dockerfile dependenciesby Roman Zeyde · 8e49eb80 · Apr 22, 2026 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · Roman Zeyde

appimage: update Dockerfile dependencies

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedp4a ref 1098be6964cfc2156959e435e81c2c50f8398586by Sander van Grieken · 29b5e167 · Apr 22, 2026 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · Sander van Grieken

p4a ref 1098be6964cfc2156959e435e81c2c50f8398586

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedqml: FlatButton: show indicator for press-and-hold functionalityby Sander van Grieken · 31b19740 · Apr 22, 2026 · 2 filesMessage 50 · ThinTriage 12Details
Commit message · Sander van Grieken

qml: FlatButton: show indicator for press-and-hold functionality

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 review queuedqml: don't add navigationbar padding when on-screen keyboard is visible, also allow stackview pages to override navigationbar background color to allow correct color runoff below buttonsby Sander van Grieken · 738992ac · Apr 22, 2026 · 12 filesMessage 73 · AdequateTriage 12Details
Commit message · Sander van Grieken

qml: don't add navigationbar padding when on-screen keyboard is visible,
also allow stackview pages to override navigationbar background color to
allow correct color runoff below buttons

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 review queuedqml: various styling updatesby Sander van Grieken · 3c5dc660 · Apr 22, 2026 · 3 filesMessage 35 · OpaqueTriage 0Details
Commit message · Sander van Grieken

qml: various styling updates

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedandroid: openssl 3.0.18by Sander van Grieken · 854f95b7 · Apr 22, 2026 · 1 fileMessage 38 · OpaqueTriage 0Details
Commit message · Sander van Grieken

android: openssl 3.0.18

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedstyling OpenChannelDialogby Sander van Grieken · 1c0851c6 · Apr 22, 2026 · 1 fileMessage 25 · OpaqueTriage 0Details
Commit message · Sander van Grieken

styling OpenChannelDialog

25/100 · OpaqueMessage clarity
✓ Descriptive subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedqml: remove unused componentsby Sander van Grieken · 8e78d747 · Apr 22, 2026 · 2 filesMessage 35 · OpaqueTriage 12Details
Commit message · Sander van Grieken

qml: remove unused components

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI review queuedbitcoin.py: add helper func: neuter_bitcoin_addressby SomberNight · 68e6995a · Apr 20, 2026 · 3 filesMessage 50 · ThinTriage 12Details
Commit message · SomberNight

bitcoin.py: add helper func: neuter_bitcoin_address

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 review queuedwallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixupby SomberNight · 45458c2f · Apr 20, 2026 · 3 filesMessage 98 · StrongTriage 12Details
Commit message · SomberNight

wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup

If the user tries to open a wallet for a different chain (mainnet vs testnet), try to show a reasonable error message.

See previous attempt at this: https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4, which added `wallet.test_addresses_sanity()`. However there are many codepaths where "random" exceptions might get raised before the Wallet object is even instantiated.
See [discussion there](https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4#commitcomment-28017341):
> should we actually fix that?
> if yes, it would be better to write the network type in storage

Indeed now I think we should do that. At the time I was concerned it would not help against altcoin forks if we put "mainnet" or "testnet" in the DB. Now I realise we should just put the genesis block hash in the DB instead.

Many of the reports in https://github.com/spesmilo/electrum/issues/6526 are likely due to users trying to open a mainnet wallet in testnet mode or vice-versa.

fixes https://github.com/spesmilo/electrum/issues/9134
same issue in wizard 2fa two-step wallet-creation flow

98/100 · StrongMessage clarity
✓ Specific, 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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedwallet: make_unsigned_tx: fix base_tx for GUI simple-send batchingby SomberNight · febe95e6 · Apr 19, 2026 · 4 filesMessage 91 · StrongTriage 12Details
Commit message · SomberNight

wallet: make_unsigned_tx: fix base_tx for GUI simple-send batching

fixes regression from https://github.com/spesmilo/electrum/commit/a9f20e4d3de9848247a9079b5b164d8006cf80db :
For the GUI / manual new tx constructions usecase, the flow relies on `base_tx.add_info_from_wallet(self)` being called before `base_tx_fee = base_tx.get_fee()`.

fixes https://github.com/spesmilo/electrum/issues/10587
maybe fixes https://github.com/spesmilo/electrum/issues/8876
probably not a full fix: base_tx could have inputs for which add_info_from_wallet is not sufficient

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedqml: allow renaming walletsby f321x · 8a12874c · Apr 8, 2026 · 3 filesMessage 66 · AdequateTriage 12Details
Commit message · f321x

qml: allow renaming wallets

Allows to rename a wallet file from the QML Wallet Details view.
This seems like a feature we should support as the use-case of a wallet can
change or maybe the user didn't think about a proper name when setting
up the wallet. Especially with lightning channels it is not possible to
restore from seed to change the name.

Fixes #4377

66/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI review queuedadd comments about xpub encryptionby ThomasV · 7a6a39d1 · Apr 2, 2026 · 3 filesMessage 45 · ThinTriage 12Details
Commit message · ThomasV

add comments about xpub encryption

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 review queuedqt: SettingsDialog: guard self.network accessby f321x · 1aad09a6 · Mar 27, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · f321x

qt: SettingsDialog: guard self.network access

Check if self.network before trying to access it. This would trigger an
exception when toggling the trampoline checkbox in offline mode:
```
29.13 | E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
Traceback (most recent call last):
File "/home/user/Documents/electrum/electrum/gui/qt/settings_dialog.py", line 133, in on_trampoline_checked
self.network.run_from_another_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'run_from_another_thread'
31.00 | E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
Traceback (most recent call last):
File "/home/user/Documents/electrum/electrum/gui/qt/settings_dialog.py", line 131, in on_trampoline_checked
self.network.start_gossip()
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'start_gossip'
```

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI review queuedfollow-up prevby SomberNight · 7afec538 · Mar 27, 2026 · 1 fileMessage 28 · OpaqueTriage 0Details
Commit message · SomberNight

follow-up prev

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedlnwallet: make jit fees configurable, add mining feesby f321x · 85356e55 · Mar 26, 2026 · 4 filesMessage 85 · StrongTriage 12Details
Commit message · f321x

lnwallet: make jit fees configurable, add mining fees

Make the just in time channel fees and channel size
configvars, as in practice not every provider would
use the same hardcoded fees or channel sizes.
Add the mining fees required for the funding transaction on top of the
opening fees to prevent opening channels at a loss in a higher
fee environment.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path