btclib-org / btclib

btclib: a python3 library for 'bitcoin cryptography'
https://btclib.org
MIT License
100 stars 40 forks source link
base58 bech32 bip32 bip340 bip39 bitcoin cryptography ecdsa electrum elliptic-curves message-signing psbt rfc-6979 schnorr segwit taproot

A Python library for 'bitcoin cryptography'

Project status license
Package calver: yyy.m.d pypi downloads
Supported platforms python
Formatting standards lint: isort lint: black lint: flake8 lint: yesqa lint: markdownlint-cli2
Coding standards lint: pylint lint: autoflake lint: pyupgrade lint: sourcery security: bandit
Type checking type check: mypy type check: pyright
Documentation docs lint: docformatter lint: pydocstringformatter lint: pydocstyle
CI/CD pre-commit pre-commit.ci status lint test test-py312 coverage
Conversations slack Follow on Twitter

Browse GitHub Code Repository


btclib is a Python3 type annotated library intended for teaching, learning, and using bitcoin; the focus is on elliptic curve cryptography and bitcoin's blockchain.

It is rigorously and extensively tested: the test suite covers 100% of the code base and reproduces results from both informal and major reference sources.

Originally developed for the Bitcoin and Blockchain Technology course at the University of Milano-Bicocca, btclib is not intended for production environments: it is often refactored for improved clarity, without care for backward compatibility; moreover, some of its algorithms could be broken using side-channel attacks.

The library is not limited to the bitcon elliptic curve secp256k1; anyway, FFI bindings to libsecp256k1 (the optimized C library used by Bitcoin Core) are available for this curve and used by default.

Included features are:


To install (and/or upgrade) btclib:

python -m pip install --upgrade btclib

You might want to install btclib into a python virtual environment; e.g. from the root folder:

Shell:

python -m venv venv_btclib
source ./venv_btclib/bin/activate
python -m pip install --upgrade btclib

Windows CMD or PowerShell:

python -m venv venv_btclib
.\venv_btclib\Scripts\activate
python -m pip install --upgrade btclib

Windows Git bash shell:

python -m venv venv_btclib
cd ./venv_btclib/Scripts
. activate
cd ../..
python -m pip install --upgrade btclib

See CONTRIBUTING if you are interested in btclib develoment.

See SECURITY if you have found a security vulnerability.