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