kmd

class KMDClient(kmd_token, kmd_address)

Bases: object

Client class for kmd. Handles all kmd requests.

Parameters
  • kmd_token (str) – kmd API token

  • kmd_address (str) – kmd address

kmd_token
Type

str

kmd_address
Type

str

kmd_request(method, requrl, params=None, data=None)

Execute a given request.

Parameters
  • method (str) – request method

  • requrl (str) – url for the request

  • params (dict, optional) – parameters for the request

  • data (dict, optional) – data in the body of the request

Returns

loaded from json response body

Return type

dict

versions()

Get kmd versions.

Returns

list of versions

Return type

str[]

list_wallets()

List all wallets hosted on node.

Returns

list of dictionaries containing wallet information

Return type

dict[]

create_wallet(name, pswd, driver_name='sqlite', master_deriv_key=None)

Create a new wallet.

Parameters
  • name (str) – wallet name

  • pswd (str) – wallet password

  • driver_name (str, optional) – name of the driver

  • master_deriv_key (str, optional) – if recovering a wallet, include

Returns

dictionary containing wallet information

Return type

dict

get_wallet(handle)

Get wallet information.

Parameters

handle (str) – wallet handle token

Returns

dictionary containing wallet handle and wallet information

Return type

dict

init_wallet_handle(id, password)

Initialize a handle for the wallet.

Parameters
  • id (str) – wallet ID

  • password (str) – wallet password

Returns

wallet handle token

Return type

str

release_wallet_handle(handle)

Deactivate the handle for the wallet.

Args: handle (str): wallet handle token

Returns

True if the handle has been deactivated

Return type

bool

renew_wallet_handle(handle)

Renew the wallet handle.

Parameters

handle (str) – wallet handle token

Returns

dictionary containing wallet handle and wallet information

Return type

dict

rename_wallet(id, password, new_name)

Rename the wallet.

Parameters
  • id (str) – wallet ID

  • password (str) – wallet password

  • new_name (str) – new name for the wallet

Returns

dictionary containing wallet information

Return type

dict

export_master_derivation_key(handle, password)

Get the wallet’s master derivation key.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

Returns

master derivation key

Return type

str

import_key(handle, private_key)

Import an account into the wallet.

Parameters
  • handle (str) – wallet handle token

  • private_key (str) – private key of account to be imported

Returns

base32 address of the account

Return type

str

export_key(handle, password, address)

Return an account private key.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

  • address (str) – base32 address of the account

Returns

private key

Return type

str

generate_key(handle, display_mnemonic=True)

Generate a key in the wallet.

Parameters
  • handle (str) – wallet handle token

  • display_mnemonic (bool, optional) – whether or not the mnemonic should be displayed

Returns

base32 address of the generated account

Return type

str

delete_key(handle, password, address)

Delete a key in the wallet.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

  • address (str) – base32 address of account to be deleted

Returns

True if the account has been deleted

Return type

bool

list_keys(handle)

List all keys in the wallet.

Parameters

handle (str) – wallet handle token

Returns

list of base32 addresses in the wallet

Return type

str[]

sign_transaction(handle, password, txn, signing_address=None)

Sign a transaction.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

  • txn (Transaction) – transaction to be signed

  • signing_address (str, optional) – sign the transaction with SK corresponding to base32 signing_address, if provided, rather than SK corresponding to sender

Returns

signed transaction with signature of sender

Return type

SignedTransaction

list_multisig(handle)

List all multisig accounts in the wallet.

Parameters

handle (str) – wallet handle token

Returns

list of base32 multisig account addresses

Return type

str[]

import_multisig(handle, multisig)

Import a multisig account into the wallet.

Parameters
  • handle (str) – wallet handle token

  • multisig (Multisig) – multisig account to be imported

Returns

base32 address of the imported multisig account

Return type

str

export_multisig(handle, address)

Export a multisig account.

Parameters
  • handle (str) – wallet token handle

  • address (str) – base32 address of the multisig account

Returns

multisig object corresponding to the address

Return type

Multisig

delete_multisig(handle, password, address)

Delete a multisig account.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

  • address (str) – base32 address of the multisig account to delete

Returns

True if the multisig account has been deleted

Return type

bool

sign_multisig_transaction(handle, password, public_key, mtx)

Sign a multisig transaction for the given public key.

Parameters
  • handle (str) – wallet handle token

  • password (str) – wallet password

  • public_key (str) – base32 address that is signing the transaction

  • mtx (MultisigTransaction) – multisig transaction containing unsigned or partially signed multisig

Returns

multisig transaction with added signature

Return type

MultisigTransaction