bip-utils is an active Python library (current version 2.12.1) for generating mnemonics, seeds, private/public keys, and addresses across various cryptocurrencies, implementing standards like BIP-0039, BIP-0032, BIP-0044, BIP-0049, and BIP-0084. It sees frequent minor releases, adding support for new coins and improving existing functionalities.
pip install bip-utilsVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates generating a 12-word BIP39 mnemonic, converting it into a seed, and then deriving the first external Bitcoin address using BIP44 derivation path standards.
Replace `NeoAddrEncoder` with `NeoLegacyAddrEncoder` in your code.
Ensure you are using `bip-utils>=2.12.1` and `pip install --upgrade bip-utils` to get the correct dependency. If encountering compilation issues on Windows, update pip and setuptools or refer to pre-built wheels if necessary.
Ensure you have the necessary build tools installed for your OS (e.g., 'build-essential' on Debian/Ubuntu, 'Xcode Command Line Tools' on macOS, or 'Microsoft Visual C++ Build Tools' on Windows). Alternatively, you can disable `coincurve` by setting `USE_COINCURVE = False` in `bip_utils/ecc/conf.py` and then reinstalling the library, which will use the slower pure-Python `ecdsa` library instead.
Migrate to the appropriate curve-specific `Bip32` implementation (e.g., `Bip32Secp256k1.FromSeed(...)`). The BIP-0044, BIP-0049, and BIP-0084 libraries internally handle the correct `Bip32` class based on the coin.
Change `from bip_utils import NeoAddrEncoder` to `from bip_utils import NeoLegacyAddrEncoder` and update all usages of `NeoAddrEncoder` in your code.
Ensure your `bip-utils` installation is up-to-date (`pip install --upgrade bip-utils`). The new dependency `ed25519-blake2b-fork` should be installed automatically.
Install the necessary build tools for your operating system. For Debian/Ubuntu: `sudo apt-get install build-essential`. For macOS: `xcode-select --install`. For Windows: Install 'Microsoft Visual C++ Build Tools'. Alternatively, you can force `bip-utils` to use `ecdsa` (pure Python, but slower) by setting `USE_COINCURVE = False` in `bip_utils/ecc/conf.py` (after installing `ecdsa` via `pip install ecdsa`) and then reinstall `bip-utils`.