Files

185 lines
5.6 KiB
Markdown

# Electrum Purple - Lightweight BitcoinPurple Wallet
> **Unofficial fork** of [Electrum](https://github.com/spesmilo/electrum) with support for the [BitcoinPurple](https://bitcoinpurple.org) network.
```
Licence: MIT Licence
Fork author: Davide Grilli <davide.grilli@outlook.com>
Original author: Thomas Voegtlin
Language: Python (>= 3.10)
Upstream: https://github.com/spesmilo/electrum
```
---
## About this fork
This project is an **unofficial, independent fork** of Electrum, maintained by **Davide Grilli**.
It adds first-class support for the **BitcoinPurple (BTCP)** network — a Bitcoin fork with
1-minute blocks and a 120-block difficulty retarget window — while keeping full compatibility
with the original Electrum codebase and all upstream bug fixes.
This fork is **not affiliated with, endorsed by, or supported by** the original Electrum project
or its developers. For the official Bitcoin wallet, use [electrum.org](https://electrum.org/).
### What is different from upstream Electrum
- `--bitcoinpurple` and `--bitcoinpurple_testnet` launch flags
- BitcoinPurple chain parameters (1-min blocks, 120-block retarget, adjusted PoW limits)
- Lightning Network timeouts scaled for 1-minute block times
- Branding and packaging renamed to `electrum-purple` / `Electrum Purple`
Everything else — wallet format, Lightning support, hardware wallets, plugins — is identical
to upstream Electrum.
### Licence and credits
This software is released under the **MIT Licence**, the same licence as the original Electrum.
All original copyright notices are preserved as required by the licence.
Original copyright: © 2011-2024 Thomas Voegtlin and The Electrum developers.
Fork additions: © 2024-2026 Davide Grilli.
---
## Getting started
_(If you've come here looking to simply run Electrum,
[you may download it here](https://electrum.org/#download).)_
Electrum itself is pure Python, and so are most of the required dependencies,
but not everything. The following sections describe how to run from source, but here
is a TL;DR:
```
$ sudo apt-get install libsecp256k1-dev
$ ELECTRUM_ECC_DONT_COMPILE=1 python3 -m pip install --user ".[gui,crypto]"
```
### Not pure-python dependencies
#### Qt GUI
If you want to use the Qt interface, install the Qt dependencies:
```
$ sudo apt-get install python3-pyqt6
```
#### libsecp256k1
For elliptic curve operations,
[libsecp256k1](https://github.com/bitcoin-core/secp256k1)
is a required dependency.
If you "pip install" Electrum, by default libsecp will get compiled locally,
as part of the `electrum-ecc` dependency. This can be opted-out of,
by setting the `ELECTRUM_ECC_DONT_COMPILE=1` environment variable.
For the compilation to work, besides a C compiler, you need at least:
```
$ sudo apt-get install automake libtool
```
If you opt out of the compilation, you need to provide libsecp in another way, e.g.:
```
$ sudo apt-get install libsecp256k1-dev
```
#### cryptography
Due to the need for fast symmetric ciphers,
[cryptography](https://github.com/pyca/cryptography) is required.
Install from your package manager (or from pip):
```
$ sudo apt-get install python3-cryptography
```
#### hardware-wallet support
If you would like hardware wallet support,
[see this](https://github.com/spesmilo/electrum-docs/blob/master/hardware-linux.rst).
### Running from tar.gz
If you downloaded the official package (tar.gz), you can run
Electrum from its root directory without installing it on your
system; all the pure python dependencies are included in the 'packages'
directory. To run Electrum from its root directory, just do:
```
$ ./run_electrum
```
You can also install Electrum on your system, by running this command:
```
$ sudo apt-get install python3-setuptools python3-pip
$ python3 -m pip install --user .
```
This will download and install the Python dependencies used by
Electrum instead of using the 'packages' directory.
It will also place an executable named `electrum` in `~/.local/bin`,
so make sure that is on your `PATH` variable.
### Development version (git clone)
_(For OS-specific instructions, see [here for Windows](contrib/build-wine/README_windows.md),
and [for macOS](contrib/osx/README_macos.md))_
Check out the code from GitHub:
```
$ git clone https://github.com/spesmilo/electrum.git
$ cd electrum
$ git submodule update --init
```
Run install (this should install dependencies):
```
$ python3 -m pip install --user -e .
```
Create translations (optional):
```
$ sudo apt-get install gettext
$ ./contrib/locale/build_locale.sh electrum/locale/locale electrum/locale/locale
```
Finally, to start Electrum:
```
$ ./run_electrum
```
### Run tests
Run unit tests with `pytest`:
```
$ pytest tests -v
```
(can be parallelized with `-n auto` option, using [`pytest-xdist`](https://github.com/pytest-dev/pytest-xdist) plugin)
To run a single file, specify it directly like this:
```
$ pytest tests/test_bitcoin.py -v
```
## Creating Binaries
- [Linux (tarball)](contrib/build-linux/sdist/README.md)
- [Linux (AppImage)](contrib/build-linux/appimage/README.md)
- [macOS](contrib/osx/README.md)
- [Windows](contrib/build-wine/README.md)
- [Android](contrib/android/Readme.md)
## Contributing
Bug reports, testing, and pull requests for BitcoinPurple-specific features are welcome.
For issues unrelated to BitcoinPurple support (core wallet, Lightning, hardware wallets),
please check the [upstream Electrum project](https://github.com/spesmilo/electrum) first —
fixes merged upstream can be rebased into this fork.
---
*Electrum Purple is an independent fork and is not affiliated with the Electrum project.*
*Original Electrum translations are maintained on [Crowdin](https://crowdin.com/project/electrum).*