tRELEASE-NOTES - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
tRELEASE-NOTES (60293B)
---
1 # Release 4.0.9 - (Dec 18, 2020)
2 * fixes a regression introduced in 4.0.8, that prevents from
3 paying BIP70 invoices (#6859)
4 * reflect frozen channels and disconnected peers in the displayed
5 'can send/can receive' amounts.
6
7 # Release 4.0.8 - (Dec 17, 2020)
8 * fix decoding BIP21 URIs with uppercase schema (d40bedb2)
9 * psbt: put full derivation paths into PSBT by default (c8155129)
10 * invoices: allow address-reuse (#6609, #6852)
11 * A few other minor bugfixes.
12
13 # Release 4.0.7 - (Dec 9, 2020)
14 * kivy: fix open channel with 'max' amount
15 * kivy: fix regression introduced in last release (a9fc440)
16 * other minor GUI fixes
17 * Dependencies: as part of adapting to new dnspython (#6828),
18 - python-ecdsa is no longer needed at all,
19 - cryptography is now required (min 2.6), the user can no
20 longer choose between cryptography and pycryptodomex
21
22 # Release 4.0.6 - (Dec 4, 2020)
23 * Fix 'Max' button issue for submarine swaps button (#6770)
24 * Fix 'Max' button in kivy (#6169)
25 * Various fixes for Kivy/Android install wizard
26 * More robust account keypath for BitBox02 (#6766)
27
28 # Release 4.0.5 - (Nov 18, 2020)
29 * Fix .dmg binary hanging on recently released macOS 11 Big Sur (#6461)
30 * Lightning:
31 - bugfix: during LN channel opening, if the client crashed at the
32 wrong moment, the channel might not get fully persisted to disk,
33 and would need manual console-tinkering to recover (#6656)
34 - Lightning is enabled by default. Electrum will not connect to
35 the Lightning Network until the user opens a channel. (#6639)
36 - smarter node recommendation (to open channels with) (#6705)
37 * user interface: some minor changes that aim to improve usability
38 * Ledger:
39 - fix enumerating devices with new bitcoin app (1.5.1) (b78cbcff)
40 - fix compat with HW.1 (200f547a)
41 * A few other minor bugfixes.
42
43 # Release 4.0.4 - (Oct 15, 2020)
44 * PSBT: fix regression in 4.0.3 where UTXO data was not included in
45 QR codes (#6600)
46 * new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling
47 an unconfirmed RBF tx by double-spending its inputs to self.
48 * Windows binary:
49 - fix some issues with QR scanning by building zbar ourselves (#6593)
50 - when using setup exe, also install a debug binary (#6603)
51 * Ledger: fix "The derivation path is unusual" warnings (#6512)
52 (needs Bitcoin app 1.4.8+ installed on device)
53 * A few other minor bugfixes and usability improvements.
54
55 # Release 4.0.3 - (Sep 11, 2020)
56 * PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199:
57 we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429).
58 (PSBTs created since 4.0.1 already contained UTXO for segwit inputs)
59 * Hardware wallets:
60 - bitbox02: better multisig UX: implement get_soft_device_id (#6386)
61 - coldcard: fix "show address" for multisig (#6517)
62 - all: run all device communication on a dedicated thread (#6561).
63 This should resolve some threading issues.
64 * new feature: "Automated BIP39 recovery" (#6219, #6155)
65 When restoring from a BIP39 seed, add option to scan many known
66 derivation paths for history, and show them to user to choose from.
67 * show derivation path of keystores in Qt GUI Wallet>Information (#4700)
68 * fix "signtransaction" RPC command (#6502)
69 * Dependencies: pyaes is no longer needed (#6563)
70 * The tar.gz source dist now bundles make_libsecp256k1.sh, to help
71 users getting libsecp256k1 (#6323).
72 * A few other minor bugfixes and usability improvements.
73
74 # Release 4.0.2 - (July 8, 2020)
75 - rm old corrupted non-bip70 invoices (#6345)
76 - other minor fixes
77
78 # Release 4.0.1 - (July 3, 2020)
79 * Lightning Network support (experimental)
80 - Our implementation of Lightning relies on Electrum servers to
81 query channel states. Since servers can lie about the state of a
82 channel, users should either use a server that they trust, or
83 setup a private watchtower (see below). A watchtower is also
84 recommended for lightning wallets that remain offline for
85 extended periods of time (the default CSV 'to_self_delay' is 1
86 week). Please note that Electrum Personal Server (EPS) cannot be
87 used with lightning wallets, because channels funding addresses
88 are arbitrary.
89 - Lightning funds cannot be restored from seed. Instead, users need
90 to create static backups of their channels. Static backups cannot
91 be used to perform lightning transactions, they can only be used
92 to trigger a remote-force-close of a channel.
93 - Lightning-enabled wallet files must not be copied. Instead, a
94 backup of the wallet can be created from the Qt menu, and it will
95 contain static backups of all its channels. Backups can also be
96 exported for each channel (e.g. via QR code), and imported in
97 another wallet. Since backups are encrypted with a key derived
98 from the wallet's xpub, they can only be imported into another
99 instance of the same wallet, or a watch-only version of it. The
100 force-close is not triggered automatically when the backup is
101 imported; imported backups can live inside a wallet file.
102 - Lightning can be enabled in the GUI (Wallet>Information) or from
103 the CLI (init_lightning). Lightning is currently restricted to HD
104 p2wpkh wallets (including watch-only and hardware wallets). The
105 Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support,
106 with feature-richness in that order.
107 - LN protocol details: dataloss_protect and static_remotekey are
108 required; varonion and payment_secret are implemented, MPP not yet.
109 Channels are not announced ('private'), forwarding is disabled.
110 We do not serve gossip queries, only consume them.
111 - Submarine swaps: the GUI integrates a service that offers
112 atomically exchanging on-chain and lightning bitcoins for a fee.
113 Electrum Technologies runs a central server for this, powered by
114 the Boltz backend.
115 - Watchtowers: Electrum can run a local watchtower (GUI setting),
116 or it can connect to a remote watchtower. A watchtower contains
117 pre-signed transactions and does not need your private keys. A
118 local watchtower will watch your channels whenever an Electrum
119 instance is running, without needing access to your wallet file.
120 An Electrum daemon can be configured to be used as a remote
121 watchtower by setting 'watchtower_address', 'watchtower_user' and
122 'watchtower_password'.
123 * Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported
124 (#5721). The previous Electrum partial transaction format is no
125 longer supported, i.e. this is an incompatible change. Users should
126 make sure that all instances of Electrum they use to co-sign or
127 offline sign, are updated together.
128 * Hardware wallets: several fixes in general; notable changes:
129 - The BitBox02 is now supported (#5993)
130 - Multisig support for Coldcard (#5440)
131 - Compatibility with latest Trezor fw (#6064, #6198, #5692)
132 * Dependencies (see README for install instructions):
133 - libsecp256k1 is now required (previously optional). python-ecdsa
134 remains a dependency but it is now only used for DNSSEC.
135 - Added: either one of pycryptodomex or cryptography is now required,
136 mainly due to LN (previously pycryptodomex was optional, for fast AES)
137 - Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon
138 * Qt GUI: several changes, notably:
139 - Separation between output selection and transaction finalization.
140 - Coin selection moved to the Coins tab, and it affects all txns,
141 e.g. RBF fee-bumping, LN channel opens, submarine swaps.
142 - Editable tx preview dialog that allows e.g. changing the locktime,
143 toggling RBF, and manual coinjoins.
144 * HTTP PayServer: The configuration of a bitcoin-accepting website
145 using Electrum has been simplified and requires fewer steps (see
146 documentation). The Payserver supports BIP70 and Lightning payments.
147 * Android:
148 - We now build two APKs, one for ARMv7 and one for ARMv8
149 - The kivy GUI now supports importing BIP39 seeds
150 - Each wallet on kivy now can have a separate generic password,
151 using which the wallet files are encrypted. An optional PIN,
152 shared among all wallets, can be added to get prompted for spends.
153 * The API of several CLI/RPC commands have changed, and several new
154 commands have been introduced (mainly for LN).
155 * Distributables:
156 - The .tar.gz source dist is now built reproducibly.
157 Relatedly, we no longer distribute a .zip sdist.
158 - The MacOS binary now conforms to macOS 10.15; it is notarized
159 by Apple. This required bumping the min macOS version to 10.13.
160 Startup times should now be faster on 10.15. (#6128, #6225)
161 * Transactions:
162 - we now grind low R for ECDSA signatures to match bitcoind (#5820)
163 * Lots and lots of other minor bugfixes and improvements.
164
165
166 # Release 3.3.8 - (July 11, 2019)
167
168 * fix some bugs with recent bump fee (RBF) improvements (#5483, #5502)
169 * fix #5491: watch-only wallets could not bump fee in some cases
170 * appimage: URLs could not be opened on some desktop environments (#5425)
171 * faster tx signing for segwit inputs for really large txns (#5494)
172 * A few other minor bugfixes and usability improvements.
173
174
175 # Release 3.3.7 - (July 3, 2019)
176
177 * The AppImage Linux x86_64 binary and the Windows setup.exe
178 (so now all Windows binaries) are now built reproducibly.
179 * Bump fee (RBF) improvements:
180 Implemented a new fee-bump strategy that can add new inputs,
181 so now any tx can be fee-bumped (d0a4366). The old strategy
182 was to decrease the value of outputs (starting with change).
183 We will now try the new strategy first, and only use the old
184 as a fallback (needed e.g. when spending "Max").
185 * CoinChooser improvements:
186 - more likely to construct txs without change (when possible)
187 - less likely to construct txs with really small change (e864fa5)
188 - will now only spend negative effective value coins when
189 beneficial for privacy (cb69aa8)
190 * fix long-standing bug that broke wallets with >65k addresses (#5366)
191 * Windows binaries: we now build the PyInstaller boot loader ourselves,
192 as this seems to reduce anti-virus false positives (1d0f679)
193 * Android: (fix) BIP70 payment requests could not be paid (#5376)
194 * Android: allow copy-pasting partial transactions from/to clipboard
195 * Fix a performance regression for large wallets (c6a54f0)
196 * Qt: fix some high DPI issues related to text fields (37809be)
197 * Trezor:
198 - allow bypassing "too old firmware" error (#5391)
199 - use only the Bridge to scan devices if it is available (#5420)
200 * hw wallets: (known issue) on Win10-1903, some hw devices
201 (that also have U2F functionality) can only be detected with
202 Administrator privileges. (see #5420 and #5437)
203 A workaround is to run as Admin, or for Trezor to install the Bridge.
204 * Several other minor bugfixes and usability improvements.
205
206
207 # Release 3.3.6 - (May 16, 2019)
208
209 * qt: fix crash during 2FA wallet creation (#5334)
210 * fix synchronizer not to keep resubscribing to addresses of
211 already closed wallets (e415c0d9)
212 * fix removing addresses/keys from imported wallets (#4481)
213 * kivy: fix crash when aborting 2FA wallet creation (#5333)
214 * kivy: fix rare crash when changing exchange rate settings (#5329)
215 * A few other minor bugfixes and usability improvements.
216
217
218 # Release 3.3.5 - (May 9, 2019)
219
220 * The logging system has been overhauled (#5296).
221 Logs can now also optionally be written to disk, disabled by default.
222 * Fix a bug in synchronizer (#5122) where client could get stuck.
223 Also, show the progress of history sync in the GUI. (#5319)
224 * fix Revealer in Windows and MacOS binaries (#5027)
225 * fiat rate providers:
226 - added CoinGecko.com and CoinCap.io
227 - BitcoinAverage now only provides historical exchange rates for
228 paying customers. Changed default provider to CoinGecko.com (#5188)
229 * hardware wallets:
230 - Ledger: Nano X is now recognized (#5140)
231 - KeepKey:
232 - device was not getting detected using Windows binary (#5165)
233 - support firmware 6.0.0+ (#5205)
234 - Trezor: implemented "seedless" mode (#5118)
235 * Coin Control in Qt: implemented freezing individual UTXOs
236 in addition to freezing addresses (#5152)
237 * TrustedCoin (2FA wallets):
238 - better error messages (#5184)
239 - longer signing timeout (#5221)
240 * Kivy:
241 - fix bug with local transactions (#5156)
242 - allow selecting fiat rate providers without historical data (#5162)
243 * fix CPFP: the fees already paid by the parent were not included in
244 the calculation, so it always overestimated (#5244)
245 * Testnet: there is now a warning when the client is started in
246 testnet mode as there were a number of reports of users getting
247 scammed through social engineering (#5295)
248 * CoinChooser: performance of creating transactions has been improved
249 significantly for large wallets. (d56917f4)
250 * Importing/sweeping WIF keys: stricter checks (#4638, #5290)
251 * Electrum protocol: the client's "user agent" has been changed from
252 "3.3.5" to "electrum/3.3.5". Other libraries connecting to servers
253 can consider not "spoofing" to be Electrum. (#5246)
254 * Several other minor bugfixes and usability improvements.
255
256
257 # Release 3.3.4 - (February 13, 2019)
258
259 * AppImage: we now also distribute self-contained binaries for x86_64
260 Linux in the form of an AppImage (#5042). The Python interpreter,
261 PyQt5, libsecp256k1, PyCryptodomex, zbar, hidapi/libusb (including
262 hardware wallet libraries) are all bundled. Note that users of
263 hw wallets still need to set udev rules themselves.
264 * hw wallets: fix a regression during transaction signing that prompts
265 the user too many times for confirmations (commit 2729909)
266 * transactions now set nVersion to 2, to mimic Bitcoin Core
267 * fix Qt bug that made all hw wallets unusable on Windows 8.1 (#4960)
268 * fix bugs in wallet creation wizard that resulted in corrupted
269 wallets being created in rare cases (#5082, #5057)
270 * fix compatibility with Qt 5.12 (#5109)
271
272
273 # Release 3.3.3 - (January 25, 2019)
274
275 * Do not expose users to server error messages (#4968)
276 * Notify users of new releases. Release announcements must be signed,
277 and they are verified byElectrum using a hardcoded Bitcoin address.
278 * Hardware wallet fixes (#4991, #4993, #5006)
279 * Display only QR code in QRcode Window
280 * Fixed code signing on MacOS
281 * Randomise locktime of transactions
282
283
284 # Release 3.3.2 - (December 21, 2018)
285
286 * Fix Qt history export bug
287 * Improve network timeouts
288 * Prepend server transaction_broadcast error messages with
289 explanatory message. Render error messages as plain text.
290
291
292 # Release 3.3.1 - (December 20, 2018)
293
294 * Qt: Fix invoices tab crash (#4941)
295 * Android: Minor GUI improvements
296
297
298 # Release 3.3.0 - Hodler's Edition (December 19, 2018)
299
300 * The network layer has been rewritten using asyncio and aiorpcx.
301 In addition to easier maintenance, this makes the client
302 more robust against misbehaving servers.
303 * The minimum python version was increased to 3.6
304 * The blockchain headers and fork handling logic has been generalized.
305 Clients by default now follow chain based on most work, not length.
306 * New wallet creation defaults to native segwit (bech32).
307 * Segwit 2FA: TrustedCoin now supports native segwit p2wsh
308 two-factor wallets.
309 * RBF batching (opt-in): If the wallet has an unconfirmed RBF
310 transaction, new payments will be added to that transaction,
311 instead of creating new transactions.
312 * MacOS: support QR code scanner in binaries.
313 * Android APK:
314 - build using Google NDK instead of Crystax NDK
315 - target API 28
316 - do not use external storage (previously for block headers)
317 * hardware wallets:
318 - Coldcard now supports spending from p2wpkh-p2sh,
319 fixed p2pkh signing for fw 1.1.0
320 - Archos Safe-T mini: fix #4726 signing issue
321 - KeepKey: full segwit support
322 - Trezor: refactoring and compat with python-trezor 0.11
323 - Digital BitBox: support firmware v5.0.0
324 * fix bitcoin URI handling when app already running (#4796)
325 * Qt listings rewritten:
326 the History tab now uses QAbstractItemModel, the other tabs use
327 QStandardItemModel. Performance should be better for large wallets.
328 * Several other minor bugfixes and usability improvements.
329
330
331 # Release 3.2.3 - (September 3, 2018)
332
333 * hardware wallet: the Safe-T mini from Archos is now supported.
334 * hardware wallet: the Coldcard from Coinkite is now supported.
335 * BIP39 seeds: if a seed extension (aka passphrase) contained
336 multiple consecutive whitespaces or leading/trailing whitespaces
337 then the derived addresses were not following spec. This has been
338 fixed, and affected should move their coins. The wizard will show a
339 warning in this case. (#4566)
340 * Revealer: the PRNG used has been changed (#4649)
341 * fix Linux distributables: 'typing' was not bundled, needed for python 3.4
342 * fix #4626: fix spending from segwit multisig wallets involving a Trezor
343 cosigner when using a custom derivation path
344 * fix #4491: on Android, if user had set "uBTC" as base unit, app crashed
345 * fix #4497: on Android, paying bip70 invoices from cold start did not work
346 * Several other minor bugfixes and usability improvements.
347
348
349 # Release 3.2.2 - (July 2nd, 2018)
350
351 * Fix DNS resolution on Windows
352 * Fix websocket bug in daemon
353
354
355 # Release 3.2.1 - (July 1st, 2018)
356
357 * fix Windows binaries: due to build process changes, the locale files
358 were not included; the language could not be changed from English
359 * fix Linux distributables: wordlists were not included (#4475)
360
361
362 # Release 3.2.0 - Satoshi's Vision (June 30, 2018)
363
364 * If present, libsecp256k1 is used to speed up elliptic curve
365 operations. The library is bundled in the Windows, MacOS, and
366 Android binaries. On Linux, it needs to be installed separately.
367 * Two-factor authentication is available on Android. Note that this
368 will only provide additional security if one time passwords are
369 generated on a separate device.
370 * Semi-automated crash reporting is implemented for Android.
371 * Transactions that are dropped from the mempool are kept in the
372 wallet as 'local', and can be rebroadcast. Previously these
373 transactions were deleted from the wallet.
374 * The scriptSig and witness part of transaction inputs are no longer
375 parsed, unless actually needed. The wallet will no longer display
376 'from' addresses corresponding to transaction inputs, except for
377 its own inputs.
378 * The partial transaction format has been incompatibly changed. This
379 was needed as for partial transactions the scriptSig/witness has to
380 be parsed, but for signed transactions we did not want to do the
381 parsing. Users should make sure that all instances of Electrum
382 they use to co-sign or offline sign, are updated together.
383 * Signing of partial transactions created with online imported
384 addresses wallets now supports significantly more
385 setups. Previously only online p2pkh address + offline WIF was
386 supported. Now the following setups are all supported:
387 - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline WIF,
388 - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline seed/xprv,
389 - online {p2sh, p2wsh-p2sh, p2wsh}-multisig address + offline seeds/xprvs
390 (potentially distributed among several different machines)
391 Note that for the online address + offline HD secret case, you need
392 the offline wallet to recognize the address (i.e. within gap
393 limit). Having an xpub on the online machine is still the
394 recommended setup, as this allows the online machine to generate
395 new addresses on demand.
396 * Segwit multisig for bip39 and hardware wallets is now enabled.
397 (both p2wsh-p2sh and native p2wsh)
398 * Ledger: offline signing for segwit inputs (#3302) This has already
399 worked for Trezor and Digital Bitbox. Offline segwit signing can be
400 combined with online imported addresses wallets.
401 * Added Revealer plugin. ( https://revealer.cc ) Revealer is a seed
402 phrase back-up solution. It allows you to create a cold, analog,
403 multi-factor backup of your wallet seeds, or of any arbitrary
404 secret. The Revealer utilizes a transparent plastic visual one time
405 pad.
406 * Fractional fee rates: the Qt GUI now displays fee rates with 0.1
407 sat/byte precision, and also allows this same resolution in the
408 Send tab.
409 * Hardware wallets: a "show address" button is now displayed in the
410 Receive tab of the Qt GUI. (#4316)
411 * Trezor One: implemented advanced/matrix recovery (#4329)
412 * Qt/Kivy: added "sat" as optional base unit.
413 * Kivy GUI: significant performance improvements when displaying
414 history and address list of large wallets; and transaction dialog
415 of large transactions.
416 * Windows: use dnspython to resolve dns instead of socket.getaddrinfo
417 (#4422)
418 * Importing minikeys: use uncompressed pubkey instead of compressed
419 (#4384)
420 * SPV proofs: check inner nodes not to be valid transactions (#4436)
421 * Qt GUI: there is now an optional "dark" theme (#4461)
422 * Several other minor bugfixes and usability improvements.
423
424
425 # Release 3.1.3 - (April 16, 2018)
426
427 * Qt GUI: seed word auto-complete during restore
428 * Android: fix some crashes
429 * performance improvements (wallet, and Qt GUI)
430 * hardware wallets: show debug message during device scan
431 * Digital Bitbox: enabled BIP84 (p2wpkh) wallet creation
432 * add regtest support (via --regtest flag)
433 * other minor bugfixes and usability improvements
434
435 # Release 3.1.2 - (March 28, 2018)
436
437 * Kivy/android: request PIN on startup
438 * Improve OSX build process
439 * Fix various bugs with hardware wallets
440 * Other minor bugfixes
441
442 # Release 3.1.1 - (March 12, 2018)
443
444 * fix #4031: Trezor T support
445 * partial fix #4060: proxy and hardware wallet can't be used together
446 * fix #4039: can't set address labels
447 * fix crash related to coinbase transactions
448 * MacOS: use internal graphics card
449 * fix openalias related crashes
450 * speed-up capital gains calculations
451 * hw wallet encryption: re-prompt for passphrase if incorrect
452 * other minor fixes.
453
454
455
456 # Release 3.1.0 - (March 5, 2018)
457
458 * Memory-pool based fee estimation. Dynamic fees can target a desired
459 depth in the memory pool. This feature is optional, and ETA-based
460 estimates from Bitcoin Core are still available. Note that miners
461 could exploit this feature, if they conspired and filled the memory
462 pool with expensive transactions that never get mined. However,
463 since the Electrum client already trusts an Electrum server with
464 fee estimates, activating this feature does not introduce any new
465 vulnerability. In addition, the client uses a hard threshold to
466 protect itself from servers sending excessive fee estimates. In
467 practice, ETA-based estimates have resulted in sticky fees, and
468 caused many users to overpay for transactions. Advanced users tend
469 to visit (and trust) websites that display memory-pool data in
470 order to set their fees.
471 * Capital gains: For each outgoing transaction, the difference
472 between the acquisition and liquidation prices of outgoing coins is
473 displayed in the wallet history. By default, historical exchange
474 rates are used to compute acquisition and liquidation prices. These
475 values can also be entered manually, in order to match the actual
476 price realized by the user. The order of liquidation of coins is
477 the natural order defined by the blockchain; this results in
478 capital gain values that are invariant to changes in the set of
479 addresses that are in the wallet. Any other ordering strategy (such
480 as FIFO, LIFO) would result in capital gain values that depend on
481 the presence of other addresses in the wallet.
482 * Local transactions: Transactions can be saved in the wallet without
483 being broadcast. The inputs of local transactions are considered as
484 spent, and their change outputs can be re-used in subsequent
485 transactions. This can be combined with cold storage, in order to
486 create several transactions before broadcasting them. Outgoing
487 transactions that have been removed from the memory pool are also
488 saved in the wallet, and can be broadcast again.
489 * Checkpoints: The initial download of a headers file was replaced
490 with hardcoded checkpoints. The wallet uses one checkpoint per
491 retargeting period. The headers for a retargeting period are
492 downloaded only if transactions need to be verified in this period.
493 * The 'privacy' and 'priority' coin selection policies have been
494 merged into one. Previously, the 'privacy' policy has been unusable
495 because it was was not prioritizing confirmed coins. The new policy
496 is similar to 'privacy', except that it de-prioritizes addresses
497 that have unconfirmed coins.
498 * The 'Send' tab of the Qt GUI displays how transaction fees are
499 computed from transaction size.
500 * The wallet history can be filtered by time interval.
501 * Replace-by-fee is enabled by default. Note that this might cause
502 some issues with wallets that do not display RBF transactions until
503 they are confirmed.
504 * Watching-only wallets and hardware wallets can be encrypted.
505 * Semi-automated crash reporting
506 * The SSL checkbox option was removed from the GUI.
507 * The Trezor T hardware wallet is now supported.
508 * BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware
509 wallets can now be created when specifying a BIP84 derivation
510 path. This is usable with Trezor and Ledger.
511 * Windows: the binaries now include ZBar, and QR code scanning should work.
512 * The Wallet Import Format (WIF) for private keys that was extended in 3.0
513 is changed. Keys in the previous format can be imported, compatibility
514 is maintained. Newly exported keys will be serialized as
515 "script_type:original_wif_format_key".
516 * BIP32 master keys for testnet once again have different version bytes than
517 on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the
518 corresponding testnet prefixes are {t,u,U,v,V}|{pub,prv}.
519 More details and exact version bytes are specified at:
520 https://github.com/spesmilo/electrum-docs/blob/master/xpub_version_bytes.rst
521 Note that due to this change, testnet wallet files created with previous
522 versions of Electrum must be considered broken, and they need to be
523 recreated from seed words.
524 * A new version of the Electrum protocol is required by the client
525 (version 1.2). Servers using older versions of the protocol will
526 not be displayed in the GUI.
527
528
529 # Release 3.0.6 :
530 * Fix transaction parsing bug #3788
531
532 # Release 3.0.5 : (Security update)
533
534 This is a follow-up to the 3.0.4 release, which did not completely fix
535 issue #3374. Users should upgrade to 3.0.5.
536
537 * The JSONRPC interface is password protected
538 * JSONRPC commands are disabled if the GUI is running, except 'ping',
539 which is used to determine if a GUI is already running
540
541
542 # Release 3.0.4 : (Security update)
543
544 * Fix a vulnerability caused by Cross-Origin Resource Sharing (CORS)
545 in the JSONRPC interface. Previous versions of Electrum are
546 vulnerable to port scanning and deanonimization attacks from
547 malicious websites. Wallets that are not password-protected are
548 vulnerable to theft.
549 * Bundle QR scanner with Android app
550 * Minor bug fixes
551
552 # Release 3.0.3
553 * Qt GUI: sweeping now uses the Send tab, allowing fees to be set
554 * Windows: if using the installer binary, there is now a separate shortcut
555 for "Electrum Testnet"
556 * Digital Bitbox: added support for p2sh-segwit
557 * OS notifications for incoming transactions
558 * better transaction size estimation:
559 - fees for segwit txns were somewhat underestimated (#3347)
560 - some multisig txns were underestimated
561 - handle uncompressed pubkeys
562 * fix #3321: testnet for Windows binaries
563 * fix #3264: Ledger/dbb signing on some platforms
564 * fix #3407: KeepKey sending to p2sh output
565 * other minor fixes and usability improvements
566
567 # Release 3.0.2
568 * Android: replace requests tab with address tab, with access to
569 private keys
570 * sweeping minikeys: search for both compressed and uncompressed
571 pubkeys
572 * fix wizard crash when attempting to reset Google Authenticator
573 * fix #3248: fix Ledger+segwit signing
574 * fix #3262: fix SSL payment request signing
575 * other minor fixes.
576
577 # Release 3.0.1
578 * minor bug and usability fixes
579
580 # Release 3.0 - Uncanny Valley (November 1st, 2017)
581
582 * The project was migrated to Python3 and Qt5. Python2 is no longer
583 supported. If you cloned the source repository, you will need to
584 run "python3 setup.py install" in order to install the new
585 dependencies.
586
587 * Segwit support:
588
589 - Native segwit scripts are supported using a new type of
590 seed. The version number for segwit seeds is 0x100. The install
591 wizard will not create segwit seeds by default; users must
592 opt-in with the segwit option.
593
594 - Native segwit scripts are represented using bech32 addresses,
595 following BIP173. Please note that BIP173 is still in draft
596 status, and that other wallets/websites may not support
597 it. Thus, you should keep a non-segwit wallet in order to be
598 able to receive bitcoins during the transition period. If BIP173
599 ends up being rejected or substantially modified, your wallet
600 may have to be restored from seed. This will not affect funds
601 sent to bech32 addresses, and it will not affect the capacity of
602 Electrum to spend these funds.
603
604 - Segwit scripts embedded in p2sh are supported with hardware
605 wallets or bip39 seeds. To create a segwit-in-p2sh wallet,
606 trezor/ledger users will need to enter a BIP49 derivation path.
607
608 - The BIP32 master keys of segwit wallets are serialized using new
609 version numbers. The new version numbers encode the script type,
610 and they result in the following prefixes:
611
612 * xpub/xprv : p2pkh or p2sh
613 * ypub/yprv : p2wpkh-in-p2sh
614 * Ypub/Yprv : p2wsh-in-p2sh
615 * zpub/zprv : p2wpkh
616 * Zpub/Zprv : p2wsh
617
618 These values are identical for mainnet and testnet; tpub/tprv
619 prefixes are no longer used in testnet wallets.
620
621 - The Wallet Import Format (WIF) is similarly extended for segwit
622 scripts. After a base58-encoded key is decoded to binary, its
623 first byte encodes the script type:
624
625 * 128 + 0: p2pkh
626 * 128 + 1: p2wpkh
627 * 128 + 2: p2wpkh-in-p2sh
628 * 128 + 5: p2sh
629 * 128 + 6: p2wsh
630 * 128 + 7: p2wsh-in-p2sh
631
632 The distinction between p2sh and p2pkh in private key means that
633 it is not possible to import a p2sh private key and associate it
634 to a p2pkh address.
635
636 * A new version of the Electrum protocol is required by the client
637 (version 1.1). Servers using older versions of the protocol will
638 not be displayed in the GUI.
639
640 * By default, transactions are time-locked to the height of the
641 current block. Other values of locktime may be passed using the
642 command line.
643
644
645 # Release 2.9.3
646 * fix configuration file issue #2719
647 * fix ledger signing of non-RBF transactions
648 * disable 'spend confirmed only' option by default
649
650 # Release 2.9.2
651 * force headers download if headers file is corrupted
652 * add websocket to windows builds
653
654 # Release 2.9.1
655 * fix initial headers download
656 * validate contacts on import
657 * command-line option for locktime
658
659 # Release 2.9 - Independence (July 27th, 2017)
660 * Multiple Chain Validation: Electrum will download and validate
661 block headers sent by servers that may follow different branches
662 of a fork in the Bitcoin blockchain. Instead of a linear sequence,
663 block headers are organized in a tree structure. Branching points
664 are located efficiently using binary search. The purpose of MCV is
665 to detect and handle blockchain forks that are invisible to the
666 classical SPV model.
667 * The desired branch of a blockchain fork can be selected using the
668 network dialog. Branches are identified by the hash and height of
669 the diverging block. Coin splitting is possible using RBF
670 transaction (a tutorial will be added).
671 * Multibit support: If the user enters a BIP39 seed (or uses a
672 hardware wallet), the full derivation path is configurable in the
673 install wizard.
674 * Option to send only confirmed coins
675 * Qt GUI:
676 - Network dialog uses tabs and gets updated by network events.
677 - The gui tabs use icons
678 * Kivy GUI:
679 - separation between network dialog and wallet settings dialog.
680 - option for manual server entry
681 - proxy configuration
682 * Daemon: The wallet password can be passed as parameter to the
683 JSONRPC API.
684 * Various other bugfixes and improvements.
685
686
687 # Release 2.8.3
688 * Fix crash on reading older wallet formats.
689 * TrustedCoin: remove pay-per-tx option
690
691 # Release 2.8.2
692 * show paid invoices in history tab
693 * improve CPFP dialog
694 * fixes for trezor, keepkey
695 * other minor bugfixes
696
697 # Release 2.8.1
698 * fix Digital Bitbox plugin
699 * fix daemon jsonrpc
700 * fix trustedcoin wallet creation
701 * other minor bugfixes
702
703 # Release 2.8.0 (March 9, 2017)
704 * Wallet file encryption using ECIES: A keypair is derived from the
705 wallet password. Once the wallet is decrypted, only the public key
706 is retained in memory, in order to save the encrypted file.
707 * The daemon requires wallets to be explicitly loaded before
708 commands can use them. Wallets can be loaded using: 'electrum
709 daemon load_wallet [-w path]'. This command will require a
710 password if the wallet is encrypted.
711 * Invoices and contacts are stored in the wallet file and are no
712 longer shared between wallets. Previously created invoices and
713 contacts files may be imported from the menu.
714 * Fees improvements:
715 - Dynamic fees are enabled by default.
716 - Child Pays For Parent (CPFP) dialog in the GUI.
717 - RBF is automatically proposed for low fee transactions.
718 * Support for Segregated Witness (testnet only).
719 * Support for Digital Bitbox hardware wallet.
720 * The GUI shows a blue icon when connected using a proxy.
721
722 # Release 2.7.18
723 * enforce https on exchange rate APIs
724 * use hardcoded list of exchanges
725 * move 'Freeze' menu to Coins (utxo) tab
726 * various bugfixes
727
728 # Release 2.7.17
729 * fix a few minor regressions in the Qt GUI
730
731 # Release 2.7.16
732 * add Testnet support (fix #541)
733 * allow daemon to be launched in the foreground (fix #1873)
734 * Qt: use separate tabs for addresses and UTXOs
735 * Qt: update fee slider with a network callback
736 * Ledger: new ui and mobile 2fa validation (neocogent)
737
738 # Release 2.7.15
739 * Use fee slider for both static and dynamic fees.
740 * Add fee slider to RBF dialog (fix #2083).
741 * Simplify fee preferences.
742 * Critical: Fix password update issue (#2097). This bug prevents
743 password updates in multisig and 2FA wallets. It may also cause
744 wallet corruption if the wallet contains several master private
745 keys (such as 2FA wallets that have been restored from
746 seed). Affected wallets will need to be restored again.
747
748 # Release 2.7.14
749 * Merge exchange_rate plugin with main code
750 * Faster synchronization and transaction creation
751 * Fix bugs #2096, #2016
752
753 # Release 2.7.13
754 * fix message signing with imported keys
755 * add size to transaction details window
756 * move plot plugin to main code
757 * minor bugfixes
758
759 # Release 2.7.12
760 various bugfixes
761
762 # Release 2.7.11
763 * fix offline signing (issue #195)
764 * fix android crashes caused by threads
765
766 # Release 2.7.10
767 * various fixes for hardware wallets
768 * improve fee bumping
769 * separate sign and broadcast buttons in Qt tx dialog
770 * allow spaces in private keys
771
772 # Release 2.7.9
773 * Fix a bug with the ordering of pubkeys in recent multisig wallets.
774 Affected wallets will regenerate their public keys when opened for
775 the first time. This bug does not affect address generation.
776 * Fix hardware wallet issues #1975, #1976
777
778 # Release 2.7.8
779 * Fix a bug with fee bumping
780 * Fix crash when parsing request (issue #1969)
781
782 # Release 2.7.7
783 * Fix utf8 encoding bug with old wallet seeds (issue #1967)
784 * Fix delete request from menu (issue #1968)
785
786 # Release 2.7.6
787 * Fixes a critical bug with imported private keys (issue #1966). Keys
788 imported in Electrum 2.7.x were not encrypted, even if the wallet
789 had a password. If you imported private keys using Electrum 2.7.x,
790 you will need to import those keys again. If you imported keys in
791 2.6 and converted with 2.7.x, you don't need to do anything, but
792 you still need to upgrade in order to be able to spend.
793 * Wizard: Hide seed options in a popup dialog.
794
795 # Release 2.7.5
796 * Add number of confirmations to request status. (issue #1757)
797 * In the GUI, refer to passphrase as 'seed extension'.
798 * Fix bug with utf8 encoded passphrases.
799 * Kivy wizard: add a dialog for seed options.
800 * Kivy wizard: add current word to suggestions, because some users
801 don't see the space key.
802
803 # Release 2.7.4
804 * Fix private key import in wizard
805 * Fix Ledger display (issue #1961)
806 * Fix old watching-only wallets (issue #1959)
807 * Fix Android compatibility (issue #1947)
808
809 # Release 2.7.3
810 * fix Trezor and Keepkey support in Windows builds
811 * fix sweep private key dialog
812 * minor fixes: #1958, #1959
813
814 # Release 2.7.2
815 * fix bug in password update (issue #1954)
816 * fix fee slider (issue #1953)
817
818 # Release 2.7.1
819 * fix wizard crash with old seeds
820 * fix issue #1948: fee slider
821
822 # Release 2.7.0 (Oct 2 2016)
823
824 * The wallet file format has been upgraded. This upgrade is not
825 backward compatible, which means that a wallet upgraded to the 2.7
826 format will not be readable by earlier versions of
827 Electrum. Multiple accounts inside the same wallet are not
828 supported in the new format; the Qt GUI will propose to split any
829 wallet that has several accounts. Make sure that you have saved
830 your seed phrase before you upgrade Electrum.
831 * This version introduces a separation between wallets types and
832 keystores types. 'Wallet type' defines the type of Bitcoin contract
833 used in the wallet, while 'keystore type' refers to the method used
834 to store private keys. Therefore, so-called 'hardware wallets' will
835 be referred to as 'hardware keystores'.
836 * Hardware keystores:
837 - The Ledger Nano S is supported.
838 - Hardware keystores can be used as cosigners in multi-signature
839 wallets.
840 - Multiple hardware cosigners can be used in the same multisig
841 wallet. One icon per keystore is displayed in the satus bar. Each
842 connected device will co-sign the transaction.
843 * Replace-By-Fee: RBF transactions are supported in both Qt and
844 Android. A warning is displayed in the history for transactions
845 that are replaceable, have unconfirmed parents, or that have very
846 low fees.
847 * Dynamic fees: Dynamic fees are enabled by default. A slider allows
848 the user to select the expected confirmation time of their
849 transaction. The expected confirmation times of incoming
850 transactions is also displayed in the history.
851 * The install wizards of Qt and Kivy have been unified.
852 * Qt GUI (Desktop):
853 - A fee slider is visible in the in send tab
854 - The Address tab is hidden by default, can be shown with Ctrl-A
855 - UTXOs are displayed in the Address tab
856 * Kivy GUI (Android):
857 - The GUI displays the complete transaction history.
858 - Multisig wallets are supported.
859 - Wallets can be created and deleted in the GUI.
860 * Seed phrases can be extended with a user-chosen passphrase. The
861 length of seed phrases is standardized to 12 words, using 132 bits
862 of entropy (including 2FA seeds). In the wizard, the type of the
863 seed is displayed in the seed input dialog.
864 * TrustedCoin users can request a reset of their Google Authenticator
865 account, if they still have their seed.
866
867
868 # Release 2.6.4 (bugfixes)
869 * fix coinchooser bug (#1703)
870 * fix daemon JSONRPC (#1731)
871 * fix command-line broadcast (#1728)
872 * QT: add colors to labels
873
874 # Release 2.6.3 (bugfixes)
875 * fix command line parsing of transactions
876 * fix signtransaction --privkey (#1715)
877
878 # Release 2.6.2 (bugfixes)
879 * fix Trustedcoin restore from seed (bug #1704)
880 * small improvements to kivy GUI
881
882 # Release 2.6.1 (bugfixes)
883 * fix broadcast command (bug #1688)
884 * fix tx dialog (bug #1690)
885 * kivy: support old-type seed phrases in wizard
886
887 # Release 2.6
888 * The source code is relicensed under the MIT Licence
889 * First official release of the Kivy GUI, with android APK
890 * The old 'android' and 'gtk' GUIs are deprecated
891 * Separation between plugins and GUIs
892 * The command line uses jsonrpc to communicate with the daemon
893 * New command: 'notify <address> <url>'
894 * Alternative coin selection policy, designed to help preserve user
895 privacy. Enable it by setting the Coin Selection preference to
896 Privacy.
897 * The install wizard has been rewritten and improved
898 * Support minikeys as used in Casascius coins for private key import
899 and sweeping
900 * Much improved support for TREZOR and KeepKey devices:
901 - full device information display
902 - initialize a new or wiped device in 4 ways:
903 1) device generates a new wallet
904 2) you enter a seed
905 3) you enter a BIP39 mnemonic to generate the seed
906 4) you enter a master private key
907 - KeepKey secure seed recovery (KeepKey only)
908 - change / set / disable PIN
909 - set homescreen (TREZOR only)
910 - set a session timeout. Once a session has timed out, further use
911 of the device requires your PIN and passhphrase to be re-entered
912 - enable / disable passphrases
913 - device wipe
914 - multiple device support
915
916 # Release 2.5.4
917 * increase MIN_RELAY_TX_FEE to avoid dust transactions
918
919 # Release 2.5.3 (bugfixes)
920 * installwizard: do not allow direct copy-paste of the seed
921 * installwizard: fix bug #1531 (starting offline)
922
923 # Release 2.5.2 (bugfixes)
924 * fix bug #1513 (client tries to broadcast transaction while not connected)
925 * fix synchronization bug (#1520)
926 * fix command line bug (#1494)
927 * fixes for exchange rate plugin
928
929 # Release 2.5.1 (bugfixes)
930 * signatures in transactions were still using the old class
931 * make sure that setup.py uses python2
932 * fix wizard crash with trustedcoin plugin
933 * fix socket infinite loop
934 * fix history bug #1479
935
936 # Release 2.5
937 * Low-S values are used in signatures (BIP 62).
938 * The Kivy GUI has been merged into master.
939 * The Qt GUI supports multiple windows in the same process. When a
940 new Electrum instance is started, it checks for an already running
941 Electrum process, and connects to it.
942 * The network layer uses select(), so all server communication is
943 handled by a single thread. Moreover, the synchronizer, verifier,
944 and exchange rate plugin now run as separate jobs within the
945 networking thread instead of as their own threads.
946 * Plugins are revamped, particularly the exchange rate plugin.
947
948 # Release 2.4.4
949 * Fix bug with TrustedCoin plugin
950
951 # Release 2.4.3
952 * Support for KeepKey hardware wallet
953 * Simplified Chinese wordlist
954 * Minor bugfixes and GUI tweaks
955
956 # Release 2.4.2
957 * Command line can read arguments from stdin (pipe)
958 * Speedup fee computation for large transactions
959 * Various bugfixes
960
961 # Release 2.4.1
962 * Use ssl.PROTOCOL_TLSv1
963 * Fix DNSSEC issues with ECDSA signatures
964 * Replace TLSLite dependency with minimal RSA implementation
965 * Dynamic Fees: using estimatefee value returned by server
966 * Various GUI improvements
967
968 # Release 2.4
969 * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is
970 supported directly, without activating a plugin. The verification
971 uses DNSSEC.
972 * The DNSSEC verification code was rewritten. The previous code,
973 which was part of the OpenAlias plugin, is vulnerable and should
974 not be trusted (Electrum 2.0 to 2.3).
975 * Payment requests can be signed using Bitcoin addresses stored
976 in DNS (OpenAlias). The identity of the requestor is verified using
977 DNSSEC.
978 * Payment requests signed with OpenAlias keys can be shared as
979 bitcoin: URIs, if they are simple (a single address-type
980 output). The BIP21 URI scheme is extended with 'name', 'sig',
981 'time', 'exp'.
982 * Arbitrary m-of-n multisig wallets are supported (n<=15).
983 * Multisig transactions can be signed with TREZOR. When you create
984 the multisig wallet, just enter the xpub of your existing TREZOR
985 wallet.
986 * Transaction fees set manually in the GUI are retained, including
987 when the user uses the '!' shortcut.
988 * New 'email' plugin, that enables sending and receiving payment
989 requests by email.
990 * The daemon supports Websocket notifications of payments.
991
992 # Release 2.3.3
993 * fix proxy settings (issue #1309)
994 * improvements to the transaction dialog:
995 - request password after showing transaction
996 - show change addresses in yellow color
997
998 # Release 2.3.2
999 * minor bugfixes
1000 * updated ledger plugin
1001 * sort inputs/outputs lexicographically (BIP-LI01)
1002
1003 # Release 2.3.1
1004 * patch a bug with payment requests
1005
1006 # Release 2.3
1007 * Improved logic for the network layer.
1008 * More efficient coin selection. Spend oldest coins first, and
1009 minimize the number of transaction inputs.
1010 * Plugins are loaded independently of the GUI. As a result, Openalias,
1011 TrustedCoin and TREZOR wallets can be used with the command
1012 line. Example: 'electrum payto <openalias> <amount>'
1013 * The command line has been refactored:
1014 - Arguments are parsed with argparse.
1015 - The inline help includes a description of options.
1016 - Some commands have been renamed. Notably, 'mktx' and 'payto' have
1017 been merged into a single command, with a --broadcast option.
1018 Type 'electrum --help' for a complete overview.
1019 * The command line accepts the '!' syntax to send the maximum
1020 amount available. It can be combined with the '--from' option.
1021 Example: 'payto <destination> ! --from <from_address>'
1022 * The command line also accepts a '?' shortcut for private keys
1023 arguments, that triggers a prompt.
1024 * Payment requests can be managed with the command line, using the
1025 following commands: 'addrequest', 'rmrequest', 'listrequests'.
1026 Payment requests can be signed with a SSL certificate, and published
1027 as bip70 files in a public web directory. To see the relevant
1028 configuration variables, type 'electrum addrequest --help'
1029 * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The
1030 jsonrpc interface may be called by php.
1031
1032 # Release 2.2
1033 * Show amounts (thousands separators and decimal point)
1034 according to locale in GUI
1035 * Show unmatured coins in balance
1036 * Fix exchange rates plugin
1037 * Network layer: refactoring and fixes
1038
1039 # Release 2.1.1
1040 * patch a bug that prevents new wallet creation.
1041 * fix connection issue on osx binaries
1042
1043 # Release 2.1
1044 * Faster startup, thanks to the following optimizations:
1045 1. Transaction input/outputs are cached in the wallet file
1046 2. Fast X509 certificate parser, not using pyasn1 anymore.
1047 3. The Label Sync plugin only requests modified labels.
1048 * The 'Invoices' and 'Send' tabs have been merged.
1049 * Contacts are stored in a separate file, shared between wallets.
1050 * A Search Box is available in the GUI (Ctrl-S)
1051 * Payment requests have an expiration date and can be exported to
1052 BIP70 files.
1053 * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..."
1054 * Own addresses are shown in green in the Transaction dialog.
1055 * Address History dialog.
1056 * The OpenAlias plugin was improved.
1057 * Various bug fixes and GUI improvements.
1058 * A new LabelSync backend is being used an import of the old
1059 database was made but since the release came later it's
1060 recommended that you do a full push when you upgrade.
1061
1062 # Release 2.0.4 - Minor GUI improvements
1063 * The password dialog will ask for password again if the user enters
1064 a wrong password
1065 * The Master Public Key dialog displays which keys belong to the
1066 wallet, and which are cosigners
1067 * The transaction dialog will ask to save unsaved transaction
1068 received from cosigner pool, when user clicks on 'Close'
1069 * The multisig restore dialog accepts xprv keys.
1070 * The network daemon must be started explicitly before using commands
1071 that require a connection
1072 Example:
1073 electrum daemon start
1074 electrum getaddressunspent <addr>
1075 electrum daemon status
1076 electrum daemon stop
1077 If a daemon is running, the GUI will use it.
1078
1079 # Release 2.0.3 - bugfixes and minor GUI improvements
1080 * Do not use daemon threads (fix #960)
1081 * Add a zoom button to receive tab
1082 * Add exchange rate conversion to receive tab
1083 * Use Tor's default port number in default proxy config
1084
1085 # Release 2.0.2 - bugfixes
1086 * Fix transaction sweep (#1066)
1087 * Fix thread timing bug (#1054)
1088
1089 # Release 2.0.1 - bugfixes
1090 * Fix critical bug in TREZOR address derivation: passphrases were not
1091 NFKD normalized. TREZOR users who created a wallet protected by a
1092 passphrase containing utf-8 characters with diacritics are
1093 affected. These users will have to open their wallet with version
1094 2.0 and to move their funds to a new wallet.
1095 * Use a file socket for the daemon (fixes network dialog issues)
1096 * Fix crash caused by QR scanner icon when zbar not installed.
1097 * Fix CosignerPool plugin
1098 * Label Sync plugin: Fix label sharing between multisig wallets
1099
1100
1101 # Release 2.0
1102
1103 * Before you upgrade, make sure you have saved your wallet seed on
1104 paper.
1105
1106 * Documentation is now hosted on a wiki: http://electrum.orain.org
1107
1108 * New seed derivation method (not compatible with BIP39). The seed
1109 phrase includes a version number, that refers to the wallet
1110 structure. The version number also serves as a checksum, and it
1111 will prevent the import of seeds from incompatible wallets. Old
1112 Electrum seeds are still supported.
1113
1114 * New address derivation (BIP32). Standard wallets are single account
1115 and use a gap limit of 20.
1116
1117 * Support for Multisig wallets using parallel BIP32 derivations and
1118 P2SH addresses ("2 of 2", "2 of 3").
1119
1120 * Compact serialization format for unsigned or partially signed
1121 transactions, that includes the BIP32 master public key and
1122 derivation needed to sign inputs. Serialized transactions can be
1123 sent to cosigners or to cold storage using QR codes (using Andreas
1124 Schildbach's base 43 idea).
1125
1126 * Support for BIP70 payment requests:
1127 - Verification of the chain of signatures uses tlslite.
1128 - In the GUI, payment requests are shown in the 'Invoices' tab.
1129
1130 * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger).
1131
1132 * Two-factor authentication service by TrustedCoin. This service uses
1133 "2 of 3" multisig wallets and Google Authenticator. Note that
1134 wallets protected by this service can be deterministically restored
1135 from seed, without Trustedcoin's server.
1136
1137 * Cosigner Pool plugin: encrypted communication channel for multisig
1138 wallets, to send and receive partially signed transactions.
1139
1140 * Audio Modem plugin: send and receive transactions by sound.
1141
1142 * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC.
1143
1144 * New 'Receive' tab in the GUI:
1145 - create and manage payment requests, with QR Codes
1146 - the former 'Receive' tab was renamed to 'Addresses'
1147 - the former Point of Sale plugin is replaced by a resizable
1148 window that pops up if you click on the QR code
1149
1150 * The 'Send' tab in the Qt GUI supports transactions with multiple
1151 outputs, and raw hexadecimal scripts.
1152
1153 * The GUI can connect to the Electrum daemon: "electrum -d" will
1154 start the daemon if it is not already running, and the GUI will
1155 connect to it. The daemon can serve several clients. It times out
1156 if no client uses if for more than 5 minutes.
1157
1158 * The install wizard can be used to import addresses or private
1159 keys. A watching-only wallet is created by entering a list of
1160 addresses in the wizard dialog.
1161
1162 * New file format: Wallets files are saved as JSON. Note that new
1163 wallet files cannot be read by older versions of Electrum. Old
1164 wallet files will be converted to the new format; this operation
1165 may take some time, because public keys will be derived for each
1166 address of your wallet.
1167
1168 * The client accepts servers with a CA-signed SSL certificate.
1169
1170 * ECIES encrypt/decrypt methods, available in the GUI and using
1171 the command line:
1172 encrypt <pubkey> <message>
1173 decrypt <pubkey> <message>
1174
1175 * The Android GUI has received various updates and it is much more
1176 stable. Another script was added to Android, called Authenticator,
1177 that works completely offline: it reads an unsigned transaction
1178 shown as QR code, signs it and shows the result as a QR code.
1179
1180
1181 # Release 1.9.8
1182
1183 * Electrum servers were upgraded to version 0.9. The new server stores
1184 a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the
1185 bitcointalk forum. This property allows the client to directly
1186 request the balance of any address. The new commands are:
1187 1. getaddressbalance <address>
1188 2. getaddressunspent <address>
1189 3. getutxoaddress <txid> <pos>
1190
1191 * Command-line commands that require a connection to the network spawn
1192 a daemon, that remains connected and handles subsequent
1193 commands. The daemon terminates itself if it remains unused for more
1194 than one minute. The purpose of this is to make scripting more
1195 efficient. For example, a bash script using many electrum commands
1196 will open only one connection.
1197
1198 # Release 1.9.7
1199 * Fix for offline signing
1200 * Various bugfixes
1201 * GUI usability improvements
1202 * Coinbase Buyback plugin
1203
1204 # Release 1.9.6
1205 * During wallet creation, do not write seed to disk until it is encrypted.
1206 * Confirmation dialog if the transaction fee is higher than 1mBTC.
1207 * bugfixes
1208
1209 # Release 1.9.5
1210
1211 * Coin control: select addresses to send from
1212 * Put addresses that have been used in a minimized section (Qt GUI)
1213 * Allow non ascii chars in passwords
1214
1215
1216 # Release 1.9.4
1217 bugfixes: offline transactions
1218
1219 # Release 1.9.3
1220 bugfixes: connection problems, transactions staying unverified
1221
1222 # Release 1.9.2
1223 * fix a syntax error
1224
1225 # Release 1.9.1
1226 * fix regression with --offline mode
1227 * fix regression with --portable mode: use a dedicated directory
1228
1229 # Release 1.9
1230
1231 * The client connects to multiple servers in order to retrieve block headers and find the longest chain
1232 * SSL certificate validation (to prevent MITM)
1233 * Deterministic signatures (RFC 6979)
1234 * Menu to create/restore/open wallets
1235 * Create transactions with multiple outputs from CSV (comma separated values)
1236 * New text gui: stdio
1237 * Plugins are no longer tied to the qt GUI, they can reach all GUIs
1238 * Proxy bugs have been fixed
1239
1240
1241 # Release 1.8.1
1242
1243 * Notification option when receiving new transactions
1244 * Confirm dialogue before sending large amounts
1245 * Alternative datafile location for non-windows systems
1246 * Fix offline wallet creation
1247 * Remove enforced tx fee
1248 * Tray icon improvements
1249 * Various bugfixes
1250
1251
1252 # Release 1.8
1253
1254 * Menubar in classic gui
1255 * Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code.
1256 * Fixed bug where never-confirmed transactions prevented further spending
1257
1258
1259 # Release 1.7.4
1260
1261 * Increase default fee
1262 * fix create and restore in command line
1263 * fix verify message in the gui
1264
1265
1266 # Release 1.7.3:
1267
1268 * Classic GUI can display amounts in mBTC
1269 * Account selector in the classic GUI
1270 * Changed the way the portable flag uses without supplying a -w argument
1271 * Classic GUI asks users to enter their seed on wallet creation
1272
1273
1274 # Release 1.7.2:
1275
1276 * Transactions that are in the same block are displayed in chronological order in the history.
1277 * The client computes transaction priority and rejects zero-fee transactions that need a fee.
1278 * The default fee was lowered to 200 uBTC per kb.
1279 * Due to an internal format change, your history may be pruned when
1280 you open your wallet for the first time after upgrading to 1.7.2. If
1281 this is the case, please visit a full server to restore your full
1282 history. You will only need to do that once.
1283
1284
1285 # Release 1.7.1: bugfixes.
1286
1287
1288 # Release 1.7
1289
1290 * The Classic GUI can be extended with plugins. Developers who want to
1291 add new features or third-party services to Electrum are invited to
1292 write plugins. Some previously existing and non-essential features of
1293 Electrum (point-of-sale mode, qrcode scanner) were removed from the
1294 core and are now available as plugins.
1295
1296 * The wallet waits for 2 confirmations before creating new
1297 addresses. This makes recovery from seed more robust. Note that it
1298 might create unwanted gaps if you use Electrum 1.7 together with older
1299 versions of Electrum.
1300
1301 * An interactive Python console replaces the 'Wall' tab. The provided
1302 python environment gives users access to the wallet and gui. Most
1303 electrum commands are available as python function in the
1304 console. Custom scripts an be loaded with a "run(filename)"
1305 command. Tab-completions are available.
1306
1307 * The location of the Electrum folder in Windows changed from
1308 LOCALAPPDATA to APPDATA. Discussion on this topic can be found here:
1309 https://bitcointalk.org/index.php?topic=144575.0
1310
1311 * Private keys can be exported from within the classic GUI:
1312 For a single address, use the address menu (right-click).
1313 To export the keys of your entire wallet, use the settings dialog (import/export tab).
1314
1315 * It is possible to create, sign and redeem multisig transaction using the
1316 command line interface. This is made possible by the following new commands:
1317 dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction
1318 The syntax of these commands is similar to their bitcoind counterpart.
1319 For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071
1320
1321 * Offline wallets now work in a way similar to Armory:
1322 1. user creates an unsigned transaction using the online (watching-only) wallet.
1323 2. unsigned transaction is copied to the offline computer, and signed by the offline wallet.
1324 3. signed transaction is copied to the online computer, broadcasted by the online client.
1325 4. All these steps can be done via the command line interface or the classic GUI.
1326
1327 * Many command line commands have been renamed in order to make the syntax consistent with bitcoind.
1328
1329 # Release 1.6.2
1330
1331 == Classic GUI
1332 * Added new version notification
1333
1334 # Release 1.6.1 (11-01-2013)
1335
1336 == Core
1337 * It is now possible to restore a wallet from MPK (this will create a watching-only wallet)
1338 * A switch button allows to easily switch between Lite and Classic GUI.
1339
1340 == Classic GUI
1341 * Seed and MPK help dialogs were rewritten
1342 * Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin.
1343
1344 == Lite GUI
1345 * The receiving button was removed in favor of a menu item to keep it consistent with the history toggle.
1346
1347 # Release 1.6.0 (07-01-2013)
1348
1349 == Core
1350 * (Feature) Add support for importing, signing and verifiying compressed keys
1351 * (Feature) Auto reconnect to random server on disconnect
1352 * (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server
1353 * (Bug) Under rare circumstances changing password with incorrect password could damage wallet
1354
1355 == Lite GUI
1356 * (Chore) Use blockchain.info for exchange rate data
1357 * (Feature) added currency conversion for BRL, CNY, RUB
1358 * (Feature) Saraha theme
1359 * (Feature) csv import/export for transactions including labels
1360
1361 == Classic GUI
1362 * (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms
1363 * (Feature) Debits in history shown in red
1364 * (Feature) csv import/export for transactions including labels
1365
1366 # Release 1.5.8 (02-01-2013)
1367
1368 == Core
1369 * (Bug) Fix pending address balance on received coins for pruning servers
1370 * (Bug) Fix history command line option to show output again (regression by SPV)
1371 * (Chore) Add timeout to blockchain headers file download by HTTP
1372 * (Feature) new option: -L, --language: default language used in GUI.
1373
1374 == Lite GUI
1375 * (Bug) Sending to auto-completed contacts works again
1376 * (Chore) Added version number to title bar
1377
1378 == Classic GUI
1379 * (Feature) Language selector in options.
1380
1381 # Release 1.5.7 (18-12-2012)
1382
1383 == Core
1384 * The blockchain headers file is no longer included in the packages, it is downloaded on startup.
1385 * New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet
1386
1387 == Lite GUI
1388 * (Feature) Added the ability to export your transactions to a CSV file.
1389 * (Feature) Added a label dialog after sending a transaction.
1390 * (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses.
1391 * (Chore) Removed server selection. With all the new server options a simple menu item does not suffice anymore.