gitmyhub

electrum

Python ★ 8.5k updated 2d ago

Electrum Bitcoin Wallet

Electrum is a lightweight Bitcoin wallet for sending, receiving, and storing Bitcoin without downloading the full blockchain, with support for Lightning Network and hardware wallets.

PythonQtlibsecp256k1setup: moderatecomplexity 3/5

Electrum is a Bitcoin wallet, which means it is a program you use to send, receive, and store Bitcoin. It is described as a lightweight client because it does not need to download the entire Bitcoin blockchain to work. Instead, it connects to external servers to fetch the information it needs, which makes it faster to set up than a full Bitcoin node. The project has been around for a long time and is one of the better-known open-source Bitcoin wallets, available for desktop and Android.

The wallet is written in Python and requires Python 3.10 or higher. For most users who just want to run it, the homepage at electrum.org has ready-made downloads for Windows, macOS, Linux, and Android. The GitHub repository is primarily for people who want to run it directly from source code, build their own binaries, or contribute to its development.

Running from source requires a few system libraries beyond Python itself. The most notable is libsecp256k1, a C library used for the elliptic curve math that underlies Bitcoin's cryptography. There is also a Qt-based graphical interface that requires additional Qt packages, and hardware wallet support can be added separately. The README provides the specific install commands for each of these on Linux, with links to separate guides for Windows and macOS.

Electrum also supports the Lightning Network, which is a payment layer built on top of Bitcoin that allows faster and cheaper transactions. This is mentioned in the project topics but not elaborated on in the README itself.

The project welcomes contributions, including bug reports, testing, pull request reviews, and translations via Crowdin. Larger code changes are encouraged to be discussed on the issue tracker or in the project's IRC channel before work begins, to avoid duplicated or wasted effort.

Where it fits