{"library":"py-bip39-bindings","title":"Python BIP39 Bindings","description":"py-bip39-bindings provides fast and safe Python bindings for the `tiny-bip39` Rust crate. It enables the generation, validation, and conversion of BIP39 mnemonic phrases to mini-secrets (seeds) with multi-language support. The library is currently at version 0.3.0 and maintains an active release cadence, frequently updating to support newer Python versions and underlying PyO3 bindings.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install py-bip39-bindings"],"cli":null},"imports":["from bip39 import bip39_generate","from bip39 import bip39_validate","from bip39 import bip39_to_mini_secret"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import binascii\nfrom bip39 import bip39_generate, bip39_validate, bip39_to_mini_secret\n\n# 1. Generate a new 12-word mnemonic in English (default)\nmnemonic_en = bip39_generate(12)\nprint(f\"Generated English mnemonic: {mnemonic_en}\")\n\n# 2. Validate the mnemonic\nis_valid_en = bip39_validate(mnemonic_en)\nprint(f\"Is English mnemonic valid? {is_valid_en}\")\n\n# 3. Generate a 24-word mnemonic in French\nmnemonic_fr = bip39_generate(24, 'fr')\nprint(f\"Generated French mnemonic: {mnemonic_fr}\")\n\n# 4. Validate the French mnemonic\nis_valid_fr = bip39_validate(mnemonic_fr, 'fr')\nprint(f\"Is French mnemonic valid? {is_valid_fr}\")\n\n# 5. Convert a mnemonic to a mini-secret (seed)\npassphrase = \"mysecretpassphrase\"\nseed_array = bip39_to_mini_secret(mnemonic_en, passphrase)\nseed_hex = binascii.hexlify(bytearray(seed_array)).decode(\"ascii\")\nprint(f\"Seed for English mnemonic (hex): {seed_hex}\")\n\n# Example of an invalid mnemonic\ninvalid_mnemonic = \"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zebra\"\ntry:\n    bip39_validate(invalid_mnemonic)\nexcept ValueError as e:\n    print(f\"Validation failed for invalid mnemonic: {e}\")","lang":"python","description":"This quickstart demonstrates how to generate BIP39 mnemonic phrases with varying word counts and languages, validate them, and convert them into a 512-bit seed (mini-secret) using an optional passphrase. It also includes an example of handling invalid mnemonics.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"0.3.0","pypi_latest":"0.3.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.7,"avg_import_s":0,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"19.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0,"mem_mb":0,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"21.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0,"mem_mb":0,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"13.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0,"mem_mb":0,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"12.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0,"mem_mb":0,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"18.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"py-bip39-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0,"mem_mb":0,"disk_size":"19M"}]}}