Electrum

electrum.org
Electrum Icon

Long-standing Python-based Bitcoin wallet with good security features. Private keys are encrypted and do not touch the internet and balance is checked with a watch-only wallet. Compatible with other wallets, so there is no tie-in, and funds can be recovered with your secret seed. It supports proof-checking to verify transactions using SPV, multi-sig, and add-ons for compatibility with hardware wallets. A decentralized server indexes ledger transactions, meaning it's fast and doesn't require much disk space. The potential security issue here would not be with the wallet, but rather your PC - you must ensure your computer is secure and your wallet has a long, strong passphrase to encrypt it with.

Open Source

Electrum Source Code

Author

spesmilo

Description

Electrum Bitcoin Wallet

#bitcoin#bitcoin-wallet#electrum#lightning#lightning-network#python

Homepage

https://electrum.org

License

MIT

Created

02 Aug 12

Last Updated

26 Feb 26

Latest version

seed_v10

Primary Language

Python

Size

69,542 KB

Stars

8,385

Forks

3,407

Watchers

8,385

Language Usage

Language Usage

Star History

Star History

Recent Commits

  • SomberNight (25 Feb 26)

    lnwatcher: ~document behaviour re subbing to historical chans and swaps not so intuitive ref https://github.com/spesmilo/electrum/pull/7852 ("Persist lnwatcher")

  • ghost43 (25 Feb 26)

    Merge pull request #10433 from f321x/qt_changelog qt: add Changelog to Help menu in toolbar

  • ghost43 (25 Feb 26)

    Merge pull request #10442 from SomberNight/202601_lnworker_is_preimage_public lnsweep: simplify maybe_reveal_preimage_for_htlc

  • SomberNight (24 Feb 26)

    simplify prev

  • SomberNight (26 Jan 26)

    lnsweep: safer maybe_reveal_preimage_for_htlc, add "is_preimage_public" "When should we reveal preimages onchain?" This commit tries to simplify the thinking by making the observation: - we can reveal preimages (actually in any context) if they are already public - a preimage is public if any other lightning node knows it besides us - if we learn the preimage from another LN node, it is public - if we send update_fulfill_htlc, it becomes public - if we see a preimage onchain, it is public - in lnsweep._maybe_reveal_preimage_for_htlc: - partial mpp check is not relevant if preimage is already public - let's just always do KeepWatchingTXO, for sanity/safety Co-authored-by: ThomasV <thomasv@electrum.org>

  • ThomasV (24 Feb 26)

    Merge pull request #10453 from f321x/debug_rbf_fee_calculation wallet: estimate base tx feerate based on original base tx size

  • f321x (29 Jan 26)

    transaction: extend estimated_size() docstring Extends the docstring of Transaction.estimated_size(). Co-Authored-By: SomberNight <somber.night@protonmail.com>

  • f321x (29 Jan 26)

    transaction: use dummy DER ECDSA sig from descriptor.py We have two different dummy der signatures of varying size, this unifies them to use a single one from descriptor.py.

  • f321x (29 Jan 26)

    test_wallet_vertical: test bump_fee raises for too low fee Test that Abstract_Wallet.bump_fee() raises if the given feerate of the replacement is equal to the feerate of the tx to bump as this wouldn't be accepted to the mempool.

  • f321x (29 Jan 26)

    test_wallet_vertical: add test for dscancel fee estimate Check that dscancel properly raises CannotDoubleSpendTx if the feerate of the new tx is lower than the tx to be cancelled.

  • f321x (29 Jan 26)

    test_wallet_vertical: add test for batch tx fee increase Adds unittest to check the fee increase when adding outputs to a base tx. Supposed to prevent creating transactions that don't get accepted like in this traceback: ``` broadcast_transaction error [DO NOT TRUST THIS MESSAGE]: "RPCError(1, 'the transaction was rejected by network rules.\\n\\ninsufficient fee, rejecting replacement ceeaef5ac7f82286e42ebd530e965fa4c7a6c11933d6b89d6d6f0ee2c69db839; new feerate 0.00001109 BTC/kvB <= old feerate 0.00001110 BTC/kvB ```

  • f321x (29 Jan 26)

    wallet: rbf: estimate base tx size before stripping Estimate the size of a base tx before stripping its signatures so the lower bound feerate used to calculate the fee for the rbf transaction doesn't underestimate the feerate of the base tx.

  • ghost43 (23 Feb 26)

    Merge pull request #10493 from f321x/gossip_fix_save_remote_update lnpeer: don't try saving our own channel update as remote update

  • ghost43 (23 Feb 26)

    Merge pull request #10494 from f321x/console_font_size qt: console: allow changing font size

  • f321x (23 Feb 26)

    qt: console: allow changing font size Allows changing the font size in the qt Console with `Ctrl` + `+` and `Ctrl` + `-`.

  • f321x (23 Feb 26)

    lnpeer: don't save our own channel update as remote upd I noticed CLN is sending our own channel update to us on reestablishment, we then assume it to be the remote nodes update and try to verify the signature against their pubkey which fails and throws `InvalidGossipMsg`. This adds a check preventing us from trying to save our own channel updates as remote update.

  • ghost43 (21 Feb 26)

    Merge pull request #10479 from SomberNight/202602_locale_fancy_names locale: gui: show translation completion percentage in language names

  • SomberNight (21 Feb 26)

    update locale This includes https://github.com/spesmilo/electrum-locale/pull/54, which adds the new "X-Electrum-SourceStringCount" header into the .po/.mo files.

  • SomberNight (16 Feb 26)

    locale: gui: show translation completion percentage in language names In the GUIs, on the language-select screen, show e.g. Czech (100%), Danish (13%), Dutch (54%) instead of Czech, Danish, Dutch - we count the source strings when creating the .pot PO-template file and add an "X-Electrum-SourceStringCount" header to it, in the push_locale.py script that uploads the .pot file to crowdin. - later, when we run electrum-locale/update.py to download the translations in .po files, these files will also contain the same header. - then when the build_locale.sh script compiles those .po files, we can read the header and use it to populate a new "stats.json" file that we place in electrum/locale/locale/ and bundle in the all release binaries/distributables. - stats.json also includes the number of translated strings for each lang - at runtime we simply read stats.json and use the values to calculate the percentages - a prior implementation did not pre-calc stats.json but did all calculations at runtime (by opening all .mo translations) - however that was deemed to slow, hence the build-time pre-calc - runtime calc took 40 ms on my laptop, so I guess it could easily take 10x that on an old phone - just as we have always been very tolerant of any locale files or even the whole locale/ dir missing, we also tolerate stats.json missing

  • SomberNight (20 Feb 26)

    (trivial) consistent whitespaces in .gitmodules

  • ghost43 (20 Feb 26)

    Merge pull request #10490 from f321x/locale_llm_proofreader_cleanup locale: exclude llm proofreader directory from build

  • f321x (20 Feb 26)

    locale: rm llm_proofreader directory during build Deletes the llm_proofreader directory during the build so these scripts aren't bundled into the binaries.

  • f321x (20 Feb 26)

    git: ignore changes to locale submodule add ignore = dirty to electrum locale submodule so changes to the locale submodule files don't show up in the main git status.

  • f321x (20 Feb 26)

    wallet_db: assert WalletDBUpgrader.storage is dict Assert `WalletDBUpgrader.data` is a regular in-memory dict and not some StoredDict, so if an exception would happen during a wallet db upgrade the partial changes don't get commited to disk.

  • ghost43 (20 Feb 26)

    Merge pull request #10489 from f321x/fix_10487 wallet_db: handle non-existing parent_set_key in v65

  • f321x (20 Feb 26)

    wallet_db: handle non-existing parent_set_key in v65 Handles non-existing parent_set_key in _convert_version_65. Fixes #10487

  • SomberNight (19 Feb 26)

    contrib/locale/push_locale: do not sort source-strings xgettext and related tools have a -s/--sort-output option, which results in the output being lexicographically sorted. The gettext maintainers recommend against using this option and even started deprecating it in some of their tools (xgettext included): - with -s, source strings are lexicographically sorted in the .pot/.po files - without -s, source string are output in the same order they are found in the code - this way, translators have to do much fewer context switches when contributing translations note that the qml part we have already *not* been sorting

  • SomberNight (19 Feb 26)

    locale: don't translate string "Electrum", "BIP39"

  • Sander van Grieken (19 Feb 26)

    qml: ReceiveDetailsDialog use proper ButtonContainer

  • ThomasV (18 Feb 26)

    Merge pull request #10480 from f321x/fix_exc_offline_mode qt: fix toolbar action exc in offline mode

Electrum Website

Website

Electrum Bitcoin Wallet

Electrum Bitcoin Wallet.

Redirects

Does not redirect

Security Checks

All 66 security checks passed

Server Details

  • IP Address 104.21.91.204
  • Location San Francisco, California, United States of America, NA
  • ISP CloudFlare Inc.
  • ASN AS13335

Associated Countries

  • US
  • FR

Safety Score

Website marked as safe

100%

Blacklist Check

electrum.org was found on 0 blacklists

  • ThreatLog
  • OpenPhish
  • PhishTank
  • Phishing.Database
  • PhishStats
  • URLhaus
  • RPiList Not Serious
  • AntiSocial Blacklist
  • PhishFeed
  • NABP Not Recommended Sites
  • Spam404
  • CRDF
  • Artists Against 419
  • CERT Polska
  • PetScams
  • Suspicious Hosting IP
  • Phishunt
  • CoinBlockerLists
  • MetaMask EthPhishing
  • EtherScamDB
  • EtherAddressLookup
  • ViriBack C2 Tracker
  • Bambenek Consulting
  • Badbitcoin
  • SecureReload Phishing List
  • Fake Website Buster
  • TweetFeed
  • CryptoScamDB
  • StopGunScams
  • ThreatFox
  • PhishFort

Website Preview

Electrum Reviews

More Crypto Wallets

  • An open source, native desktop wallet for Windows, Linux, and MacOS. Wasabi implements trustless CoinJoins over the Tor network. Neither an observer nor the participants can determine which output belongs to which input. This makes it difficult for outside parties to trace where a particular coin originated from and where it was sent to, which greatly improves privacy. Since it's trustless, the CoinJoin coordinator cannot breach the privacy of the participants. Wasabi is compatible with cold storage and hardware wallets, including OpenCard and Trezor.

  • Trezor Icon

    Trezor

    trezor.io

    Open source, cross-platform, offline, crypto wallet, compatible with 1000+ coins. Your private key is generated on the device, and never leaves it, all transactions are signed by the Trezor, which ensures your wallet is safe from theft. There are native apps for Windows, Linux, MacOS, Android, and iOS, but Trezor is also compatible with other wallets, such as Wasabi. You can back the Trezor up, either by writing down the seed, or by duplicating it to another device. It is simple and intuitive to use, but also incredibly customizable with a large range of advanced features.

  • An easy-to-use, super secure Bitcoin hardware wallet, which can be used independently as an air-gapped wallet. ColdCard is based on partially signed Bitcoin transactions following the BIP174 standard. Built specifically for Bitcoin, and with a variety of unique security features, ColdCard is secure, trustless, private, and easy-to-use. Companion products for the ColdCard include: BlockClock, SeedPlate, and ColdPower.

  • Sparrow is a Bitcoin wallet for those who value financial self-sovereignty. Sparrow’s emphasis is on security, privacy, and usability. Sparrow does not hide information from you - on the contrary, it attempts to provide as much detail as possible about your transactions and UTXOs, but in a way that is manageable and usable.

  • Atomic is an open-source desktop and mobile-based wallet, where your private keys are stored on your local device, and do not touch the internet. Atomic has a great feature set, and supports swapping, staking, and lending directly from the app. However, most of Atomic's features require an active internet connection, and Atomic does not support hardware wallets yet. Therefore, it may only be a good choice as a secondary wallet, for storing small amounts of your actively used currency.

  • A steel plate, with engraved letters which can be permanently screwed - CryptoSteel is a good fire-proof, shock-proof, water-proof, and stainless cryptocurrency backup solution.

  • BitBox02 Icon

    BitBox02

    shiftcrypto.ch

    Open source hardware wallet, supporting secure multisig with the option for making encrypted backups on a MicroSD card.

About the Data: Electrum

API

You can access Electrum's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/finance/crypto-wallets/electrum

The REST API is free, no-auth and CORS-enabled. To learn more, view the Swagger Docs or read the API Usage Guide.

About the Data

Beyond the user-submitted YAML you see above, we also augment each listing with additional data dynamically fetched from several sources. To learn more about where the rest of data included in this page comes from, and how it is computed, see the About the Data section of our About page.

Share Electrum

Help your friends compare Crypto Wallets, and pick privacy-respecting software and services.
Share Electrum and Awesome Privacy with your network!

View Crypto Wallets (8)