bip-utils


Namebip-utils JSON
Version 2.9.3 PyPI version JSON
download
home_pagehttps://github.com/ebellocchia/bip_utils
SummaryGeneration of mnemonics, seeds, private/public keys and addresses for different types of cryptocurrencies
upload_time2024-04-15 19:30:46
maintainerEmanuele Bellocchia
docs_urlNone
authorEmanuele Bellocchia
requires_python>=3.7
licenseMIT
keywords python cryptography ecdsa ed25519 ed25519-blake2b nist256p1 secp256k1 sr25519 wallet hd-wallet slip10 slip32 bip38 bip39 bip39-substrate bip32 bip44 bip49 bip84 bip86 bip173 bip350 brainwallet base58 ss58 bech32 bech32m segwit electrum substrate taproot daedalus byron shelley akash algorand aptos arbitrum atom avalanche avax axelar band protocol binance chain binance smart chain bitcoin bitcoin cash bitcoinsv bnb cardano cardano-byron cardano-shelley celo certik cosmos dash dogecoin ecash elrond eos ethereum ethereum classic fantom opera fetch.ai filecoin harmony one huobi chain icon injective iris irisnet kava litecoin matic metis monero multiversx okex chain ontology optimism osmosis nano near near protocol neo pi network polygon ripple secret solana stellar substrate sui terra tezos theta tron vechain verge zcash zilliqa acala bifrost chainx edgeware karura kusama moonbeam moonriver phala plasm sora stafi polkadot
VCS
bugtrack_url
requirements cbor2 coincurve coincurve coincurve coincurve coincurve crcmod ecdsa ed25519-blake2b ed25519-blake2b pycryptodome pynacl py-sr25519-bindings py-sr25519-bindings py-sr25519-bindings typing_extensions
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # BIP Utility Library

