Wallet

The implementation of Hierarchical Deterministic (HD) wallets generator for Bytom blockchain.

class swap.providers.bytom.wallet.Wallet(network: str = 'mainnet')

Bytom Wallet class.

Parameters

network (str) – Bytom network, defaults to mainnet.

Returns

Wallet – Bytom wallet instance.

Note

Bytom has only two networks, mainnet, solonet and testnet.

from_entropy(entropy: str, language: str = 'english', passphrase: Optional[str] = None)swap.providers.bytom.wallet.Wallet

Initiate Bytom wallet from entropy.

Parameters
  • entropy (str) – Bytom wallet entropy.

  • language (str) – Bytom wallet language, default to english.

  • passphrase (str) – Bytom wallet passphrase, default to None.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_mnemonic(mnemonic: str, language: Optional[str] = None, passphrase: Optional[str] = None)swap.providers.bytom.wallet.Wallet

Initialize Bytom wallet from mnemonic.

Parameters
  • mnemonic (str) – Bytom wallet mnemonic.

  • language (str) – Bytom wallet language, default to english.

  • passphrase (str) – Bytom wallet passphrase, default to None.

Returns

Wallet – Bytom wallet class instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_seed(seed: str)swap.providers.bytom.wallet.Wallet

Initialize Bytom wallet from seed.

Parameters

seed (str) – Bytom wallet seed.

Returns

Wallet – Bytom wallet class instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_seed("baff3e1fe60e1f2a2d840d304acc98d1818140c79354a353b400fb019bfb256bc392d7aa9047adff1f14bce0342e14605c6743a6c08e02150588375eb2eb7d49")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_xprivate_key(xprivate_key: str)swap.providers.bytom.wallet.Wallet

Initiate Bytom wallet from xprivate key.

Parameters

