Bitcoin and Other cryptocurrency Library
Python Bitcoin Library
Bitcoin and other Crypto currencies Library for Python. Includes a fully functional wallet, Mnemonic key generation and management and connection with various service providers to receive and send blockchain and transaction information.
Read the full documentation at: http://bitcoinlib.readthedocs.io/
This library is still in development, please use at your own risk and test sufficiently before using it in a production environment. Support for Litecoin and Dash is just for read only wallet, not for creating or sending transactions.
The bitcoin library contains a wallet implementation using sqlalchemy and sqllite3 to import, create and manage keys in a Hierarchical Deterministic Way.
Example: Create wallet and generate new key to receive bitcoins
>>> from bitcoinlib.wallets import HDWallet >>> w = HDWallet.create('Wallet1') >>> w <HDWallet (id=1, name=Wallet1, network=bitcoin)> >>> key1 = w.new_key() >>> key1 <HDWalletKey (name=Key 0, wif=xprvA4B..etc..6HZKGW7Kozc, path=m/44'/0'/0'/0/0)> >>> key1.address '1Fo7STj6LdRhUuD1AiEsHpH65pXzraGJ9j'
When your wallet received a payment and has unspent transaction outputs, you can send bitcoins easily. If successful a transaction ID is returned
>>> w.send_to('12ooWd8Xag7hsgP9PBPnmyGe36VeUrpMSH', 100000) 'b7feea5e7c79d4f6f343b5ca28fa2a1fcacfe9a2b7f44f3d2fd8d6c2d82c4078'
Allows you to use easy to remember passphrases consisting of a number of words to store private keys (BIP0039). You can password protect this passphrase (BIP0038), and use the HD Wallet structure to generate a almost infinite number of new private keys and bitcoin addresses (BIP0043 and BIP0044).
Example: Generate a list of words passphrase and derive a private key seed
>>> from bitcoinlib.mnemonic import Mnemonic >>> words = Mnemonic().generate() >>> words protect dumb smart toddler journey spawn same dry season ecology scissors more >>> Mnemonic().to_seed(words) ..very long and ugly byte string which can be used as private key
Communicates with pools of bitcoin service providers to retreive transaction, address, blockchain information. To push a transaction to the network. To determine optimal service fee for a transaction. Or to update your wallet’s balance.
Example: Get estimated transaction fee in sathosis per Kb for confirmation within 5 blocks
>>> from bitcoinlib.services.services import Service >>> Service().estimatefee(5) 138964
Implements the following Bitcoin Improvement Proposals
- Hierarchical Deterministic Wallets (BIP0032)
- Passphrase-protected private key (BIP0038)
- Mnemonic code for generating deterministic keys (BIP0039)
- Purpose Field for Deterministic Wallets (BIP0043)
- Multi-Account Hierarchy for Deterministic Wallets (BIP0044)
Install with pip
pip install bitcoinlib
Required Python Packages, are automatically installed upon installing bitcoinlib:
Python development packages
sudo apt install python-dev python3-dev
To install OpenSSL development package on Debian, Ubuntu or their derivatives
sudo apt install libssl-dev
To install OpenSSL development package on Fedora, CentOS or RHEL
sudo yum install openssl-devel