Skip to main content

Spectrum - Specter Desktop + Electrum

This is a electrum-adapter. It exposes a Bitcoin-Core style API while using an electron API in the backend. It might be useful in specific usecases, e.g. having better performance when connecting to a electrum-server via Tor. In order to do that, it needs a Database. Quite easily you can use a kind of builtin SQLite. Depending on your usecase, you might want to use an external DB.

Modes of usage

This can be used either in standalone mode or as a specter-extension. The second option is probably the main use-case.

Standalone

Get this to work with something like that:

python3 --version # Make sure you have at least 3.8. Might also work with lower versions though
virtualenv --python=python3 .env
. ./.env/bin/activate
pip3 install -e .

# If you have a electrum server running on localhost:
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.NigiriLocalElectrumLiteConfig

# If you want to run on mainnet and use emzy's Server
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.EmzyElectrumLiteConfig

# Using Emzy's server but with a postgres
export DB_USERNAME=bla
export DB_PASSWORD=blub
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.EmzyElectrumPostgresConfig

Check the config.py for the env-vars which need to be exported in order to connect to something different than localhost.

Specter Extension

In order to get a development environment:

virtualenv --python=python3 .env
. ./.env/bin/activate
pip3 install -e .
pip3 install cryptoadvance.specter
python3 -m cryptoadvance.specter server --config DevelopmentConfig --debug

TODO:

  • refill keypool when address is used or new address is requested
  • flask debug=True flag creates two electrum sockets that notify twice - this causes duplications in the database
  • reconnect with electrum on disconnect
  • add support for credentials / cookie file for RPC calls

Run the Tests

pip3 install -e ".[test]"
pytest

Development

Before your create a PR, make sure to blackify all your changes. In order to automate that, there is a git pre-commit hook which you can simply install like this:

pre-commit install

Metadata

Release files for cryptoadvance.spectrum 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cryptoadvance.spectrum 0.8.0
File Size Uploaded
cryptoadvance_spectrum-0.8.0.tar.gz 62.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cryptoadvance.spectrum 0.8.0
File Interpreter ABI Platform
cryptoadvance_spectrum-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 102.7 kB

Release files / cryptoadvance_spectrum-0.8.0.tar.gz

Download URL cryptoadvance_spectrum-0.8.0.tar.gz
Size 62.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d3a53b21ca13d8e6a014ff2c0b0e68f8d4eef2c1efbe6383ae018c15409c67c1
BLAKE2b-256 checksum
How to use checksums
c242b778ccfb49372d6b6604a8652ffd19896104e58adcbc2325fe4e6c694b45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.

Transparency log

Release files / cryptoadvance_spectrum-0.8.0-py3-none-any.whl

Download URL cryptoadvance_spectrum-0.8.0-py3-none-any.whl
Size 40.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc91eef05f6417898e735b793b91135ddd989fe223ff51aeaa4bc278eb15c3ed
BLAKE2b-256 checksum
How to use checksums
ea2274dfa20bcceae8d99059b41328c4d23f0bf767c25bdfb68e773fd63fc6a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.9

1 release file

0.6.7

1 release file

0.6.6

1 release file

0.6.5

1 release file

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.6

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page