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