Wallet

Create a new wallet

A new wallet can be created by using:

from bitshares import BitShares
bitshares = BitShares()
bitshares.wallet.create("supersecret-passphrase")

This will raise an exception if you already have a wallet installed.

Unlocking the wallet for signing

The wallet can be unlocked for signing using

from bitshares import BitShares
bitshares = BitShares()
bitshares.wallet.unlock("supersecret-passphrase")

Adding a Private Key

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

from bitshares import BitShares
bitshares = BitShares()
bitshares.wallet.unlock("supersecret-passphrase")
bitshares.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx")

Note

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

API

class bitshares.wallet.Wallet(rpc, *args, **kwargs)

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 (BitSharesNodeRPC) – RPC connection to a BitShares node
  • keys (array,dict,string) – Predefine the wif keys to shortcut the wallet database

Three wallet operation modes are possible:

  • Wallet Database: Here, pybitshares loads the keys from the locally stored wallet SQLite database (see storage.py). To use this mode, simply call BitShares() 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 BitShares().
  • 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!
addPrivateKey(wif)

Add a private key to the wallet database

changePassphrase(new_pwd)

Change the passphrase for the wallet database

create(pwd)

Alias for newWallet()

created()

Do we have a wallet database already?

decrypt_wif(encwif)

decrypt a wif key

encrypt_wif(wif)

Encrypt a wif key

getAccount(pub)

Get the account data for a public key

getAccountFromPrivateKey(wif)

Obtain account name from private key

getAccountFromPublicKey(pub)

Obtain account name from public key

getAccounts()

Return all accounts installed in the wallet database

getActiveKeyForAccount(name)

Obtain owner Active Key for an account from the wallet database

getKeyType(account, pub)

Get key type

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

getPrivateKeyForPublicKey(pub)

Obtain the private key for a given public key

Parameters:pub (str) – Public Key
getPublicKeys()

Return all installed public keys

lock()

Lock the wallet database

locked()

Is the wallet database locked?

newWallet(pwd)

Create a new wallet database

removeAccount(account)

Remove all keys associated with a given account

removePrivateKeyFromPublicKey(pub)

Remove a key from the wallet database

setKeys(loadkeys)

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

unlock(pwd=None)

Unlock the wallet database