Electrum
Electrum is a lightweight Bitcoin client, based on a client-server protocol. It was released on november 5, 2011.
Main features:
- Encrypted wallet: the file that contains bitcoin private keys is protected with a password, and never leaves the user's computer.
- Deterministic key generation: If you lose your wallet file, you can recover it from its seed. You are protected from your own mistakes.
- Instant on: by default the client does not download the blockchain, it requests that information from a server. No delays, always up-to-date.
- Transactions are signed locally: Your private keys are not shared with the server. You do not have to trust the server with your money.
- Cold storage: Keeping private keys offline is supported. Has a watch-only mode for online use.
- Multisignature: Dividing the power to spend coins between multiple wallets is supported.
- Hardware wallet integration: Many leading hardware wallets can interface with Electrum.
- Redundancy: You are not tied to a particular server, and the server does not need to know you. One server going down doesn't cause user downtimes.
- No single point of failure: The server code is open source, anyone can run a server. Private keys can be exported and imported into other wallets.
- Firewall friendly: The client does not need to open a port, it simply polls the server for updates.
- Free software: MIT License. Anyone can audit the code.
- Written in Python. The code is short, and easy to review.
- Add-ons: third-party plugins are supported.
- Support for Bitcoin URIs, signed URIs and Bitcoin aliases
Documentation
Documentation is hosted on http://docs.electrum.org/
It includes tutorials for the multisignature, cold storage and hardware wallet features.
History
Electrum was announced November 5, 2011[1].
Server software
The server code is open source, anyone can run a server. There are several implementations.
Public Electrum servers run by strangers can easily spy on Electrum users. For this reason many people run their own server. For maximum trustlessness, privacy and security; users should point Electrum to their own servers.
ElectrumX
ElectrumX is the latest iteration of general purpose Electrum servers. Written in python, it tries to be as efficient as possible to keep synchronization times low. ElectrumX is able to serve thousands of clients at once, it is suited to be an always-on server that contributes to bitcoin.
Github: https://github.com/kyuupichan/electrumx/
Interview with author: https://btcmanager.com/nobody-has-setup-an-electrum-server-for-over-a-year/ archive: https://archive.is/lUnfa
Electrum Personal Server
Electrum Personal Server has a different approach to a normal server. It is intended to be used by a single person only. Instead of creating a database of every transaction and address ever used on the bitcoin blockchain, Electrum Personal Server only tracks the user's own wallets. This allows it to be much more efficient with resources, it does not need any extra data files and is compatible with Bitcoin Core's pruning feature.
Electrum Personal Server is probably the best way to combine Electrum's feature-richness (hardware wallet integration, multisignature, seed phrase, etc) with a full node's strong security and privacy.
Github: https://github.com/chris-belcher/electrum-personal-server