A Python library for 'bitcoin cryptography'
| | |
| — | — |
| Project |
|
| Package |
|
| Supported platforms |
|
| Formatting standards |
|
| Coding standards |
|
| Type checking |
|
| Documentation |
|
| CI/CD |
|
| Conversations |
|
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.