| |
|---|
| [![PyPI - Version](https://img.shields.io/pypi/v/bip_utils.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/bip_utils/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/bip_utils.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/bip_utils/) [![GitHub License](https://img.shields.io/github/license/ebellocchia/bip_utils?label=License)](https://github.com/ebellocchia/bip_utils?tab=MIT-1-ov-file) |
| [![Code Coverage](https://github.com/ebellocchia/bip_utils/actions/workflows/code-coverage.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/code-coverage.yml) [![Code Analysis](https://github.com/ebellocchia/bip_utils/actions/workflows/code-analysis.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/code-analysis.yml) [![Build & Test](https://github.com/ebellocchia/bip_utils/actions/workflows/test.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/test.yml) [![Test Requirements](https://github.com/ebellocchia/bip_utils/actions/workflows/test_min_reqs.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/test_min_reqs.yml) |
| [![Codecov](https://img.shields.io/codecov/c/github/ebellocchia/bip_utils?label=Code%20Coverage)](https://codecov.io/gh/ebellocchia/bip_utils) [![Codacy grade](https://img.shields.io/codacy/grade/9a0c9c6a3d6444fab91f58fe8ec9e35c?label=Codacy%20Grade)](https://app.codacy.com/gh/ebellocchia/bip_utils/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/ebellocchia/bip_utils?label=CodeFactor%20Grade)](https://www.codefactor.io/repository/github/ebellocchia/bip_utils) |
| |

## Introduction

This package allows generating mnemonics, seeds, private/public keys and addresses for different types of cryptocurrencies. In particular:
- Mnemonic and seed generation as defined by [BIP-0039](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki)
- Private key encryption/decryption as defined by [BIP-0038](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki)
- Keys derivation as defined by:
  - [BIP-0032](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
  - [SLIP-0010](https://github.com/satoshilabs/slips/blob/master/slip-0010.md)
  - [BIP32-Ed25519 (Khovratovich/Law)](https://github.com/LedgerHQ/orakolo/blob/master/papers/Ed25519_BIP%20Final.pdf)
- Derivation of a hierarchy of keys as defined by:
  - [BIP-0044](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)
  - [BIP-0049](https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki) (Bitcoin Segwit)
  - [BIP-0084](https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki) (Bitcoin Native Segwit)
  - [BIP-0086](https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki) (Bitcoin Taproot)
  - [CIP-1852](https://cips.cardano.org/cips/cip1852)
- Mnemonic and seed generation for [Substrate](https://wiki.polkadot.network/docs/learn-accounts#seed-generation) (Polkadot/Kusama ecosystem)
- Keys derivation for [Substrate](https://wiki.polkadot.network/docs/learn-accounts#derivation-paths) (Polkadot/Kusama ecosystem, same of Polkadot-JS)
- Keys and addresses generation for Cardano (Byron-Legacy, Byron-Icarus and Shelley, same of Ledger and AdaLite/Yoroi wallets)
- Mnemonic and seed generation for Monero
- Keys and addresses/subaddresses generation for Monero (same of official Monero wallet)
- Mnemonic and seed generation for Algorand (Algorand 25-word mnemonic)
- Mnemonic and seed generation like Electrum wallet (v1 and v2)
- Keys derivation like Electrum wallet (v1 and v2)
- Generation of keys from a passphrase chosen by the user ("brainwallet")

Other implemented functionalities:
- Parse BIP-0032 derivation paths
- Parse Substrate derivation paths
- Extended key serialization as defined by [SLIP-0032](https://github.com/satoshilabs/slips/blob/master/slip-0032.md)
- Encode/Decode addresses for all the supported coins
- Encode/Decode [WIF](https://en.bitcoin.it/wiki/Wallet_import_format)
- Encode/Decode [base58](https://en.bitcoin.it/wiki/Base58Check_encoding#Background) and [base58 monero](https://monerodocs.org/cryptography/base58)
- Encode/Decode [ss58](https://github.com/paritytech/substrate/wiki/External-Address-Format-(SS58))
- Encode/Decode [bech32](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) and [bech32m](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki)
- Encode/Decode [Bitcoin Cash bech32](https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/cashaddr.md)
- Get token account addresses for SPL tokens (i.e. Solana tokens)

Package dependencies:
- [cbor2](https://pypi.org/project/cbor2/) for CBOR encoding/decoding
- [crcmod](https://pypi.org/project/crcmod/) for CRC computation
- [pycryptodome](https://pypi.org/project/pycryptodome/) for cryptographic functions
- [coincurve](https://pypi.org/project/coincurve/) for secp256k1 curve
- [ecdsa](https://pypi.org/project/ecdsa/) for nist256p1 and secp256k1 curves
- [ed25519-blake2b](https://pypi.org/project/ed25519-blake2b/) for ed25519-blake2b curve
- [pynacl](https://pypi.org/project/PyNaCl/) for ed25519 curve
- [py-sr25519-bindings](https://pypi.org/project/py-sr25519-bindings/) for sr25519 curve

Please note that, for the py-sr25519-bindings library, Rust is required to be installed.

## Supported coins

Supported BIP coins:
- Akash Network
- Algorand
- Aptos
- Arbitrum
- Avalanche (all the 3 chains)
- Axelar
- Band Protocol
- Binance Chain
- Binance Smart Chain
- Bitcoin (and related test net)
- Bitcoin Cash (and related test net)
- Bitcoin Cash Simple Ledger Protocol (and related test net)
- BitcoinSV (and related test net)
- Cardano (Byron-Legacy, Byron-Icarus and Shelley)
- Celo
- Certik
- Cosmos
- Dash (and related test net)
- Dogecoin (and related test net)
- eCash (and related test net)
- Elrond (MultiversX)
- EOS
- Ergo (and related test net)
- Ethereum
- Ethereum Classic
- Fantom Opera
- Filecoin
- Fetch.ai
- Harmony One (Ethereum and Cosmos addresses)
- Huobi Heco Chain
- IRIS Network
- Kava
- Kusama (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)
- Litecoin (and related test net)
- Metis
- Monero (based on BIP44 and secp256k1 or ed25519 SLIP-0010, it won't generate the same addresses of the official wallets, but it supports subaddresses generation)
- Nano
- Near Protocol
- NEO
- OKEx Chain (Ethereum and Cosmos addresses)
- Ontology
- Optimism
- Osmosis
- Pi Network
- Polkadot (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)
- Polygon
- Ripple
- Secret Network
- Solana
- Stafi (Cosmos)
- Stellar
- Sui (only ed25519)
- Terra
- Tezos
- Theta Network
- Tron
- VeChain
- Verge
- Zcash (and related test net)
- Zilliqa

Supported Substrate coins:
- Acala
- Bifrost
- Chainx
- Edgeware
- Karura
- Kusama
- Moonbeam
- Moonriver
- Phala Network
- Plasm Network
- Sora
- Stafi
- Polkadot
- Generic Substrate coin

For what regards Monero, it's also possible to generate the same addresses of the official wallets without using BIP44 derivation.

Clearly, for those coins that support Smart Contracts (e.g. Ethereum, Tron, ...), the generated keys and addresses are valid for all the related tokens.

## Install the package

For the secp256k1 curve, it's possible to use either the *coincurve* or the *ecdsa* library. *coincurve* is much faster since it's a Python wrapper to the secp256k1 C library, while *ecdsa* is a pure Python implementation.\
By default *coincurve* will be used, but it's possible to disable it when installing.

To install the package:
- Default installation (*coincurve* will be used for secp256k1)
    - Using *pip*, from this directory (local):

            pip install .

    - Using *pip*, from PyPI:

            pip install bip_utils

- Alternative installation (*ecdsa* will be used for secp256k1)
    - Using *setuptools*:

            python setup.py install --coincurve=0

    - Using *pip*, from this directory (local):

            pip install . --install-option="--coincurve=0"

    - Using *pip*, from PyPI:

            pip install bip_utils --install-option="--coincurve=0"

**NOTES:**
- if you are using an Apple M1, please make sure to update *coincurve* to version 17.0.0
- in case of problems when building the *ed25519_blake2b* library, you can try one of the prebuilt wheels [here](https://github.com/ebellocchia/bip_utils/tree/master/libs_wheels)

## Test and Coverage

Install develop dependencies:

    pip install -r requirements-dev.txt

To run tests:

    python -m unittest discover

To run tests with coverage:

    coverage run -m unittest discover
    coverage report

To run code analysis, just execute the `analyze_code` script.

## Modules description

- [BIP-0039](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip39.md)
- [Algorand mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/algorand_mnemonic.md)
- [Electrum mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/electrum_mnemonic.md)
- [Monero mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/monero_mnemonic.md)
- [BIP-0038](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip38.md)
- [BIP-0032](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip32.md)
- [BIP-0044](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip44.md)
- [Brainwallet](https://github.com/ebellocchia/bip_utils/tree/master/readme/brainwallet.md)
- [Cardano](https://github.com/ebellocchia/bip_utils/tree/master/readme/cardano.md)
- [Electrum](https://github.com/ebellocchia/bip_utils/tree/master/readme/electrum.md)
- [Monero](https://github.com/ebellocchia/bip_utils/tree/master/readme/monero.md)
- [Substrate](https://github.com/ebellocchia/bip_utils/tree/master/readme/substrate.md)
- [Utility libraries](https://github.com/ebellocchia/bip_utils/tree/master/readme/utility_libs.md)

## Documentation

The library documentation is available at [bip-utils.readthedocs.io](https://bip-utils.readthedocs.io).

## Code examples

For some complete code examples (from mnemonic to keys generation), refer to the [examples](https://github.com/ebellocchia/bip_utils/tree/master/examples) folder.

# Buy me a coffee

You know, I'm italian and I love drinking coffee (especially while coding 😃). So, if you'd like to buy me one:
- BTC: `bc1qq4r9cglwzd6f2hzxvdkucmdejvr9h8me5hy0k8`
- ERC20/BEP20: `0xf84e4898E5E10bf1fBe9ffA3EEC845e82e364b5B`

Thank you very much for your support.

# License

This software is available under the MIT license.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ebellocchia/bip_utils",
    "name": "bip-utils",
    "maintainer": "Emanuele Bellocchia",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "ebellocchia@gmail.com",
    "keywords": "python, cryptography, ecdsa, ed25519, ed25519-blake2b, nist256p1, secp256k1, sr25519, wallet, hd-wallet, slip10, slip32, bip38, bip39, bip39-substrate, bip32, bip44, bip49, bip84, bip86, bip173, bip350, brainwallet, base58, ss58, bech32, bech32m, segwit, electrum, substrate, taproot, daedalus, byron, shelley, akash, algorand, aptos, arbitrum, atom, avalanche, avax, axelar, band protocol, binance chain, binance smart chain, bitcoin, bitcoin cash, bitcoinsv, bnb, cardano, cardano-byron, cardano-shelley, celo, certik, cosmos, dash, dogecoin, ecash, elrond, eos, ethereum, ethereum classic, fantom opera, fetch.ai, filecoin, harmony one, huobi chain, icon, injective, iris, irisnet, kava, litecoin, matic, metis, monero, multiversx, okex chain, ontology, optimism, osmosis, nano, near, near protocol, neo, pi network, polygon, ripple, secret, solana, stellar, substrate, sui, terra, tezos, theta, tron, vechain, verge, zcash, zilliqa, acala, bifrost, chainx, edgeware, karura, kusama, moonbeam, moonriver, phala, plasm, sora, stafi, polkadot",
    "author": "Emanuele Bellocchia",
    "author_email": "ebellocchia@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/fd/0b/c112ca753e8454d8f0ac3ddae2337f37b60c36056f9a89184f07bbed1a0c/bip_utils-2.9.3.tar.gz",
    "platform": "any",
    "description": "# BIP Utility Library\r\n\r\n| |\r\n|---|\r\n| [![PyPI - Version](https://img.shields.io/pypi/v/bip_utils.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/bip_utils/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/bip_utils.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/bip_utils/) [![GitHub License](https://img.shields.io/github/license/ebellocchia/bip_utils?label=License)](https://github.com/ebellocchia/bip_utils?tab=MIT-1-ov-file) |\r\n| [![Code Coverage](https://github.com/ebellocchia/bip_utils/actions/workflows/code-coverage.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/code-coverage.yml) [![Code Analysis](https://github.com/ebellocchia/bip_utils/actions/workflows/code-analysis.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/code-analysis.yml) [![Build & Test](https://github.com/ebellocchia/bip_utils/actions/workflows/test.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/test.yml) [![Test Requirements](https://github.com/ebellocchia/bip_utils/actions/workflows/test_min_reqs.yml/badge.svg)](https://github.com/ebellocchia/bip_utils/actions/workflows/test_min_reqs.yml) |\r\n| [![Codecov](https://img.shields.io/codecov/c/github/ebellocchia/bip_utils?label=Code%20Coverage)](https://codecov.io/gh/ebellocchia/bip_utils) [![Codacy grade](https://img.shields.io/codacy/grade/9a0c9c6a3d6444fab91f58fe8ec9e35c?label=Codacy%20Grade)](https://app.codacy.com/gh/ebellocchia/bip_utils/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/ebellocchia/bip_utils?label=CodeFactor%20Grade)](https://www.codefactor.io/repository/github/ebellocchia/bip_utils) |\r\n| |\r\n\r\n## Introduction\r\n\r\nThis package allows generating mnemonics, seeds, private/public keys and addresses for different types of cryptocurrencies. In particular:\r\n- Mnemonic and seed generation as defined by [BIP-0039](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki)\r\n- Private key encryption/decryption as defined by [BIP-0038](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki)\r\n- Keys derivation as defined by:\r\n  - [BIP-0032](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)\r\n  - [SLIP-0010](https://github.com/satoshilabs/slips/blob/master/slip-0010.md)\r\n  - [BIP32-Ed25519 (Khovratovich/Law)](https://github.com/LedgerHQ/orakolo/blob/master/papers/Ed25519_BIP%20Final.pdf)\r\n- Derivation of a hierarchy of keys as defined by:\r\n  - [BIP-0044](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)\r\n  - [BIP-0049](https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki) (Bitcoin Segwit)\r\n  - [BIP-0084](https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki) (Bitcoin Native Segwit)\r\n  - [BIP-0086](https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki) (Bitcoin Taproot)\r\n  - [CIP-1852](https://cips.cardano.org/cips/cip1852)\r\n- Mnemonic and seed generation for [Substrate](https://wiki.polkadot.network/docs/learn-accounts#seed-generation) (Polkadot/Kusama ecosystem)\r\n- Keys derivation for [Substrate](https://wiki.polkadot.network/docs/learn-accounts#derivation-paths) (Polkadot/Kusama ecosystem, same of Polkadot-JS)\r\n- Keys and addresses generation for Cardano (Byron-Legacy, Byron-Icarus and Shelley, same of Ledger and AdaLite/Yoroi wallets)\r\n- Mnemonic and seed generation for Monero\r\n- Keys and addresses/subaddresses generation for Monero (same of official Monero wallet)\r\n- Mnemonic and seed generation for Algorand (Algorand 25-word mnemonic)\r\n- Mnemonic and seed generation like Electrum wallet (v1 and v2)\r\n- Keys derivation like Electrum wallet (v1 and v2)\r\n- Generation of keys from a passphrase chosen by the user (\"brainwallet\")\r\n\r\nOther implemented functionalities:\r\n- Parse BIP-0032 derivation paths\r\n- Parse Substrate derivation paths\r\n- Extended key serialization as defined by [SLIP-0032](https://github.com/satoshilabs/slips/blob/master/slip-0032.md)\r\n- Encode/Decode addresses for all the supported coins\r\n- Encode/Decode [WIF](https://en.bitcoin.it/wiki/Wallet_import_format)\r\n- Encode/Decode [base58](https://en.bitcoin.it/wiki/Base58Check_encoding#Background) and [base58 monero](https://monerodocs.org/cryptography/base58)\r\n- Encode/Decode [ss58](https://github.com/paritytech/substrate/wiki/External-Address-Format-(SS58))\r\n- Encode/Decode [bech32](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) and [bech32m](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki)\r\n- Encode/Decode [Bitcoin Cash bech32](https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/cashaddr.md)\r\n- Get token account addresses for SPL tokens (i.e. Solana tokens)\r\n\r\nPackage dependencies:\r\n- [cbor2](https://pypi.org/project/cbor2/) for CBOR encoding/decoding\r\n- [crcmod](https://pypi.org/project/crcmod/) for CRC computation\r\n- [pycryptodome](https://pypi.org/project/pycryptodome/) for cryptographic functions\r\n- [coincurve](https://pypi.org/project/coincurve/) for secp256k1 curve\r\n- [ecdsa](https://pypi.org/project/ecdsa/) for nist256p1 and secp256k1 curves\r\n- [ed25519-blake2b](https://pypi.org/project/ed25519-blake2b/) for ed25519-blake2b curve\r\n- [pynacl](https://pypi.org/project/PyNaCl/) for ed25519 curve\r\n- [py-sr25519-bindings](https://pypi.org/project/py-sr25519-bindings/) for sr25519 curve\r\n\r\nPlease note that, for the py-sr25519-bindings library, Rust is required to be installed.\r\n\r\n## Supported coins\r\n\r\nSupported BIP coins:\r\n- Akash Network\r\n- Algorand\r\n- Aptos\r\n- Arbitrum\r\n- Avalanche (all the 3 chains)\r\n- Axelar\r\n- Band Protocol\r\n- Binance Chain\r\n- Binance Smart Chain\r\n- Bitcoin (and related test net)\r\n- Bitcoin Cash (and related test net)\r\n- Bitcoin Cash Simple Ledger Protocol (and related test net)\r\n- BitcoinSV (and related test net)\r\n- Cardano (Byron-Legacy, Byron-Icarus and Shelley)\r\n- Celo\r\n- Certik\r\n- Cosmos\r\n- Dash (and related test net)\r\n- Dogecoin (and related test net)\r\n- eCash (and related test net)\r\n- Elrond (MultiversX)\r\n- EOS\r\n- Ergo (and related test net)\r\n- Ethereum\r\n- Ethereum Classic\r\n- Fantom Opera\r\n- Filecoin\r\n- Fetch.ai\r\n- Harmony One (Ethereum and Cosmos addresses)\r\n- Huobi Heco Chain\r\n- IRIS Network\r\n- Kava\r\n- Kusama (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)\r\n- Litecoin (and related test net)\r\n- Metis\r\n- Monero (based on BIP44 and secp256k1 or ed25519 SLIP-0010, it won't generate the same addresses of the official wallets, but it supports subaddresses generation)\r\n- Nano\r\n- Near Protocol\r\n- NEO\r\n- OKEx Chain (Ethereum and Cosmos addresses)\r\n- Ontology\r\n- Optimism\r\n- Osmosis\r\n- Pi Network\r\n- Polkadot (based on BIP44 and ed25519 SLIP-0010, like TrustWallet, it won't generate the same addresses of Polkadot-JS)\r\n- Polygon\r\n- Ripple\r\n- Secret Network\r\n- Solana\r\n- Stafi (Cosmos)\r\n- Stellar\r\n- Sui (only ed25519)\r\n- Terra\r\n- Tezos\r\n- Theta Network\r\n- Tron\r\n- VeChain\r\n- Verge\r\n- Zcash (and related test net)\r\n- Zilliqa\r\n\r\nSupported Substrate coins:\r\n- Acala\r\n- Bifrost\r\n- Chainx\r\n- Edgeware\r\n- Karura\r\n- Kusama\r\n- Moonbeam\r\n- Moonriver\r\n- Phala Network\r\n- Plasm Network\r\n- Sora\r\n- Stafi\r\n- Polkadot\r\n- Generic Substrate coin\r\n\r\nFor what regards Monero, it's also possible to generate the same addresses of the official wallets without using BIP44 derivation.\r\n\r\nClearly, for those coins that support Smart Contracts (e.g. Ethereum, Tron, ...), the generated keys and addresses are valid for all the related tokens.\r\n\r\n## Install the package\r\n\r\nFor the secp256k1 curve, it's possible to use either the *coincurve* or the *ecdsa* library. *coincurve* is much faster since it's a Python wrapper to the secp256k1 C library, while *ecdsa* is a pure Python implementation.\\\r\nBy default *coincurve* will be used, but it's possible to disable it when installing.\r\n\r\nTo install the package:\r\n- Default installation (*coincurve* will be used for secp256k1)\r\n    - Using *pip*, from this directory (local):\r\n\r\n            pip install .\r\n\r\n    - Using *pip*, from PyPI:\r\n\r\n            pip install bip_utils\r\n\r\n- Alternative installation (*ecdsa* will be used for secp256k1)\r\n    - Using *setuptools*:\r\n\r\n            python setup.py install --coincurve=0\r\n\r\n    - Using *pip*, from this directory (local):\r\n\r\n            pip install . --install-option=\"--coincurve=0\"\r\n\r\n    - Using *pip*, from PyPI:\r\n\r\n            pip install bip_utils --install-option=\"--coincurve=0\"\r\n\r\n**NOTES:**\r\n- if you are using an Apple M1, please make sure to update *coincurve* to version 17.0.0\r\n- in case of problems when building the *ed25519_blake2b* library, you can try one of the prebuilt wheels [here](https://github.com/ebellocchia/bip_utils/tree/master/libs_wheels)\r\n\r\n## Test and Coverage\r\n\r\nInstall develop dependencies:\r\n\r\n    pip install -r requirements-dev.txt\r\n\r\nTo run tests:\r\n\r\n    python -m unittest discover\r\n\r\nTo run tests with coverage:\r\n\r\n    coverage run -m unittest discover\r\n    coverage report\r\n\r\nTo run code analysis, just execute the `analyze_code` script.\r\n\r\n## Modules description\r\n\r\n- [BIP-0039](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip39.md)\r\n- [Algorand mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/algorand_mnemonic.md)\r\n- [Electrum mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/electrum_mnemonic.md)\r\n- [Monero mnemonic](https://github.com/ebellocchia/bip_utils/tree/master/readme/monero_mnemonic.md)\r\n- [BIP-0038](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip38.md)\r\n- [BIP-0032](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip32.md)\r\n- [BIP-0044](https://github.com/ebellocchia/bip_utils/tree/master/readme/bip44.md)\r\n- [Brainwallet](https://github.com/ebellocchia/bip_utils/tree/master/readme/brainwallet.md)\r\n- [Cardano](https://github.com/ebellocchia/bip_utils/tree/master/readme/cardano.md)\r\n- [Electrum](https://github.com/ebellocchia/bip_utils/tree/master/readme/electrum.md)\r\n- [Monero](https://github.com/ebellocchia/bip_utils/tree/master/readme/monero.md)\r\n- [Substrate](https://github.com/ebellocchia/bip_utils/tree/master/readme/substrate.md)\r\n- [Utility libraries](https://github.com/ebellocchia/bip_utils/tree/master/readme/utility_libs.md)\r\n\r\n## Documentation\r\n\r\nThe library documentation is available at [bip-utils.readthedocs.io](https://bip-utils.readthedocs.io).\r\n\r\n## Code examples\r\n\r\nFor some complete code examples (from mnemonic to keys generation), refer to the [examples](https://github.com/ebellocchia/bip_utils/tree/master/examples) folder.\r\n\r\n# Buy me a coffee\r\n\r\nYou know, I'm italian and I love drinking coffee (especially while coding \ud83d\ude03). So, if you'd like to buy me one:\r\n- BTC: `bc1qq4r9cglwzd6f2hzxvdkucmdejvr9h8me5hy0k8`\r\n- ERC20/BEP20: `0xf84e4898E5E10bf1fBe9ffA3EEC845e82e364b5B`\r\n\r\nThank you very much for your support.\r\n\r\n# License\r\n\r\nThis software is available under the MIT license.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Generation of mnemonics, seeds, private/public keys and addresses for different types of cryptocurrencies",
    "version": "2.9.3",
    "project_urls": {
        "Download": "https://github.com/ebellocchia/bip_utils/archive/v2.9.3.tar.gz",
        "Homepage": "https://github.com/ebellocchia/bip_utils"
    },
    "split_keywords": [
        "python",
        " cryptography",
        " ecdsa",
        " ed25519",
        " ed25519-blake2b",
        " nist256p1",
        " secp256k1",
        " sr25519",
        " wallet",
        " hd-wallet",
        " slip10",
        " slip32",
        " bip38",
        " bip39",
        " bip39-substrate",
        " bip32",
        " bip44",
        " bip49",
        " bip84",
        " bip86",
        " bip173",
        " bip350",
        " brainwallet",
        " base58",
        " ss58",
        " bech32",
        " bech32m",
        " segwit",
        " electrum",
        " substrate",
        " taproot",
        " daedalus",
        " byron",
        " shelley",
        " akash",
        " algorand",
        " aptos",
        " arbitrum",
        " atom",
        " avalanche",
        " avax",
        " axelar",
        " band protocol",
        " binance chain",
        " binance smart chain",
        " bitcoin",
        " bitcoin cash",
        " bitcoinsv",
        " bnb",
        " cardano",
        " cardano-byron",
        " cardano-shelley",
        " celo",
        " certik",
        " cosmos",
        " dash",
        " dogecoin",
        " ecash",
        " elrond",
        " eos",
        " ethereum",
        " ethereum classic",
        " fantom opera",
        " fetch.ai",
        " filecoin",
        " harmony one",
        " huobi chain",
        " icon",
        " injective",
        " iris",
        " irisnet",
        " kava",
        " litecoin",
        " matic",
        " metis",
        " monero",
        " multiversx",
        " okex chain",
        " ontology",
        " optimism",
        " osmosis",
        " nano",
        " near",
        " near protocol",
        " neo",
        " pi network",
        " polygon",
        " ripple",
        " secret",
        " solana",
        " stellar",
        " substrate",
        " sui",
        " terra",
        " tezos",
        " theta",
        " tron",
        " vechain",
        " verge",
        " zcash",
        " zilliqa",
        " acala",
        " bifrost",
        " chainx",
        " edgeware",
        " karura",
        " kusama",
        " moonbeam",
        " moonriver",
        " phala",
        " plasm",
        " sora",
        " stafi",
        " polkadot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f186e7ce96e91c4cb383fc998c5c80000db92592354ec81b5f38d6f0717917dd",
                "md5": "ed1125daaf91f20e046ad92910f0e799",
                "sha256": "ee26b8417a576c7f89b847da37316db01a5cece1994c1609d37fbeefb91ad45e"
            },
            "downloads": -1,
            "filename": "bip_utils-2.9.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ed1125daaf91f20e046ad92910f0e799",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 589384,
            "upload_time": "2024-04-15T19:30:43",
            "upload_time_iso_8601": "2024-04-15T19:30:43.507983Z",
            "url": "https://files.pythonhosted.org/packages/f1/86/e7ce96e91c4cb383fc998c5c80000db92592354ec81b5f38d6f0717917dd/bip_utils-2.9.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd0bc112ca753e8454d8f0ac3ddae2337f37b60c36056f9a89184f07bbed1a0c",
                "md5": "5af7c126fd5cd6353c0c1566d419dde8",
                "sha256": "72a8c95484b57e92311b0b2a3d5195b0ce4395c19a0b157d4a289e8b1300f48a"
            },
            "downloads": -1,
            "filename": "bip_utils-2.9.3.tar.gz",
            "has_sig": false,
            "md5_digest": "5af7c126fd5cd6353c0c1566d419dde8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 335672,
            "upload_time": "2024-04-15T19:30:46",
            "upload_time_iso_8601": "2024-04-15T19:30:46.310980Z",
            "url": "https://files.pythonhosted.org/packages/fd/0b/c112ca753e8454d8f0ac3ddae2337f37b60c36056f9a89184f07bbed1a0c/bip_utils-2.9.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-15 19:30:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ebellocchia",
    "github_project": "bip_utils",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "cbor2",
            "specs": [
                [
                    ">=",
                    "5.1.2"
                ],
                [
                    "<",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "coincurve",
            "specs": [
                [
                    "<",
                    "19.0.0"
                ],
                [
                    ">=",
                    "15.0.1"
                ]
            ]
        },
        {
            "name": "coincurve",
            "specs": [
                [
                    ">=",
                    "15.0.1"
                ]
            ]
        },
        {
            "name": "coincurve",
            "specs": [
                [
                    ">=",
                    "16.0.0"
                ]
            ]
        },
        {
            "name": "coincurve",
            "specs": [
                [
                    ">=",
                    "18.0.0"
                ]
            ]
        },
        {
            "name": "coincurve",
            "specs": [
                [
                    ">=",
                    "19.0.1"
                ]
            ]
        },
        {
            "name": "crcmod",
            "specs": [
                [
                    "~=",
                    "1.7"
                ]
            ]
        },
        {
            "name": "ecdsa",
            "specs": [
                [
                    "~=",
                    "0.17"
                ]
            ]
        },
        {
            "name": "ed25519-blake2b",
            "specs": [
                [
                    ">=",
                    "1.4"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "ed25519-blake2b",
            "specs": [
                [
                    ">=",
                    "1.4.1"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pycryptodome",
            "specs": [
                [
                    "~=",
                    "3.15"
                ]
            ]
        },
        {
            "name": "pynacl",
            "specs": [
                [
                    "~=",
                    "1.5"
                ]
            ]
        },
        {
            "name": "py-sr25519-bindings",
            "specs": [
                [
                    ">=",
                    "0.1.3"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "py-sr25519-bindings",
            "specs": [
                [
                    ">=",
                    "0.1.4"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "py-sr25519-bindings",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ],
                [
                    "<",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    ">=",
                    "3.7.2"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "bip-utils"
}
        
Elapsed time: 0.49306s