# Release 2.6.4 (bugfixes)
 * fix coinchooser bug (#1703)
 * fix daemon JSONRPC (#1731)
 * fix command-line broadcast (#1728)
 * QT: add colors to labels

# Release 2.6.3 (bugfixes)
 * fix command line parsing of transactions
 * fix signtransaction --privkey (#1715)

# Release 2.6.2 (bugfixes)
 * fix Trustedcoin restore from seed (bug #1704)
 * small improvements to kivy GUI

# Release 2.6.1 (bugfixes)
 * fix broadcast command (bug #1688)
 * fix tx dialog (bug #1690)
 * kivy: support old-type seed phrases in wizard

# Release 2.6
 * The source code is relicensed under the MIT Licence
 * First official release of the Kivy GUI, with android APK
 * The old 'android' and 'gtk' GUIs are deprecated
 * Separation between plugins and GUIs
 * The command line uses jsonrpc to communicate with the daemon
 * New command: 'notify <address> <url>'
 * Alternative coin selection policy, designed to help preserve user
   privacy. Enable it by setting the Coin Selection preference to
   Privacy.
 * The install wizard has been rewritten and improved
 * Support minikeys as used in Casascius coins for private key import
   and sweeping
 * Much improved support for TREZOR and KeepKey devices:
   - full device information display
   - initialize a new or wiped device in 4 ways:
     1) device generates a new wallet
     2) you enter a seed
     3) you enter a BIP39 mnemonic to generate the seed
     4) you enter a master private key
   - KeepKey secure seed recovery (KeepKey only)
   - change / set / disable PIN
   - set homescreen (TREZOR only)
   - set a session timeout.  Once a session has timed out, further use
     of the device requires your PIN and passhphrase to be re-entered
   - enable / disable passphrases
   - device wipe
   - multiple device support

# Release 2.5.4
 * increase MIN_RELAY_TX_FEE to avoid dust transactions

# Release 2.5.3 (bugfixes)
 * installwizard: do not allow direct copy-paste of the seed
 * installwizard: fix bug #1531 (starting offline)

# Release 2.5.2 (bugfixes)
 * fix bug #1513 (client tries to broadcast transaction while not connected)
 * fix synchronization bug (#1520)
 * fix command line bug (#1494)
 * fixes for exchange rate plugin

# Release 2.5.1 (bugfixes)
 * signatures in transactions were still using the old class
 * make sure that setup.py uses python2
 * fix wizard crash with trustedcoin plugin
 * fix socket infinite loop
 * fix history bug #1479

# Release 2.5
 * Low-S values are used in signatures (BIP 62).
 * The Kivy GUI has been merged into master.
 * The Qt GUI supports multiple windows in the same process. When a
   new Electrum instance is started, it checks for an already running
   Electrum process, and connects to it.
 * The network layer uses select(), so all server communication is
   handled by a single thread. Moreover, the synchronizer, verifier,
   and exchange rate plugin now run as separate jobs within the
   networking thread instead of as their own threads.
 * Plugins are revamped, particularly the exchange rate plugin.

# Release 2.4.4
 * Fix bug with TrustedCoin plugin

# Release 2.4.3
 * Support for KeepKey hardware wallet
 * Simplified Chinese wordlist
 * Minor bugfixes and GUI tweaks

# Release 2.4.2
 * Command line can read arguments from stdin (pipe)
 * Speedup fee computation for large transactions
 * Various bugfixes

# Release 2.4.1
 * Use ssl.PROTOCOL_TLSv1
 * Fix DNSSEC issues with ECDSA signatures
 * Replace TLSLite dependency with minimal RSA implementation
 * Dynamic Fees: using estimatefee value returned by server
 * Various GUI improvements

# Release 2.4
 * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is
   supported directly, without activating a plugin. The verification
   uses DNSSEC.
 * The DNSSEC verification code was rewritten. The previous code,
   which was part of the OpenAlias plugin, is vulnerable and should
   not be trusted (Electrum 2.0 to 2.3).
 * Payment requests can be signed using Bitcoin addresses stored
   in DNS (OpenAlias). The identity of the requestor is verified using
   DNSSEC.
 * Payment requests signed with OpenAlias keys can be shared as
   bitcoin: URIs, if they are simple (a single address-type
   output). The BIP21 URI scheme is extended with 'name', 'sig',
   'time', 'exp'.
 * Arbitrary m-of-n multisig wallets are supported (n<=15).
 * Multisig transactions can be signed with TREZOR. When you create
   the multisig wallet, just enter the xpub of your existing TREZOR
   wallet.
 * Transaction fees set manually in the GUI are retained, including
   when the user uses the '!' shortcut.
 * New 'email' plugin, that enables sending and receiving payment
   requests by email.
 * The daemon supports Websocket notifications of payments.

# Release 2.3.3
 * fix proxy settings (issue #1309)
 * improvements to the transaction dialog:
    - request password after showing transaction
    - show change addresses in yellow color

# Release 2.3.2
 * minor bugfixes
 * updated ledger plugin
 * sort inputs/outputs lexicographically (BIP-LI01)

# Release 2.3.1
 * patch a bug with payment requests

# Release 2.3
 * Improved logic for the network layer.
 * More efficient coin selection. Spend oldest coins first, and
   minimize the number of transaction inputs.
 * Plugins are loaded independently of the GUI. As a result, Openalias,
   TrustedCoin and TREZOR wallets can be used with the command
   line. Example: 'electrum payto <openalias> <amount>'
 * The command line has been refactored:
  - Arguments are parsed with argparse.
  - The inline help includes a description of options.
  - Some commands have been renamed. Notably, 'mktx' and 'payto' have
    been merged into a single command, with a --broadcast option.
   Type 'electrum --help' for a complete overview.
 * The command line accepts the '!' syntax to send the maximum
   amount available. It can be combined with the '--from' option.
   Example: 'payto <destination> ! --from <from_address>'
 * The command line also accepts a '?' shortcut for private keys
   arguments, that triggers a prompt.
 * Payment requests can be managed with the command line, using the
   following commands: 'addrequest', 'rmrequest', 'listrequests'.
   Payment requests can be signed with a SSL certificate, and published
   as bip70 files in a public web directory. To see the relevant
   configuration variables, type 'electrum addrequest --help'
 * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The
   jsonrpc interface may be called by php.

# Release 2.2
 * Show amounts (thousands separators and decimal point)
   according to locale in GUI
 * Show unmatured coins in balance
 * Fix exchange rates plugin
 * Network layer: refactoring and fixes

# Release 2.1.1
 * patch a bug that prevents new wallet creation.
 * fix connection issue on osx binaries

# Release 2.1
 * Faster startup, thanks to the following optimizations:
   1. Transaction input/outputs are cached in the wallet file
   2. Fast X509 certificate parser, not using pyasn1 anymore.
   3. The Label Sync plugin only requests modified labels.
 * The 'Invoices' and 'Send' tabs have been merged.
 * Contacts are stored in a separate file, shared between wallets.
 * A Search Box is available in the GUI (Ctrl-S)
 * Payment requests have an expiration date and can be exported to
   BIP70 files.
 * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..."
 * Own addresses are shown in green in the Transaction dialog.
 * Address History dialog.
 * The OpenAlias plugin was improved.
 * Various bug fixes and GUI improvements.
 * A new LabelSync backend is being used an import of the old
   database was made but since the release came later it's
   recommended that you do a full push when you upgrade.

# Release 2.0.4 - Minor GUI improvements
 * The password dialog will ask for password again if the user enters
   a wrong password
 * The Master Public Key dialog displays which keys belong to the
   wallet, and which are cosigners
 * The transaction dialog will ask to save unsaved transaction
   received from cosigner pool, when user clicks on 'Close'
 * The multisig restore dialog accepts xprv keys.
 * The network daemon must be started explicitly before using commands
   that require a connection
   Example:
     electrum daemon start
     electrum getaddressunspent <addr>
     electrum daemon status
     electrum daemon stop
   If a daemon is running, the GUI will use it.

# Release 2.0.3 - bugfixes and minor GUI improvements
 * Do not use daemon threads (fix #960)
 * Add a zoom button to receive tab
 * Add exchange rate conversion to receive tab
 * Use Tor's default port number in default proxy config

# Release 2.0.2 - bugfixes
 * Fix transaction sweep (#1066)
 * Fix thread timing bug (#1054)

# Release 2.0.1 - bugfixes
 * Fix critical bug in TREZOR address derivation: passphrases were not
   NFKD normalized. TREZOR users who created a wallet protected by a
   passphrase containing utf-8 characters with diacritics are
   affected. These users will have to open their wallet with version
   2.0 and to move their funds to a new wallet.
 * Use a file socket for the daemon (fixes network dialog issues)
 * Fix crash caused by QR scanner icon when zbar not installed.
 * Fix CosignerPool plugin
 * Label Sync plugin: Fix label sharing between multisig wallets


# Release 2.0

 * Before you upgrade, make sure you have saved your wallet seed on
   paper.

 * Documentation is now hosted on a wiki: http://electrum.orain.org

 * New seed derivation method (not compatible with BIP39). The seed
   phrase includes a version number, that refers to the wallet
   structure. The version number also serves as a checksum, and it
   will prevent the import of seeds from incompatible wallets. Old
   Electrum seeds are still supported.

 * New address derivation (BIP32). Standard wallets are single account
   and use a gap limit of 20.

 * Support for Multisig wallets using parallel BIP32 derivations and
   P2SH addresses ("2 of 2", "2 of 3").

 * Compact serialization format for unsigned or partially signed
   transactions, that includes the BIP32 master public key and
   derivation needed to sign inputs. Serialized transactions can be
   sent to cosigners or to cold storage using QR codes (using Andreas
   Schildbach's base 43 idea).

 * Support for BIP70 payment requests:
   - Verification of the chain of signatures uses tlslite.
   - In the GUI, payment requests are shown in the 'Invoices' tab.

 * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger).

 * Two-factor authentication service by TrustedCoin. This service uses
   "2 of 3" multisig wallets and Google Authenticator. Note that
   wallets protected by this service can be deterministically restored
   from seed, without Trustedcoin's server.

 * Cosigner Pool plugin: encrypted communication channel for multisig
   wallets, to send and receive partially signed transactions.

 * Audio Modem plugin: send and receive transactions by sound.

 * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC.

 * New 'Receive' tab in the GUI:
   - create and manage payment requests, with QR Codes
   - the former 'Receive' tab was renamed to 'Addresses'
   - the former Point of Sale plugin is replaced by a resizeable
     window that pops up if you click on the QR code

 * The 'Send' tab in the Qt GUI supports transactions with multiple
   outputs, and raw hexadecimal scripts.

 * The GUI can connect to the Electrum daemon: "electrum -d" will
   start the daemon if it is not already running, and the GUI will
   connect to it. The daemon can serve several clients. It times out
   if no client uses if for more than 5 minutes.

 * The install wizard can be used to import addresses or private
   keys. A watching-only wallet is created by entering a list of
   addresses in the wizard dialog.

 * New file format: Wallets files are saved as JSON. Note that new
   wallet files cannot be read by older versions of Electrum. Old
   wallet files will be converted to the new format; this operation
   may take some time, because public keys will be derived for each
   address of your wallet.

 * The client accepts servers with a CA-signed SSL certificate.

 * ECIES encrypt/decrypt methods, availabe in the GUI and using
   the command line:
      encrypt <pubkey> <message>
      decrypt <pubkey> <message>

 * The Android GUI has received various updates and it is much more
   stable. Another script was added to Android, called Authenticator,
   that works completely offline: it reads an unsigned transaction
   shown as QR code, signs it and shows the result as a QR code.


# Release 1.9.8

* Electrum servers were upgraded to version 0.9. The new server stores
  a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the
  bitcointalk forum. This property allows the client to directly
  request the balance of any address. The new commands are:
     1. getaddressbalance <address>
     2. getaddressunspent <address>
     3. getutxoaddress <txid> <pos>

* Command-line commands that require a connection to the network spawn
  a daemon, that remains connected and handles subsequent
  commands. The daemon terminates itself if it remains unused for more
  than one minute. The purpose of this is to make scripting more
  efficient. For example, a bash script using many electrum commands
  will open only one connection.

# Release 1.9.7
* Fix for offline signing
* Various bugfixes
* GUI usability improvements
* Coinbase Buyback plugin

# Release 1.9.6
* During wallet creation, do not write seed to disk until it is encrypted.
* Confirmation dialog if the transaction fee is higher than 1mBTC.
* bugfixes

# Release 1.9.5

* Coin control: select addresses to send from
* Put addresses that have been used in a minimized section (Qt GUI)
* Allow non ascii chars in passwords


# Release 1.9.4
bugfixes: offline transactions

# Release 1.9.3
bugfixes: connection problems, transactions staying unverified

# Release 1.9.2
* fix a syntax error

# Release 1.9.1
* fix regression with --offline mode
* fix regression with --portable mode: use a dedicated directory

# Release 1.9

* The client connects to multiple servers in order to retrieve block headers and find the longest chain
* SSL certificate validation (to prevent MITM)
* Deterministic signatures (RFC 6979)
* Menu to create/restore/open wallets
* Create transactions with multiple outputs from CSV (comma separated values)
* New text gui: stdio
* Plugins are no longer tied to the qt GUI, they can reach all GUIs
* Proxy bugs have been fixed


# Release 1.8.1

* Notification option when receiving new tranactions
* Confirm dialogue before sending large amounts
* Alternative datafile location for non-windows systems
* Fix offline wallet creation
* Remove enforced tx fee
* Tray icon improvements
* Various bugfixes


# Release 1.8

* Menubar in classic gui
* Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code.
* Fixed bug where never-confirmed transactions prevented further spending


# Release 1.7.4

* Increase default fee
* fix create and restore in command line
* fix verify message in the gui


# Release 1.7.3:

* Classic GUI can display amounts in mBTC
* Account selector in the classic GUI
* Changed the way the portable flag uses without supplying a -w argument
* Classic GUI asks users to enter their seed on wallet creation


# Release 1.7.2:

* Transactions that are in the same block are displayed in chronological order in the history.
* The client computes transaction priority and rejects zero-fee transactions that need a fee.
* The default fee was lowered to 200 uBTC per kb.
* Due to an internal format change, your history may be pruned when
  you open your wallet for the first time after upgrading to 1.7.2. If
  this is the case, please visit a full server to restore your full
  history. You will only need to do that once.


# Release 1.7.1:  bugfixes.


# Release 1.7

* The Classic GUI can be extended with plugins. Developers who want to
add new features or third-party services to Electrum are invited to
write plugins. Some previously existing and non-essential features of
Electrum (point-of-sale mode, qrcode scanner) were removed from the
core and are now available as plugins.

* The wallet waits for 2 confirmations before creating new
addresses. This makes recovery from seed more robust. Note that it
might create unwanted gaps if you use Electrum 1.7 together with older
versions of Electrum.

* An interactive Python console replaces the 'Wall' tab. The provided
python environment gives users access to the wallet and gui. Most
electrum commands are available as python function in the
console. Custom scripts an be loaded with a "run(filename)"
command. Tab-completions are available.

* The location of the Electrum folder in Windows changed from
LOCALAPPDATA to APPDATA. Discussion on this topic can be found here:
https://bitcointalk.org/index.php?topic=144575.0

* Private keys can be exported from within the classic GUI:
  For a single address, use the address menu (right-click).
  To export the keys of your entire wallet, use the settings dialog (import/export tab).

* It is possible to create, sign and redeem multisig transaction using the
command line interface.  This is made possible by the following new commands:
    dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction
The syntax of these commands is similar to their bitcoind counterpart.
For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071

* Offline wallets now work in a way similar to Armory:
  1. user creates an unsigned transaction using the online (watching-only) wallet.
  2. unsigned transaction is copied to the offline computer, and signed by the offline wallet.
  3. signed transaction is copied to the online computer, broadcasted by the online client.
  4. All these steps can be done via the command line interface or the classic GUI.

* Many command line commands have been renamed in order to make the syntax consistent with bitcoind.

# Release 1.6.2

== Classic GUI
* Added new version notification

# Release 1.6.1 (11-01-2013)

== Core
* It is now possible to restore a wallet from MPK (this will create a watching-only wallet)
* A switch button allows to easily switch between Lite and Classic GUI.

== Classic GUI
* Seed and MPK help dialogs were rewritten
* Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin.

== Lite GUI
* The receiving button was removed in favor of a menu item to keep it consistent with the history toggle.

# Release 1.6.0 (07-01-2013)

== Core
* (Feature) Add support for importing, signing and verifiying compressed keys
* (Feature) Auto reconnect to random server on disconnect
* (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server
* (Bug) Under rare circumstances changing password with incorrect password could damage wallet

== Lite GUI
* (Chore) Use blockchain.info for exchange rate data
* (Feature) added currency conversion for BRL, CNY, RUB
* (Feature) Saraha theme
* (Feature) csv import/export for transactions including labels

== Classic GUI
* (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms
* (Feature) Debits in history shown in red
* (Feature) csv import/export for transactions including labels

# Release 1.5.8 (02-01-2013)

== Core
* (Bug) Fix pending address balance on received coins for pruning servers
* (Bug) Fix history command line option to show output again (regression by SPV)
* (Chore) Add timeout to blockchain headers file download by HTTP
* (Feature) new option: -L, --language: default language used in GUI.

== Lite GUI
* (Bug) Sending to auto-completed contacts works again
* (Chore) Added version number to title bar

== Classic GUI
* (Feature) Language selector in options.

# Release 1.5.7 (18-12-2012)

== Core
* The blockchain headers file is no longer included in the packages, it is downloaded on startup.
* 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

== Lite GUI
* (Feature) Added the ability to export your transactions to a CSV file.
* (Feature) Added a label dialog after sending a transaction.
* (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses.
* (Chore)   Removed server selection. With all the new server options a simple menu item does not suffice anymore.
