Wallet¶
The implementation of Hierarchical Deterministic (HD) wallets generator for Bitcoin blockchain.
-
class
swap.providers.bitcoin.wallet.
Wallet
(network: str = 'mainnet')¶ Bitcoin Wallet class.
- Parameters
network (str) – Bitcoin network, defaults to mainnet.
- Returns
Wallet – Bitcoin wallet instance.
Note
Bitcoin has only two networks,
mainnet
andmainnet
.-
from_entropy
(entropy: str, language: str = 'english', passphrase: Optional[str] = None) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from entropy.
- Parameters
entropy (str) – Bitcoin wallet entropy.
language (str) – Bitcoin wallet language, default to english.
passphrase (str) – Bitcoin wallet passphrase, default to None.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_mnemonic
(mnemonic: str, language: Optional[str] = None, passphrase: Optional[str] = None) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from mnemonic.
- Parameters
mnemonic (str) – Bitcoin wallet mnemonic.
language (str) – Bitcoin wallet language, default to english.
passphrase (str) – Bitcoin wallet passphrase, default to None.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_seed
(seed: str) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from seed.
- Parameters
seed (str) – Bitcoin wallet seed.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_seed("baff3e1fe60e1f2a2d840d304acc98d1818140c79354a353b400fb019bfb256bc392d7aa9047adff1f14bce0342e14605c6743a6c08e02150588375eb2eb7d49") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_root_xprivate_key
(root_xprivate_key: str) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from root xprivate key.
- Parameters
root_xprivate_key (str) – Bitcoin wallet root xprivate key.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_root_xprivate_key("tprv8ZgxMBicQKsPeLxEBy2sJ8CqLdc76FUzeaiY5egrW4JdpM4F9b9A3L6AQhsY1TRsqJAfTdH7DdRAt5hRdcdhn5LnMZPiaGRR7Snrmd8CLqR") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_xprivate_key
(xprivate_key: str) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from xprivate key.
- Parameters
xprivate_key (str) – Bitcoin wallet xprivate key.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_xprivate_key("tprv8kPCFydoWU9ybQunXq7g17Me57ac5gcj8RartGqetP4wAnoDHQAVnLY4RtbYE3WH6xBLHbBJ1VZcRutM712SRQkLFM2PCeoKfsPpndYUajZ") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_wif
(wif: str) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from wallet important format (WIF).
- Parameters
wif (str) – Bitcoin wallet important format.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_wif("cTQpBvBAavuh6VzpeXiutLLTA5Uckr4eAJKuFsBMU1aQXBye1Z9n") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_private_key
(private_key) → swap.providers.bitcoin.wallet.Wallet¶ Initialize wallet from private key.
- Parameters
private_key (str) – Bitcoin wallet private key.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_private_key("adf0218f7e7276ed0f40b6919f2473497dd2bf7dcd4cabff4d4ef0e11948cde7") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_path
(path: str) → swap.providers.bitcoin.wallet.Wallet¶ Drive Bitcoin wallet from path.
- Parameters
path (str) – Bitcoin wallet path.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
from_index
(index: int, harden: bool = False) → swap.providers.bitcoin.wallet.Wallet¶ Drive Bitcoin wallet from index.
- Parameters
index (int) – Bitcoin wallet index.
harden (bool) – Use harden, default to False.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_index(44, harden=True) >>> wallet.from_index(0, harden=True) >>> wallet.from_index(0, harden=True) >>> wallet.from_index(0) >>> wallet.from_index(0) <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268>
-
clean_derivation
() → swap.providers.bitcoin.wallet.Wallet¶ Clean derivation Bitcoin wallet.
- Returns
Wallet – Bitcoin wallet instance.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.path() "m/44'/0'/0'/0/0" >>> wallet.clean_derivation() <swap.providers.bitcoin.wallet.Wallet object at 0x040DA268> >>> wallet.path() None
-
strength
() → Optional[int]¶ Get Bitcoin wallet strength.
- Returns
int – Bitcoin wallet strength.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.strength() 128
-
entropy
() → Optional[str]¶ Get Bitcoin wallet entropy.
- Returns
str – Bitcoin wallet entropy.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.entropy() "72fee73846f2d1a5807dc8c953bf79f1"
-
mnemonic
() → Optional[str]¶ Get Bitcoin wallet mnemonic.
- Returns
str – Bitcoin wallet mnemonic.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.mnemonic() "indicate warm sock mistake code spot acid ribbon sing over taxi toast"
-
passphrase
() → Optional[str]¶ Get Bitcoin wallet passphrase.
- Returns
str – Bitcoin wallet passphrase.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1", passphrase="meherett") >>> wallet.passphrase() "meherett"
-
language
() → Optional[str]¶ Get Bitcoin wallet language.
- Returns
str – Bitcoin wallet language.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.language() "english"
-
seed
() → Optional[str]¶ Get Bitcoin wallet seed.
- Returns
str – Bitcoin wallet seed.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.seed() "baff3e1fe60e1f2a2d840d304acc98d1818140c79354a353b400fb019bfb256bc392d7aa9047adff1f14bce0342e14605c6743a6c08e02150588375eb2eb7d49"
-
root_xprivate_key
(encoded: bool = True) → Optional[str]¶ Get Bitcoin wallet root xprivate key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to True.
- Returns
str – Bitcoin wallet root xprivate key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.root_xprivate_key() "tprv8ZgxMBicQKsPeLxEBy2sJ8CqLdc76FUzeaiY5egrW4JdpM4F9b9A3L6AQhsY1TRsqJAfTdH7DdRAt5hRdcdhn5LnMZPiaGRR7Snrmd8CLqR"
-
root_xpublic_key
(encoded: bool = True) → Optional[str]¶ Get Bitcoin wallet root xpublic key.
- Parameters
encoded (bool) – Encoded root xprivate key, default to True.
- Returns
str – Bitcoin wallet root xpublic key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.root_xpublic_key() "tpubD6NzVbkrYhZ4Xoz25chThXrwuf83FafuDtKKNAj9vL72eqK1myxkDpi2aq9PKCbaQEbJZEaQBwiDQvYuMFZSWPNbypVJkNLfDHwvswpn4m4"
-
xprivate_key
(encoded=True) → Optional[str]¶ Get Bitcoin wallet xprivate key.
- Parameters
encoded (bool) – Encoded xprivate key, default to True.
- Returns
str – Bitcoin wallet xprivate key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.xprivate_key() "tprv8kPCFydoWU9ybQunXq7g17Me57ac5gcj8RartGqetP4wAnoDHQAVnLY4RtbYE3WH6xBLHbBJ1VZcRutM712SRQkLFM2PCeoKfsPpndYUajZ"
-
xpublic_key
(encoded: bool = True) → Optional[str]¶ Get Bitcoin wallet xpublic key.
- Parameters
encoded (bool) – Encoded xprivate key, default to True.
- Returns
str – Bitcoin wallet xpublic key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.xpublic_key() "tpubDH5EQPg3eqqeUswaRUnGQX1ke96YF1odhjBeAnsxJesL1H3yunz5xq9vbzGdsRqx3hnsMwZxn9icChmwC8W2gJEJR29iUaRBtCUbPrE7WXm"
-
uncompressed
() → str¶ Get Bitcoin wallet uncompressed public key.
- Returns
str – Bitcoin wallet uncompressed public key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.uncompressed() "065e8cb5fa76699079860a450bddd0e37e0ad3dbf2ddfd01d7b600231e6cde8ebc4241db8d66eb8085d5805bd2c4dd588ab3b6f9ec50c2ac3da4c557e15eca2e"
-
compressed
() → str¶ Get Bitcoin wallet compressed public key.
- Returns
str – Bitcoin wallet compressed public key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.compressed() "02065e8cb5fa76699079860a450bddd0e37e0ad3dbf2ddfd01d7b600231e6cde8e"
-
chain_code
() → str¶ Get Bitcoin wallet chain code.
- Returns
str – Bitcoin wallet chain code.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.chain_code() "33a1c82cd13444724d0d217da8be96a8dcf663c8289ba870231c5f60e31accc5"
-
private_key
() → str¶ Get Bitcoin wallet private key.
- Returns
str – Bitcoin wallet private key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.private_key() "adf0218f7e7276ed0f40b6919f2473497dd2bf7dcd4cabff4d4ef0e11948cde7"
-
public_key
(private_key: Optional[str] = None) → str¶ Get Bitcoin wallet public key.
- Returns
str – Bitcoin wallet public key.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.public_key() "02065e8cb5fa76699079860a450bddd0e37e0ad3dbf2ddfd01d7b600231e6cde8e"
-
path
() → Optional[str]¶ Get Bitcoin wallet path.
- Returns
str – Bitcoin wallet path.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.path() "m/44'/0'/0'/0/0"
-
address
() → str¶ Get Bitcoin wallet address.
- Returns
str – Bitcoin wallet address.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.address() "mkFWGt4hT11XS8dJKzzRFsTrqjjAwZfQAC"
-
wif
() → str¶ Get Bitcoin wallet important format (WIF).
- Returns
str – Bitcoin wallet important format.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.wif() "cTQpBvBAavuh6VzpeXiutLLTA5Uckr4eAJKuFsBMU1aQXBye1Z9n"
-
hash
() → str¶ Get Bitcoin wallet public key/address hash.
- Returns
str – Bitcoin wallet public key/address hash.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.hash() "33ecab3d67f0e2bde43e52f41ec1ecbdc73f11f8"
-
p2pkh
() → str¶ Get Bitcoin wallet public key/address p2pkh.
- Returns
str – Bitcoin wallet public key/address p2pkh.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.p2pkh() "76a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac"
-
balance
() → int¶ Get Bitcoin wallet balance.
- Returns
int – Bitcoin wallet balance (SATOSHI amount).
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.balance() 67966
-
utxos
(limit: int = 15) → list¶ Get Bitcoin wallet unspent transaction output (UTXO’s).
- Parameters
limit (int) – Limit of UTXO’s, default is 15.
- Returns
list – Bitcoin unspent transaction outputs.
>>> from swap.providers.bitcoin.wallet import Wallet >>> wallet = Wallet(network="testnet") >>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1") >>> wallet.from_path("m/44'/0'/0'/0/0") >>> wallet.utxos() [{'index': 0, 'hash': '98c6a3d4e136d32d0848126e08325c94da2e8217593e92236471b11b42ee7999', 'output_index': 1, 'amount': 67966, 'script': '76a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac'}]