Skip to content

Commit 87f3df7

Browse files
committed
release notes: add more stuff for 4.6.0
1 parent dcf16df commit 87f3df7

File tree

1 file changed

+92
-68
lines changed

1 file changed

+92
-68
lines changed

RELEASE-NOTES

Lines changed: 92 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
# Release 4.6.0 (not released yet)
2-
1+
# Release 4.6.0 (in beta/rc, June 2025)
32
* A 'Terms of Use' screen was added to the install wizard. While the
43
licence remains unchanged, we ask users to agree with the fact that
54
we are not a custodial service or a money transmitter. The Terms of
65
Use screen also makes it clear that all issues are to be resolved
76
in public, and that there is no user support via private channels.
8-
9-
* Nostr support: Electrum includes a built-in Nostr library named
10-
electrum-aionostr. This library is used in the context of submarine
11-
swaps, and by several plugins. Electrum will not connect to Nostr
7+
* Nostr support: (using new dependency: electrum-aionostr)
8+
Electrum now uses Nostr in the context of submarine swaps,
9+
and in several plugins. Electrum will not connect to Nostr
1210
by default, only if required.
13-
1411
* Submarine swaps over Nostr: The Electrum client will connect to
1512
Nostr in order to discover submarine swap providers, and to perform
1613
related RPCs. This means that:
@@ -29,80 +26,84 @@
2926
when the user uses the swap service, and the nostr public key used
3027
by the client is ephemeral. In contrast, swap providers use a
3128
persisted identity.
32-
3329
* Third-party plugins:
34-
- Electrum support the installation of plugins distributed by
30+
- Electrum supports the installation of plugins distributed by
3531
third-parties as ZIP files. While it has long been possible to
3632
install third-party plugins when running Electrum from python
3733
sources, the same is now possible when using desktop binaries
3834
(Windows, MacOS, Linux). Third-party plugins are installed as ZIP
39-
files in the user's electrum directory.
35+
files in the user's electrum data directory.
4036
- In order to prevent plugin installation by malware, third-party
4137
plugins can only be enabled if the user enters a plugin
4238
authorization password (distinct from the wallet password).
4339
Setting up that plugin authorization password requires
4440
administrator permissions on the local machine; a
4541
password-derived public key must be written in the system.
46-
47-
* Lightning anchor channels (#9264): Newly created channels use
48-
anchor commitments by default. Since sweeping outputs from anchor
49-
channels may require external UTXOs, lightning can no longer be
50-
enabled in wallets that do not have a software keystore (hardware
51-
wallets, watching-only wallets). Existing wallets that are in that
52-
situation cannot create new channels.
53-
54-
* Wallet unlocking (Qt):
55-
- Wallets can be unlocked in the Qt GUI. When a password-protected
56-
wallet is unlocked, its password is kept in memory, and signing
57-
transactions will not require to enter the password. The unlocked
58-
state is rendered by the 'open lock' icon in the status bar.
59-
- If a wallet needs to sweep anchor channel outputs using extra
60-
UTXOs, the operations will be performed without requiring the
61-
user password if the wallet is unlocked. If the wallet is locked,
62-
the status bar will show a 'password required' button.
63-
64-
* Transaction batching (Qt): When creating a new payment, if the
65-
output can be added to an existing mempool transaction, the 'New
66-
transaction' window will show a drop-down menu, proposing a list of
67-
transactions that can be batched with the current payment. This
68-
replaces the previous 'batch' option checkbox, and gives more
69-
control to the user.
70-
71-
* Keystore enabling/disabling (Qt): It is now possible to add a seed
72-
to an existing watching-only wallet, or to a keystore within a
73-
multisig wallet. Similarly, it is possible to pair a watching-only
74-
keystore with a hardware device. These operations are performed
75-
from the 'Wallet Information' dialog.
76-
77-
* Wallet file encryption:
78-
- Non-multisig hardware wallet files can be encrypted with a
79-
password, instead of the hardware device.
80-
- The option to have a password-protected wallet without file
81-
encryption has been removed from the Qt GUI. It is still possible
82-
to create such a wallet using the command line.
83-
84-
* Lightning address contacts:
85-
- It is now possible to create contacts with (lnurl type) lightning
86-
addresses as payment identifier.
87-
42+
* Lightning:
43+
- Anchor channels (#9264): Newly created channels use
44+
anchor commitments by default. Since sweeping outputs from anchor
45+
channels may require external UTXOs, lightning can no longer be
46+
enabled in wallets that do not have a software keystore (hardware
47+
wallets, watching-only wallets). Existing wallets that are in that
48+
situation cannot create new channels.
49+
- wallets with anchor channels must always have utxos available (#9536)
50+
- support added for onion messages (only CLI for now) (#9039)
51+
- lots of fixes and improvements (#8857, #8547, #9700, #9083, ...)
52+
* Qt Desktop GUI:
53+
- migrate from Qt5 to Qt6 (#9189)
54+
- new: screenshot "protection" on Windows (#9898). Inspired by Windows
55+
Recall, by default screenshots will contain black rectangles in
56+
place of the Electrum windows, to try to avoid leaking secret keys.
57+
This is opt-out using a config variable.
58+
- exposed option to connect to only a single server (--oneserver)
59+
- Wallet file encryption:
60+
- Non-multisig hardware wallet files can now be encrypted with
61+
either using the hardware device or (new) a password. (#5561)
62+
- The option to have a password-protected wallet without file
63+
encryption has been removed from the Qt GUI. It is still possible
64+
to create such a wallet using the command line.
65+
- Wallet unlocking:
66+
- Wallets can be unlocked in the Qt GUI. When a password-protected
67+
wallet is unlocked, its password is kept in memory, and signing
68+
transactions will not require to enter the password. The unlocked
69+
state is rendered by the 'open lock' icon in the status bar.
70+
- If a wallet needs to sweep anchor channel outputs using extra
71+
UTXOs, the operations will be performed without requiring the
72+
user password if the wallet is unlocked. If the wallet is locked,
73+
the status bar will show a 'password required' button.
74+
- Transaction batching: When creating a new payment, if the
75+
output can be added to an existing mempool transaction, the 'New
76+
transaction' window will show a drop-down menu, proposing a list of
77+
transactions that can be batched with the current payment. This
78+
replaces the previous 'batch' option checkbox, and gives more
79+
control to the user.
80+
- Keystore enabling/disabling (Qt):
81+
- It is now possible to add a seed
82+
to an existing watching-only wallet, or to a keystore within a
83+
multisig wallet. Similarly, it is possible to pair a watching-only
84+
keystore with a hardware device. These operations are performed
85+
from the 'Wallet Information' dialog.
86+
- Lightning address contacts:
87+
- It is now possible to create contacts with (lnurl type) lightning
88+
addresses as payment identifier.
89+
- show warnings on wallet close if there are sensitive pending operations,
90+
e.g. when in the middle of doing a swap (#9715)
8891
* Accounting rules: In order to properly handle on-chain transactions
8992
created by lightning channel force closures, we consider that funds
9093
successfully redeemed from a script with several possible
9194
recipients have never left the final recipient's wallet. This
9295
avoids having to write balance changes that are cancelled
9396
later. The corresponding addresses are rendered in the GUI as
9497
'accounting addresses' (in orange).
95-
9698
* New plugins:
9799
- Nostr Wallet Connect: This plugin allows remote control of
98-
Electrum lightning wallets via Nostr NIP-47.
100+
Electrum lightning wallets via Nostr NIP-47. (#9675)
99101
- Nostr Cosigner: This plugin facilitates the exchange of
100102
PSBTs between cosigners of a multisig wallet. It replaces the
101103
former 'Cosigner pool' plugin. Instead of relying on a central
102-
server, it uses Nostr to send/receive PSBTs.
104+
server, it uses Nostr to send/receive PSBTs. (#9261)
103105
- Timelock Recovery: A timelock based inheritance scheme.
104-
See timelockrecovery.com
105-
106+
See timelockrecovery.com (#9589)
106107
* CLI:
107108
- The command line help has been improved; parameters are
108109
documented in the same docstring as the command they belong to.
@@ -112,22 +113,45 @@
112113
- Plugins may add extra commands to the CLI. Plugin commands must
113114
be prefixed with the plugin's internal name.
114115
- Support for hold invoices.
115-
116+
- new commands:
117+
- listconfig, helpconfig, unsetconfig
118+
- onchain_capital_gains (was previously a field of onchain_history)
119+
- {add,settle,cancel,check}_hold_invoice
120+
- send_onion_message, get_blinded_path_via
121+
- wait_for_sync
116122
* Security:
117123
- Mitigate against dust attacks; Add option to avoid spending from
118-
used addresses.
119-
- Restrict process memory access on Linux.
120-
121-
* Networking:
122-
- The option to connect to a single server has been added to the GUI.
123-
124-
* Android:
125-
- Sweep key feature ported to mobile
124+
used addresses. (#9636)
125+
- Restrict process memory access on Linux. (#9749)
126+
* QML GUI (Android):
127+
- "Sweep key" feature ported to mobile
126128
- Estimate amount when Max is checked
127-
- Properly ask for (notification) permission access.
128-
129+
- exposed option to connect to only a single server (--oneserver)
130+
* Android:
131+
- properly ask for (notification) OS permission access. (#9682)
132+
- add option to prevent the app touching the screen brightness (#9321)
133+
* Electrum protocol: add padding and some noise to messages (#9875)
129134
* Hardware wallets:
130135
- Coldcard: add feature to upload multisig wallet configuration to Coldcard via USB.
136+
- KeepKey: we now vendor our fork of keepkeylib,
137+
instead of using the unmaintained upstream as an external dependency (#9650)
138+
- Ledger:
139+
- rm support for "HW.1" and "Nano" (non-S) devices (#9652)
140+
- rm dependency: btchip-python (#9370)
141+
* Builds/binaries:
142+
- new minimum OS requirements:
143+
- Windows: x86_64, Windows 10 (1809)
144+
note: 32-bit Windows is no longer supported.
145+
- macOS: 11 "Big Sur"
146+
- Linux AppImage: x86_64, glibc 2.31 ("debian 11"-equivalent)
147+
- known issue: the Windows binaries are not codesigned atm (but there are GPG sigs!)
148+
* Dependencies:
149+
- the minimum required python version was increased: 3.8->3.10 (#9418)
150+
- new first-party dep: electrum-aionostr
151+
- forked the seemingly unmaintained davestgermain/aionostr library
152+
- new first-party dep: electrum-ecc
153+
- split out our existing libsecp256k1 python bindings into
154+
this separate package
131155

132156

133157
# Release 4.5.8 (Oct 23, 2024)

0 commit comments

Comments
 (0)