ElectrumSV Software Development Kit

Licence:

The Open BSV License

Maintainers:

Roger Taylor, AustEcon

Project Lead:

Roger Taylor

Language:

Python (>=3.9)

Homepage:

https://github.com/electrumsv/electrumsv-sdk

Overview

This project provides a consolidated set of resources that together can allow a developer, whether working on ElectrumSV or on any other bitcoin application, to develop, run and test while offline (and is especially aimed at facilitating rigourous CI/CD functional testing).

What Does It Do?

A commandline tool that makes it very easy to spin up localhost instances of:

  • Bitcoin Node

  • ElectrumX

  • ElectrumSV (as a daemon with a REST API or as a GUI desktop wallet)

  • Merchant API

  • Whatsonchain Block explorer.

To get started, please checkout:

There is full support for:

  • Windows

  • Linux

  • MacOS X

Networks supported:

  • Regtest

  • Testnet

Why would you want this?

Accelerated development iteration cycle

  • If you are building an application that needs to perform SPV verification you want to know that when a block is mined, the logic is correct.

  • You cannot afford to wait around 10 minutes for a block to be mined on one of the public test networks.

  • Ensure correct handling of rare events like reorgs or “unmatured” coins (freshly mined coins that require 100 block confirmations before they can be moved).

CI/CD Pipeline testing

  • Enough said

Benchmarking / high-throughput testing

  • Because, we are not supposed to do that on the standard public testnet…

  • You could use the scaling testnet, but in some cases it’s easier to start out with RegTest in early development and graduate to the scaling-testnet later when you’re ready for it.

Solution:

  • With a local RegTest node, you can mine blocks on demand.

  • You can run two nodes locally and simulate a reorg (we haven’t added reorg simulations yet but that’s coming).

  • You will never have to ask for more testnet coins - just mine more blocks and top up.

  • You will not be at the mercy of 3rd party service providers staying operational to continue to build and test your application.

Release Notes:

See Release Notes.