ElectrumSV prepares to support SPV and Paymail

ElectrumSV, the long-time popular desktop wallet for BSV, is getting ready to add SPV and Paymail functionality for its users.

Paymail has become a popular way for BSV users to send and receive funds since it was introduced in 2019. Existing as a series of protocols, it allows users to send funds to an easily recognizable, email-like address instead of copy-pasting long address strings or scanning QR codes. There’s also a drive for BSV developers to implement SPV, or simple payment verification—which is described in the original Bitcoin white paper and Dr. Craig S. Wright describes as “a critical aspect of scaling Bitcoin.”

The ElectrumSV development team tweeted last week that it is refactoring its code base and testing, and will release a beta version of 1.4.0 when done. The most current ElectrumSV version is 1.3.13.

ElectrumSV should only be downloaded from the official project site, and there’s a guide on how to verify the download is the official one. Source code for all resources is also available at the project’s GitHub page.

Full-featured desktop wallet for BSV

In terms of old-school Bitcoin functionality and user control, ElectrumSV is probably the most full-featured wallet available for BSV. It is descended from the original Electrum Bitcoin wallet, the lightweight (or “thin”) wallet client for Bitcoin that first launched in November 2011. Other developers maintain versions of the original software for BTC and BCH.

Electrum was novel at the time for not requiring users to download the entire blockchain simply to have a Bitcoin wallet. Though lightweight wallets on mobile devices have become the preferred option for most ordinary Bitcoin users these days, none has as much flexibility as ElectrumSV offers.

Private keys are deterministic and stored locally on users’ machines, encrypted. ElectrumSV is also one of the few Bitcoin wallets to support multi-signature transactions and has arrangements with services like Anypay and Centi for streamlining invoices. If you still have unspent coins from before the BCH/BSV split, ElectrumSV has a guide for splitting the coins into separate wallets.

The development team also makes ElectrumSV Node, a full-node Bitcoin client aimed specifically at application developers. The project’s documentation page also has information on local testing, access to the BitcoinSV Scaling Testnet (STN), and the REST API (to be formalized in v1.4.0) for interacting with external apps. There’s a software development kit available and even an unofficial implementation of mAPI (for use in the SDK).

SPV coming to ElectrumSV

ElectrumSV’s client/server model has led some over the years to assume it already used SPV to verify transactions, but this is not the case. SPV requires users only to download Bitcoin transaction block headers, rather than the full blockchain—making the total download less than 100MB, rather than (the BSV blockchain’s current size of) over 437 GB.

If block headers don’t match node records, then transactions won’t verify. There’s no need for every single user to have a full record of blockchain data; they only need to know if transactions are valid or not. Individual users can retain full information about transactions they themselves have been involved in, but it’s not necessary to keep records of everyone else’s.

Dr. Wright has spoken at length about the importance of implementing SPV protocols on BSV—something that has never been properly done on other similar blockchains, like BTC and BCH. He also describes it as a vital aspect of making Bitcoin peer-to-peer, and performing millions of transactions per second.

New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.

[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[10]
[10]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
['on' + event]
['on' + event]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[i]
[i]
[results[1]]
[results[1]]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]