Note: beta is now over, download official first release here: https://github.com/TruthMachine/ElectrumSVP/releases/tag/v0.1.0
This is a beta release of ElectrumSVP (v0.0.1-beta). Use with caution. Do not store large amounts of BSV in this version.
Read more about the beta release here: https://crypto-rebel.medium.com/electrum-svp-beta-release-desktop-bitcoin-wallet-401030f93443
Beta Warning: This is a pre-release beta version of the wallet. It may contain bugs, incomplete features, or other issues. Using this wallet could result in loss of coins or other unexpected behavior. Use at your own risk and do not store significant funds here.
Welcome to the Beta release of our custom ElectrumSV wallet build. This version is intended for testing and feedback before the official release. We encourage users to explore the new features and report any bugs or issues encountered. For a full overview of changes and development notes, please visit our beta release article.
Dependencies: Upgraded major dependencies, including Bitcoinx 0.9.0. Code was refactored to accommodate API changes and new features in the latest libraries.
BEEF SPV verification: Added SPV proof functions for transactions/UTXOs and addresses, enhancing on-chain and off-chain verification.
BIP39 seeds: BIP39 seed support has been added as the default for wallet creation.
Sweep function: Added a new sweep function to import private keys. Supports BIP38 decryption, compressed and uncompressed keys, BEEF UTXO import.
Destinations tab: The previous "Keys" tab has been revamped and renamed "Destinations", now displaying addresses along with their derivation paths.
Coin control: Added freeze/unfreeze controls for addresses in the address tab. Fixed a bug where frozen coins persisted incorrectly between sessions.
Block headers: Introduced a new Block Headers file format compatible with Bitcoinx 0.9.0, including meta data. The headers file is synced to a recent tip and preloaded for faster startup.
Hardware wallets: Bundled hardware wallet dependencies. Feature is present but not fully functional in this beta.
User interface:
Coinsplit tab hidden by default.
Other tabs reorganized with improved UI layout.
New units available: "Bitcoin", "BSV", "BSV blockchain tokens", "millibitcoin".
Explorers & Servers: Updated block explorers and removed outdated ones. Default server list updated for reliability.
AppImage improvements: Improved Linux compatibility. No longer requires libfuse2 on some systems, maintaining full compatibility with TAILS.
Testing notes: As this is a beta release, please be cautious with hardware wallets, and report any issues encountered during usage. Your feedback is valuable for the upcoming official release.
Thank you for testing this beta release and helping us improve the wallet!
Licence: Open BSV Maintainers: Neil Booth, Roger Taylor, AustEcon Project Lead: Roger Taylor Language: Python (requires Python 3.9 later than 3.9.13. 3.10 and 3.11 not officially supported) Homepage: https://electrumsv.io/
ElectrumSV is a Python-based application forked from Electrum Core.
If you are running from the Github repository, you are advised to use the latest release branch, which at this time is releases/1.3. The develop branch is used for the latest development changes and is not guaranteed to be as stable, or to have guaranteed long term support for some of the more advanced features we may have added and later remove. The master branch is frozen, out of date and will be overwritten by develop evenutally.
The ElectrumSV builds are created using Python 3.9.13 because these are the last release for Python 3.9 that the Python development team do binary releases for. This is the minimum allowed version of Python to use, we explicitly rule out running against earlier versions and we cannot guarantee later versions like 3.10 and 3.11 will work reliably due to breaking changes by the Python language developers.
You need to ensure you have Python 3.9.13 or later, the following command should look like this:
$ python3 --version Python 3.9.16
You can use pyenv to install Python 3.9.16. First install pyenv:
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
Edit your .bashrc file as described, and then ensure the changes are put into effect:
$ source ~/.profile
Now you can install Python 3.9.16 using pyenv:
$ pyenv install 3.9.16
If you encounter errors during that process, you can refer to the pyenv common problems.
At this point, you can make Python 3.9.16 the default Python on your computer:
$ pyenv global 3.9.16
And you can check that your python3 version is indeed 3.9.16, by confirming the following command now looks like this:
$ python3 --version Python 3.9.16
ElectrumSV MacOS and Windows builds come with at least Sqlite version 3.31.1, but there are no Linux builds, and both Linux and MacOS users may wish to upgrade or make available the Sqlite version on their computer.
MacOS:
$ brew upgrade sqlite3 $ python3 -c "import sqlite3; print(sqlite3.sqlite_version)" 3.31.1
Linux:
$ python3 -m pip install -U pysqlite3-binary $ python3 -c "import pysqlite3; print(pysqlite3.sqlite_version)" 3.31.1
You may see a different version displayed than 3.31.1, but as long as it is higher, this is fine.
If you are running ElectrumSV from source, first install the dependencies:
MacOS:
brew install pyqt5 pip3 install --user -r contrib/deterministic-build/macos-py3.9-requirements-electrumsv.txt
Linux:
sudo apt-get install python3-pyqt5 pip3 install --user -r contrib/deterministic-build/linux-py3.9-requirements-electrumsv.txt
Your should now be able to run ElectrumSV:
MacOS:
python3 electrum-sv
Linux:
python3 electrum-sv
You can also install ElectrumSV on your system. In order to do so, run the following command:
pip3 install . --no-dependencies
If you choose to use Linux, you introduce complexity and uncertainty into the process. It is not possible to know all the unique choices you have made regarding it. The following tips may help work around problems you encounter.
If you encounter problems referring to wheels, make sure you have installed the wheel package:
pip3 install --user wheel
Install the following:
sudo apt install libusb-1.0.0-dev libudev-dev
If you encounter problems referring to "Python.h", first check your Python version:
python3 --version
If it says "3.9", then install the following:
sudo apt install python3.9-dev
If it says a later version of Python, you should be able to figure out what to do.
If you need to enable QR code scanning functionality, install the following:
sudo apt-get install zbar-tools
The easiest way to run ElectrumSV on Windows, is to obtain an executable for the latest version from our website. This Git repository has a build-hashes.txt which should contain SHA-256 hashes for all our downloads. You can confirm that you have downloaded a valid file, by comparing it's SHA-256 hash to the hash we provide for the same file name.
You can also run from the Git repository directly, which is useful if you wish to customise or help us develop ElectrumSV.
You need to be sure that you are using a version of Python either 3.9.13 or higher. And that the version you are using has a version of Sqlite either 3.31.1 or higher. If you are for instance using a version of Python 3.8 that has a lower version of Sqlite, then update your Python 3.8 installation.
To run ElectrumSV from its top-level directory, first install the core dependencies:
py -3.9 -m pip install --user -r contrib/deterministic-build/win64-py3.9-requirements-electrumsv.txt
Then invoke it as so:
py -3.9 electrum-sv
You can also install ElectrumSV on your system. This will download and install most dependencies used by ElectrumSV. This is useful if you with to use the electrumsv Python library, perhaps for Bitcoin application development using ElectrumSV as a wallet server.
In order to do so, run these commands:
pip3 install . --no-dependencies
Check out the code from Github:
git clone https://github.com/ElectrumSV/ElectrumSV cd ElectrumSV
Run the pip installs (this should install dependencies):
pip3 install .
Create translations (optional):
sudo apt-get install python-requests gettext ./contrib/make_locale
Running unit tests (with the pytest package):
pytest electrumsv/tests
Running pylint:
pylint --rcfile=.pylintrc electrum-sv electrumsv
Running mypy:
mypy --config-file mypy.ini --python-version 3.9
Builds are created automatically for Git commits through the Azure Pipelines CI services which Microsoft and Github kindly make available to us.
The easiest way for you to create builds is to fork the project, and to link it to Azure Pipelines and they should also happen automatically. If you wish to look at the specific code that handles a given part of the build process, these will be referenced below for the various operating systems. To see how these are engaged, refer to the Azure Pipelines YAML files.
Run the following to create the release archives under dist/:
./contrib/make_source_archives.py
See contrib/osx/.
See contrib/build-wine/.