beem.wallet

class beem.wallet.Wallet(blockchain_instance=None, *args, **kwargs)

Bases: object

The wallet is meant to maintain access to private keys for your accounts. It either uses manually provided private keys or uses a SQLite database managed by storage.py.

Parameters:
  • rpc (SteemNodeRPC) – RPC connection to a Steem node
  • keys (array, dict, str) – Predefine the wif keys to shortcut the wallet database

Three wallet operation modes are possible:

  • Wallet Database: Here, beem loads the keys from the locally stored wallet SQLite database (see storage.py). To use this mode, simply call beem.steem.Steem without the keys parameter
  • Providing Keys: Here, you can provide the keys for your accounts manually. All you need to do is add the wif keys for the accounts you want to use as a simple array using the keys parameter to beem.steem.Steem.
  • Force keys: This more is for advanced users and requires that you know what you are doing. Here, the keys parameter is a dictionary that overwrite the active, owner, posting or memo keys for any account. This mode is only used for foreign signatures!

A new wallet can be created by using:

from beem import Steem
steem = Steem()
steem.wallet.wipe(True)
steem.wallet.create("supersecret-passphrase")

This will raise beem.exceptions.WalletExists if you already have a wallet installed.

The wallet can be unlocked for signing using

from beem import Steem
steem = Steem()
steem.wallet.unlock("supersecret-passphrase")

A private key can be added by using the addPrivateKey() method that is available after unlocking the wallet with the correct passphrase:

from beem import Steem
steem = Steem()
steem.wallet.unlock("supersecret-passphrase")
steem.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx")

Note

The private key has to be either in hexadecimal or in wallet import format (wif) (starting with a 5).

addPrivateKey(wif)

Add a private key to the wallet database

Parameters:wif (str) – Private key
changePassphrase(new_pwd)

Change the passphrase for the wallet database

create(pwd)

Alias for newWallet()

Parameters:pwd (str) – Passphrase for the created wallet
created()

Do we have a wallet database already?

getAccount(pub)

Get the account data for a public key (first account found for this public key)

Parameters:pub (str) – Public key
getAccountFromPrivateKey(wif)

Obtain account name from private key

getAccountFromPublicKey(pub)

Obtain the first account name from public key

Parameters:pub (str) – Public key

Note: this returns only the first account with the given key. To get all accounts associated with a given public key, use getAccountsFromPublicKey().

getAccounts()

Return all accounts installed in the wallet database

getAccountsFromPublicKey(pub)

Obtain all account names associated with a public key

Parameters:pub (str) – Public key
getActiveKeyForAccount(name)

Obtain owner Active Key for an account from the wallet database

getActiveKeysForAccount(name)

Obtain list of all owner Active Keys for an account from the wallet database

getAllAccounts(pub)

Get the account data for a public key (all accounts found for this public key)

Parameters:pub (str) – Public key
getKeyForAccount(name, key_type)

Obtain key_type Private Key for an account from the wallet database

Parameters:
  • name (str) – Account name
  • key_type (str) – key type, has to be one of “owner”, “active”, “posting” or “memo”
getKeyType(account, pub)

Get key type

Parameters:
  • account (Account, dict) – Account data
  • pub (str) – Public key
getKeysForAccount(name, key_type)

Obtain a List of key_type Private Keys for an account from the wallet database

Parameters:
  • name (str) – Account name
  • key_type (str) – key type, has to be one of “owner”, “active”, “posting” or “memo”
getMemoKeyForAccount(name)

Obtain owner Memo Key for an account from the wallet database

getOwnerKeyForAccount(name)

Obtain owner Private Key for an account from the wallet database

getOwnerKeysForAccount(name)

Obtain list of all owner Private Keys for an account from the wallet database

getPostingKeyForAccount(name)

Obtain owner Posting Key for an account from the wallet database

getPostingKeysForAccount(name)

Obtain list of all owner Posting Keys for an account from the wallet database

getPrivateKeyForPublicKey(pub)

Obtain the private key for a given public key

Parameters:pub (str) – Public Key
getPublicKeys(current=False)

Return all installed public keys :param bool current: If true, returns only keys for currently

connected blockchain
is_encrypted()

Is the key store encrypted?

lock()

Lock the wallet database

locked()

Is the wallet database locked?

newWallet(pwd)

Create a new wallet database

Parameters:pwd (str) – Passphrase for the created wallet
prefix
privatekey(key)
publickey_from_wif(wif)
removeAccount(account)

Remove all keys associated with a given account

Parameters:account (str) – name of account to be removed
removePrivateKeyFromPublicKey(pub)

Remove a key from the wallet database

Parameters:pub (str) – Public key
rpc
setKeys(loadkeys)

This method is strictly only for in memory keys that are passed to Wallet with the keys argument

unlock(pwd)

Unlock the wallet database

unlocked()

Is the wallet database unlocked?

wipe(sure=False)