Skip to main content

Electrum | Bitcoin Glossary | Mapping Bitcoin

Electrum

Development

Also known as: Electrum wallet, Electrum server

An open-source Bitcoin wallet that queries remote Electrum servers, avoiding a full node download. Supports hardware wallets, multisig, and coin control.

Overview

Electrum is one of the oldest and most widely used Bitcoin wallets, first released in November 2011 by Thomas Voegtlin. It follows a client-server architecture where the lightweight wallet application connects to Electrum servers that index the blockchain. This design allows users to have a feature-rich Bitcoin wallet without downloading and validating the entire blockchain.

Architecture

┌─────────────────┐         ┌──────────────────┐
│  Electrum Wallet │◄──SSL──►│  Electrum Server │
│  (lightweight)   │         │  (ElectrumX /    │
│                  │         │   Fulcrum)        │
│ - Stores keys    │         │                  │
│ - Signs txs      │         │ - Full blockchain│
│ - Coin control   │         │ - Address index  │
│ - UI             │         │ - Tx lookup      │
└─────────────────┘         └────────┬─────────┘
                                     │
                             ┌───────┴────────┐
                             │  Bitcoin Core   │
                             │  (full node)    │
                             └────────────────┘

Key Features

  • Deterministic wallets: Electrum was one of the first wallets to implement seed-based key generation, predating BIP32. It uses its own seed format alongside standard BIP39 support.
  • Hardware wallet support: Native integration with Trezor, Ledger, ColdCard, and other hardware wallets
  • Multisig: Built-in support for creating and managing multi-signature wallets
  • Coin control: Users can select specific UTXOs for transactions, aiding privacy management
  • Lightning support: Electrum includes an integrated Lightning Network implementation
  • Plugin system: Extensible architecture through Python plugins

Privacy Considerations

By default, Electrum connects to public Electrum servers, which can observe:

  • All addresses belonging to the wallet
  • Transaction history and balances
  • IP address of the user

To mitigate these concerns, privacy-conscious users can:

  • Run their own Electrum server (ElectrumX or Fulcrum) connected to their own full node
  • Connect through Tor to hide their IP address
  • Use the "one-server" mode to reduce address correlation across servers

Electrum Server Implementations

  • ElectrumX: The original Python-based server implementation
  • Fulcrum: A high-performance C++ implementation that has become the preferred choice for most operators
  • Electrs: A Rust-based implementation popular with node-in-a-box solutions

Common Misconceptions

  • Electrum is not a full node wallet. It trusts the Electrum server for blockchain data, though it does verify transaction proofs.
  • The Electrum seed format is not compatible with BIP39 by default. Wallets created with Electrum's native seed cannot be restored in most other wallets without using the specific Electrum derivation.
  • Running your own Electrum server largely eliminates the privacy trade-offs of the client-server architecture.