The Python language bindings for the bitcoindevkit.
See the package on PyPI.
This repository uses the bdk-ffi repository as a git submodule. Here are useful tips for working with the submodule:
- When initially cloning the repo, the
bdk-ffisubmodule will be empty locally. You can intitiate/populate the directory by using thejust submodule-initcommand. - If you make local changes to the
bdk-ffidirectory while developing and want to hard delete all changes and return to the exact committed version hash of the bdk-ffi repo, use thejust submodule-resetcommand.
- Run one of the build script (skip the submodule update if you are making local changes to the bdk-ffi submodule)
- Sync dependencies with
uv - Create the wheel
- Install the library
- Run the tests
# If you made changes to the bdk-ffi submodule and wish to use those instead of the committed hash
bash scripts/generate-macos-arm64.sh --skip-submodule-update
# Otherwise
bash scripts/generate-macos-arm64.sh
uv sync
uv build --wheel -v
uv pip install ./dist/bdkpython-<yourversion>.whl --force-reinstall
uv run python -m unittest --verbose- Generate docs
- Build HTML Documentation
uv run python ./docs/generate_docs.py
uv run python -m sphinx -b html -W --keep-going -v docs/source docs/_build/html