xprivate_key (str) – Bytom wallet xprivate key.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_xprivate_key("205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee51ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_private_key(private_key: str)swap.providers.bytom.wallet.Wallet

Initialize Bytom wallet from private key.

Parameters

private_key (str) – Bytom private key.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_private_key("e07af52746e7cccd0a7d1fba6651a6f474bada481f34b1c5bab5e2d71e36ee515803ee0a6682fb19e279d8f4f7acebee8abd0fc74771c71565f9a9643fd77141")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_path(path: str)swap.providers.bytom.wallet.Wallet

Drive Bytom wallet from path.

Parameters

path (str) – Bytom wallet path.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_indexes(indexes: List[str])swap.providers.bytom.wallet.Wallet

Drive Bytom wallet from indexes.

Parameters

indexes (list) – Bytom derivation indexes.

Returns

Wallet – Bytom wallet class instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_xprivate_key("205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee51ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b")
>>> wallet.from_indexes(["2c000000", "99000000", "01000000", "00000000", "01000000"])
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
from_index(index: int, harden: bool = False)swap.providers.bytom.wallet.Wallet

Drive Bytom wallet from index.

Parameters
  • index (int) – Bytom wallet index.

  • harden (bool) – Use harden, default to False.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_index(44)
>>> wallet.from_index(153)
>>> wallet.from_index(1)
>>> wallet.from_index(0)
>>> wallet.from_index(1)
<swap.providers.bytom.wallet.Wallet object at 0x040DA268>
clean_derivation()swap.providers.bytom.wallet.Wallet

Clean derivation Bytom wallet.

Returns

Wallet – Bytom wallet instance.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.indexes()
["2c000000", "99000000", "01000000", "00000000", "01000000"]
>>> wallet.path()
"m/44/153/1/0/1"
>>> wallet.clean_derivation()
>>> wallet.indexes()
[]
>>> wallet.path()
None
strength() → Optional[int]

Get Bytom wallet strength.

Returns

int – Bytom wallet strength.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.strength()
128
entropy() → Optional[str]

Get Bytom wallet entropy.

Returns

str – Bytom wallet entropy.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.entropy()
"72fee73846f2d1a5807dc8c953bf79f1"
mnemonic() → Optional[str]

Get Bytom wallet mnemonic.

Returns

str – Bytom wallet mnemonic.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.mnemonic()
"indicate warm sock mistake code spot acid ribbon sing over taxi toast"
passphrase() → Optional[str]

Get Bytom wallet passphrase.

Returns

str – Bytom wallet passphrase.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1", passphrase="meherett")
>>> wallet.passphrase()
"meherett"
language() → Optional[str]

Get Bytom wallet language.

Returns

str – Bytom wallet language.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.language()
"english"
seed() → Optional[str]

Get Bytom wallet seed.

Returns

str – Bytom wallet seed.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.seed()
"baff3e1fe60e1f2a2d840d304acc98d1818140c79354a353b400fb019bfb256bc392d7aa9047adff1f14bce0342e14605c6743a6c08e02150588375eb2eb7d49"
path() → Optional[str]

Get Bytom wallet derivation path.

Returns

str – Bytom derivation path.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet", change=True, address=3)
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.path()
"m/44/153/1/0/1"
indexes() → list

Get Bytom wallet derivation indexes.

Returns

list – Bytom derivation indexes.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.indexes()
['2c000000', '99000000', '01000000', '00000000', '01000000']
xprivate_key() → Optional[str]

Get Bytom wallet xprivate key.

Returns

str – Bytom xprivate key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.xprivate_key()
"205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee51ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b"
xpublic_key() → Optional[str]

Get Bytom wallet xpublic key.

Returns

str – Bytom xpublic key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.xpublic_key()
"16476b7fd68ca2acd92cfc38fa353e75d6103f828276f44d587e660a6bd7a5c5ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b"
expand_xprivate_key() → Optional[str]

Get Bytom wallet expand xprivate key.

Returns

str – Bytom expand xprivate key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.expand_xprivate_key()
"205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee5102416c643cfb46ab1ae5a524c8b4aaa002eb771d0d9cfc7490c0c3a8177e053e"
child_xprivate_key() → Optional[str]

Get Bytom child wallet xprivate key.

Returns

str – Bytom child xprivate key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.child_xprivate_key()
"e07af52746e7cccd0a7d1fba6651a6f474bada481f34b1c5bab5e2d71e36ee515803ee0a6682fb19e279d8f4f7acebee8abd0fc74771c71565f9a9643fd77141"
child_xpublic_key() → Optional[str]

Get Bytom child wallet xpublic key.

Returns

str – Bytom child xpublic key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.child_xpublic_key()
"91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e25803ee0a6682fb19e279d8f4f7acebee8abd0fc74771c71565f9a9643fd77141"
guid() → Optional[str]

Get Bytom wallet Blockcenter GUID.

Returns

str – Bytom Blockcenter GUID.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.guid()
"f0ed6ddd-9d6b-49fd-8866-a52d1083a13b"
private_key() → str

Get Bytom wallet private key.

Returns

str – Bytom private key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.private_key()
"e07af52746e7cccd0a7d1fba6651a6f474bada481f34b1c5bab5e2d71e36ee515803ee0a6682fb19e279d8f4f7acebee8abd0fc74771c71565f9a9643fd77141"
public_key() → str

Get Bytom wallet public key.

Returns

str – Bytom public key.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.public_key()
"91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2"
program() → str

Get Bytom wallet control program.

Returns

str – Bytom control program.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.program()
"00142cda4f99ea8112e6fa61cdd26157ed6dc408332a"
address(network: Optional[str] = 'mainnet') → str

Get Bytom wallet address.

Parameters

network (str) – Bytom network, defaults to mainnet.

Returns

str – Bytom wallet address.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_indexes(["2c000000", "99000000", "01000000", "00000000", "01000000"])
>>> wallet.address(network="mainnet")
"bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7"
balance(asset: str = 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff') → int

Get Bytom wallet balance.

Parameters

asset (str) – Bytom asset id, defaults to BTM asset.

Returns

int – Bytom wallet balance (NEU amount).

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.balance()
71510800
utxos(asset: str = 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', limit: int = 15) → list

Get Bytom wallet unspent transaction output (UTXO’s).

Parameters
  • asset (str) – Bytom asset id, defaults to BTM asset.

  • limit (int) – Limit of UTXO’s, default is 15.

Returns

list – Bytom unspent transaction outputs.

>>> from swap.providers.bytom.wallet import Wallet
>>> wallet = Wallet(network="mainnet")
>>> wallet.from_entropy("72fee73846f2d1a5807dc8c953bf79f1")
>>> wallet.from_path("m/44/153/1/0/1")
>>> wallet.utxos()
[{'hash': '7c1e20e6ff719176a3ed6f5332ec3ff665ab28754d2511950e591267e0e675df', 'asset': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'amount': 71510800}, {'hash': '01b07c3523085b75f1e047be3a73b263635d0b86f9b751457a51b26c5a97a110', 'asset': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'amount': 50000}, {'hash': 'e46cfecc1f1a26413172ce81c78affb19408e613915642fa5fb04d3b0a4ffa65', 'asset': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'amount': 100}]