On this page

latest contributor to this doc

Last Edit:

@gcharang↗

Wallet

The following RPC calls interact with the komodod software, and are made available through the komodo-cli software.

addmultisigaddress nrequired [ "key", ... ] ( "account" )

The addmultisigaddress method adds a multi-signature address to the wallet, where nrequired indicates the number of keys (out of the total provided) required to execute a transaction.

The keys function as signatures, allowing multiple parties or entities to manage an account. Each key in the array can be an address or a hex-encoded public key.

DEPRECATED: If account is specified, the method assigns the multi-signature address to that account.

NameTypeDescription
nrequired(numeric, required)the number of required keys (out of the n submitted)
"keysobject"(string, required)a json array of addresses or hex-encoded public keys
"address"(string)the address or hex-encoded public key
"account"(string, optional)DEPRECATED: if provided, "account" MUST be set to the empty string "" to represent the default account; passing any other string will result in an error

NameTypeDescription
"address"(string)an address associated with the keys

Add a multisig address from 2 addresses:

Command:

./komodo-cli addmultisigaddress 2 '["RSWwtqsNr9mW21UXRm6Lz4AzQnj4pVzzkp","RW8d8EChHTooVbwF3reqHYgkzWCnJFLXgh"]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "addmultisigaddress", "params": [2, ["RL4CuA2MSAbBiqJKQEr2TKnKT2fSwK99mG","RBYVFCxpJdLgvUixhguxzuH1TJpoNLYCJ6"]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

backupwallet "destination"

The backupwallet method safely copies the wallet.dat file to the indicated destination. The destination input accepts only alphanumeric characters.

This method requires that the coin daemon have the exportdir runtime parameter enabled.

NameTypeDescription
"destination"(string, required)the destination filename, saved in the directory set by the exportdir runtime parameter

NameTypeDescription
"path"(string)the full path of the destination file

./komodo-cli backupwallet "mybackupdata"

/home/myusername/myexportdir/mybackupdata

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "backupwallet", "params": ["backupdata"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

dumpprivkey "address"

The dumpprivkey method reveals the private key corresponding to the indicated address.

See also importprivkey.

NameTypeDescription
"address"(string, required)the address for the private key

NameTypeDescription
"data"(string)the private key

Command:

./komodo-cli dumpprivkey "RTcwYaQPDVN7V9SdfFHARWnoB7vcpSfdvs"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "dumpprivkey", "params": ["RTcwYaQPDVN7V9SdfFHARWnoB7vcpSfdvs"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

dumpwallet "filename"

The dumpwallet method dumps all transparent-address wallet keys into a file, using a human-readable format.

Overwriting an existing file is not permitted. The destination parameter accepts only alphanumeric characters.

This method requires that the coin daemon have the exportdir runtime parameter enabled.

NameTypeDescription
"filename"(string, required)the filename, saved in the folder set by the exportdir runtime parameter

NameTypeDescription
"path"(string)the full path of the destination file

Command:

./komodo-cli dumpwallet "test"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "dumpwallet", "params": ["test"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

encryptwallet "passphrase"

Using the encryptwallet method will shutdown the Komodo daemon (komodod).

This feature is available only on chains where -ac_public is enabled. Chains that feature private transactions cannot use this feature.

The encryptwallet method encrypts the wallet with the indicated passphrase.

For more information, please see these instructions: Encrypt Komodo's wallet.dat File

This method is for first-time encryption only. After the first encryption, any calls that interact with private keys will require the passphrase via walletpassphrase prior to calling the corresponding method. This includes methods that create a transaction, dump a private key for an address, sign a transaction, etc.

NameTypeDescription
passphrase(string)the passphrase for wallet encryption; the passphrase must be at least 1 character, but should be many

Text Response
wallet encrypted; Komodo server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup.

Command:

./komodo-cli encryptwallet "mypassphrase"

Command:

./komodo-cli walletpassphrase "mypassphrase" 60

Command:

./komodo-cli walletlock

As a json rpc call:

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "encryptwallet", "params": ["mypassphrase"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getaccount "address"

The getaccount method returns the account associated with the given address.

NameTypeDescription
"address"(string, required)the address

NameTypeDescription
"accountname"(string)the account address

Command:

./komodo-cli getaccount "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaccount", "params": ["RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getaccountaddress "account"

DEPRECATED

The getaccountaddress method returns the current address for receiving payments to this account.

NameTypeDescription
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error

NameTypeDescription
"address"(string)the account address

Command:

./komodo-cli getaccountaddress

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaccountaddress", "params": ["myaccount"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getaddressesbyaccount "account"

DEPRECATED

The getaddressesbyaccount method returns the list of addresses for the given account.

NameTypeDescription
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error

NameTypeDescription
"address"(string)an address associated with the given account

Command:

./komodo-cli getaddressesbyaccount "tabby"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaddressesbyaccount", "params": ["tabby"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getbalance ( "account" minconf includeWatchonly )

The getbalance method returns the server's total available balance.

The account input is deprecated.

NameTypeDescription
"account"(string, optional)DEPRECATED if provided, it MUST be set to the empty string "" or to the string "*"
minconf(numeric, optional, default=1)only include transactions confirmed at least this many times
includeWatchonly(bool, optional, default=false)also include balance in watchonly addresses (see importaddress)

NameTypeDescription
amount(numeric)the total amount

The total amount in the wallet:

Command:

./komodo-cli getbalance

The total amount in the wallet where at least five blocks are confirmed:

Command:

./komodo-cli getbalance "*" 5

As a json rpc call:

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": ["", 6] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getbalance64

This method is part of the new ac_staked functionality.

The getbalance64 method is used only on Smart Chains that are utilizing the ac_staked functionality. On KMD-based Proof-of-Stake (PoS) Smart Chains, all staked coins are placed into one of 64 segments (segid's'). The getbalance64 method returns the balance of coins in each segid. For further information, please reach out to our support team.

getnewaddress ( "account" )

The getnewaddress method returns a new address for receiving payments.

NameTypeDescription
"account"(string, optional)DEPRECATED: If provided, the account MUST be set to the empty string "" to represent the default account; passing any other string will result in an error

NameTypeDescription
"address"(string)the new address

Command:

./komodo-cli getnewaddress

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getrawchangeaddress

The getrawchangeaddress returns a new address that can be used to receive change.

This is for use with raw transactions, NOT normal use.

NameTypeDescription
(none)

NameTypeDescription
"address"(string)the address

Command:

./komodo-cli getrawchangeaddress

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getrawchangeaddress", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getreceivedbyaccount "account" ( minconf )

DEPRECATED

The getreceivedbyaccount method returns the total amount received by account in transactions with at least minconf confirmations.

NameTypeDescription
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error
minconf(numeric, optional, default=1)only include transactions confirmed at least this many times

NameTypeDescription
amount(numeric)the total amount received for this account

Command:

./komodo-cli getreceivedbyaccount ""

getreceivedbyaddress "address" ( minconf )

The getreceivedbyaddress method returns the total amount received by the given address in transactions with at least minconf confirmations.

NameTypeDescription
"address"(string, required)the address for transactions
minconf(numeric, optional, default=1)only include transactions confirmed at least this many times

NameTypeDescription
amount(numeric)the total amount of the relevant coin received at this address

Command:

./komodo-cli getreceivedbyaddress "RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN"

Command:

./komodo-cli getreceivedbyaddress "RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN" 0

Command:

./komodo-cli getreceivedbyaddress "RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN" 6

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getreceivedbyaddress", "params": ["RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN", 6] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

gettransaction "txid" ( includeWatchonly )

The gettransaction method queries detailed information about transaction txid. This command applies only to txid's that are in the user's local wallet.

NameTypeDescription
"txid"(string, required)the transaction id
"includeWatchonly"(bool, optional, default=false)whether to include watchonly addresses in the returned balance calculation and in the details[] returned values

NameTypeDescription
"amount"(numeric)the transaction amount
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations (number of blocks on top of this transaction's block)
"blockhash"(string)the block hash
"blockindex"(numeric)the block index
"blocktime"(numeric)the time in seconds since epoch (1 Jan 1970 GMT)
"txid"(string)the transaction id
"time"(numeric)the transaction time in seconds since epoch (1 Jan 1970 GMT)
"timereceived"(numeric)the time received in seconds since epoch (1 Jan 1970 GMT)
"details" : [ ... ](array)
"account"(string)DEPRECATED the account name involved in the transaction; can be "" for the default account
"address"(string)the address involved in the transaction
"category"(string)the category - either send or receive
"amount"(numeric)the amount
"vout"(numeric)the vout value
"vjoinsplit" : [ ... ](array of json objects)
"anchor"(string)merkle root of note commitment tree
"nullifiers" : [ ... ](array of strings)
"hex"(string)
"commitments" : [ ... ](array of strings)
"hex"(string)
"macs" : [ ... ](array of strings)
"hex"(string)
"vpub_old"(numeric)the amount removed from the transparent value pool
"vpub_new"(numeric)the amount added to the transparent value pool
"hex"(string)transaction data translated into hex

Command:

./komodo-cli gettransaction "34efdb82ec718dede04feccecdc44f119cb7263f11c56ec3d7bf6234c9d0e27a"

Command:

./komodo-cli gettransaction "34efdb82ec718dede04feccecdc44f119cb7263f11c56ec3d7bf6234c9d0e27a" true

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "gettransaction", "params": ["34efdb82ec718dede04feccecdc44f119cb7263f11c56ec3d7bf6234c9d0e27a"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getunconfirmedbalance

The getunconfirmedbalance method returns the server's total unconfirmed balance.

NameTypeDescription
(none)

NameTypeDescription
(none)

Command:

./komodo-cli getunconfirmedbalance

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getunconfirmedbalance", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

getwalletinfo

The getwalletinfo method returns an object containing various information about the wallet state.

NameTypeDescription
(none)

NameTypeDescription
"walletversion"(numeric)the wallet version
"balance"(numeric)the total confirmed balance of the wallet
"unconfirmed_balance"(numeric)the total unconfirmed balance of the wallet
"immature_balance"(numeric)the total immature balance of the wallet
"txcount"(numeric)the total number of transactions in the wallet
"keypoololdest"(numeric)the timestamp (seconds since GMT epoch) of the oldest pre-generated key in the key pool
"keypoolsize"(numeric)how many new keys are pre-generated
"unlocked_until"(numeric)the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked
"paytxfee"(numeric)the transaction fee configuration, given as the relevant COIN per KB

Command:

./komodo-cli getwalletinfo

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getwalletinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

importaddress "address" ( "label" rescan )

The importaddress method adds an address or script (in hex) that can be watched as if it were in your wallet, although it cannot be used to spend.

This call can take an increased amount of time to complete if rescan is true.

NameTypeDescription
"address"(string, required)the address to watch
"label"(string, optional, default="")an optional label
rescan(boolean, optional, default=true)rescan the wallet for transactions

NameTypeDescription
(none)

Import an address with rescan:

Command:

./komodo-cli importaddress "RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN"

Command:

./komodo-cli importaddress "RJSDZjp7kjBNhHsbECDE1jwYNK7af41pZN" "testing" false

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "importaddress", "params": ["R9z796AehK5b6NCPeVkGUHSpJnawerf8oP", "testing", false] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

importkey "komodoprivkey" ( "label" rescan )

The importprivkey method adds a private key to your wallet.

This call can take minutes to complete if rescan is true.

See also dumpprivkey.

NameTypeDescription
"privkey"(string, required)the private key (see dumpprivkey)
"label"(string, optional, default="")an optional label
rescan(boolean, optional, default=true)rescan the wallet for transactions
block(integer, optional)block height to rescan from

NameTypeDescription
addresses(string)the public address

Command:

./komodo-cli importprivkey "DONOTUSExxxxxxxxxxxxxxxxxxxxj4Xu9jjinhLpffhdtoKg5gar2"

Command:

./komodo-cli importprivkey "DONOTUSExxxxxxxxxxxxxxxxxxxxj4Xu9jjinhLpffhdtoKg5gar2" "testing" false

Command:

./komodo-cli importprivkey "DONOTUSExxxxxxxxxxxxxxxxxxxxj4Xu9jjinhLpffhdtoKg5gar2" "testing" true 1762762

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "importprivkey", "params": ["UwibHKsYfiM19BXQmcUwAfw331GzGQK8aoPqqYEbyoPrzc2965nE", "testing", false] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

importwallet "filename"

The importwallet method imports transparent-address keys from a wallet-dump file (see dumpwallet).

NameTypeDescription
"filename"(string, required)the wallet file

NameTypeDescription
(none)

Command:

./komodo-cli importwallet "path/to/exportdir/nameofbackup"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "importwallet", "params": ["path/to/exportdir/nameofbackup"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

keypoolrefill ( newsize )

The keypoolrefill method refills the keypool.

NameTypeDescription
newsize(numeric, optional, default=100)the new keypool size

NameTypeDescription
(none)

Command:

./komodo-cli keypoolrefill

Command:

./komodo-cli keypoolrefill 100

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "keypoolrefill", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listaccounts ( minconf includeWatchonly )

DEPRECATED

The listaccounts method returns an object that has account names as keys and account balances as values.

NameTypeDescription
minconf(numeric, optional, default=1)only include transactions with at least this many confirmations
includeWatchonly(bool, optional, default=false)include balances in watchonly addresses (see 'importaddress')

NameTypeDescription
"account_number"(numeric)the property name is the account name, and the value is the total balance for the account

Command:

./komodo-cli listaccounts 6

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listaccounts", "params": [6] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listaddressgroupings

The listaddressgroupings method lists groups of addresses which have had their common ownership made public by common use as inputs or as the resulting change in past transactions.

NameTypeDescription
(none)

NameTypeDescription
"address",(string)the address
amount,(numeric)the amount
"account"(string, optional)(DEPRECATED) the account

Command:

./komodo-cli listaddressgroupings

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listaddressgroupings", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listlockunspent

The listlockunspent method returns a list of temporarily non-spendable outputs.

See the lockunspent call to lock and unlock transactions for spending.

NameTypeDescription
(none)

NameTypeDescription
"txid"(string)the transaction id locked
"vout"(numeric)the vout value

Command:

./komodo-cli listlockunspent

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listlockunspent", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listreceivedbyaccount ( minconf includeempty includeWatchonly )

DEPRECATED

The listreceivedbyaccount method lists balances by account.

NameTypeDescription
minconf(numeric, optional, default=1)the minimum number of confirmations before payments are included
includeempty(boolean, optional, default=false)whether to include accounts that haven't received any payments
includeWatchonly(bool, optional, default=false)whether to include watchonly addresses (see 'importaddress')

NameTypeDescription
"involvesWatchonly"(bool)only returned if the imported addresses were involved in the transaction
"account"(string)the account name of the receiving account
"amount"(numeric)the total amount received by addresses with this account
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations of the most recent transaction included (number of blocks on top of this transaction's block)

Command:

./komodo-cli listreceivedbyaccount

Command:

./komodo-cli listreceivedbyaccount 6 true

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listreceivedbyaccount", "params": [6, true, true] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listreceivedbyaddress ( minconf includeempty includeWatchonly)

The listreceivedbyaddress method lists balances by receiving address.

NameTypeDescription
minconf(numeric, optional, default=1)the minimum number of confirmations before payments are included
includeempty(numeric, optional, default=false)whether to include addresses that haven't received any payments
includeWatchonly(bool, optional, default=false)whether to include watchonly addresses (see 'importaddress')

NameTypeDescription
"involvesWatchonly"(bool)only returned if imported addresses were involved in transaction
"address"(string)the receiving address
"account"(string)DEPRECATED the account of the receiving address; the default account is ""
"amount"(numeric)the total amount received by the address
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations of the most recent transaction included (number of blocks on top of this transaction's block)

Command:

./komodo-cli listreceivedbyaddress

Command:

./komodo-cli listreceivedbyaddress 6 true

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listreceivedbyaddress", "params": [6, true, true] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listsinceblock ( "blockhash" target-confirmations includeWatchonly )

The listsinceblock method queries all transactions in blocks since block blockhash, or all transactions if blockhash is omitted.

NameTypeDescription
"blockhash"(string, optional)the block hash from which to list transactions
target-confirmations(numeric, optional)the confirmations required (must be 1 or more)
includeWatchonly(bool, optional, default=false)include transactions to watchonly addresses (see also 'importaddress')

NameTypeDescription
"transactions":
"account"(string)DEPRECATED the account name associated with the transaction; will be "" for the default account
"address"(string)the address of the transaction (not present for move transactions -- category = move)
"category"(string)the transaction category; send has negative amounts, receive has positive amounts
"amount"(numeric)the amount of the relevant currency -- negative for the send category, and for the move category for moves outbound. It is positive for the receive category, and for the move category for inbound funds.
"vout"(numeric)the vout value
"fee"(numeric)the amount of the fee; this value is negative and only available for the send category of transactions
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations of the transaction; available for send and receive category of transactions (number of blocks on top of this transaction's block)
"blockhash"(string)the block hash containing the transaction; available for the send and receive categories of transactions
"blockindex"(numeric)the block index containing the transaction; available for the send and receive categories of transactions
"blocktime"(numeric)the block time in seconds since epoch (1 Jan 1970 GMT)
"txid"(string)the transaction id; available for send and receive categories of transactions
"time"(numeric)the transaction time in seconds since epoch (Jan 1 1970 GMT)
"timereceived"(numeric)the time received in seconds since epoch (Jan 1 1970 GMT); available for send and receive category of transactions
"comment"(string)whether a comment is associated with the transaction
"to"(string)whether a 'to' comment is associated with the transaction
"lastblock"(string)the hash of the last block

Command:

./komodo-cli listsinceblock

Command:

./komodo-cli listsinceblock "029f11d80ef9765602235e1bc9727e3eb6ba20839319f761fee920d63401e327" 6

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listsinceblock", "params": ["029f11d80ef9765602235e1bc9727e3eb6ba20839319f761fee920d63401e327", 6] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listtransactions ( "account" count from includeWatchonly )

The listtransactions method returns up to count most recent transactions skipping the first from transactions for account.

NameTypeDescription
"account"(string, optional)DEPRECATED the account name; should be "*"
count(numeric, optional, default=10)the number of transactions to return
from(numeric, optional, default=0)the number of transactions to skip
includeWatchonly(bool, optional, default=false)include transactions to watchonly addresses (see importaddress)

NameTypeDescription
"account"(string)DEPRECATED the account name associated with the transaction; it will be "" for the default account
"address"(string)the address of the transaction; not present for move transactions (category = move)
"category"(string)The transaction category. This property can be sendreceivemove. move is a local (off blockchain) transaction between accounts -- not associated with an address, transaction id, or block. send and receive transactions are associated with an address, transaction id, and block details.
"amount"(numeric)The amount. This value is negative for the send category, and for the move category for moves outbound. It is positive for the receive category and for the move category for inbound funds.
"vout"(numeric)the vout value
"fee"(numeric)the amount of the fee; this is negative and only available for the send category of transactions
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations of the transaction; available for send and receive category of transactions (number of blocks on top of this transaction's block)
"blockhash"(string)the block hash containing the transaction; available for the send and receive categories of transactions
"blockindex"(numeric)the block index containing the transaction; available for the send and receive categories of transactions
"txid"(string)the transaction id; available for the send and receive categories of transactions
"time"(numeric)the transaction time in seconds since epoch (midnight Jan 1 1970 GMT)
"timereceived"(numeric)the time received in seconds since epoch (midnight Jan 1 1970 GMT); available for the send and receive categories of transactions
"comment"(string)whether a comment is associated with the transaction
"otheraccount"(string)for the move category of transactions; indicates the account which sent the funds (for receiving funds, positive amounts), or went to (for sending funds, negative amounts)
"size"(numeric)transaction size in bytes

Command:

./komodo-cli listtransactions

Command:

./komodo-cli listtransactions "*" 20 100

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listtransactions", "params": ["*", 20, 100] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

listunspent ( minconf maxconf ["address", ... ] )

The listunspent method returns an array of unspent transaction outputs, with a range between minconf and maxconf (inclusive) confirmations. The method can, optionally, filter to only include txouts paid to specified addresses.

NameTypeDescription
minconf(numeric, optional, default=1)the minimum confirmations to filter
maxconf(numeric, optional, default=9999999)the maximum confirmations to filter
"address"(string)a series of addresses

NameTypeDescription
"txid"(string)the transaction id
"vout"(numeric)the vout value
"generated"(boolean)true if txout is a coinbase transaction output
"address"(string)the address
"account"(string)DEPRECATED the associated account, or "" for the default account
"scriptPubKey"(string)the script key
"amount"(numeric)the transaction amount
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations (number of blocks on top of this transaction's block)

Command:

./komodo-cli listunspent

Command:

./komodo-cli listunspent 6 9999999 '["RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu","RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ"]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listunspent", "params": [6, 9999999, ["RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu","RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ"]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

lockunspent unlock [{ "txid": "txid", "vout": n }, ... ]

The lockunspent method locks (unlock = false) or unlocks (unlock = true) specified transaction outputs. A locked transaction output will not be chosen by automatic coin selection, when spending the relevant coin. The locks are stored in memory only; at runtime a node always starts with zero locked outputs, and the locked output list is always cleared when a node stops or fails.

See the listunspent and listlockunspent calls to determine local transaction state and info.

NameTypeDescription
unlock(boolean, required)whether to unlock (true) or lock (false) the specified transactions
"txid"(string)the transaction id
"vout"(numeric)the output number

NameTypeDescription
true/false(boolean)whether the command was successful

Command:

./komodo-cli lockunspent false '[{"txid":"d7ba45296c66e16eb61f27a4eef8848c7f5579fe801f277c1b0e074a4f47d6fd","vout":0}]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "lockunspent", "params": [false, [{"txid":"d7ba45296c66e16eb61f27a4eef8848c7f5579fe801f277c1b0e074a4f47d6fd","vout":0}]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

move "fromaccount" "toaccount" amount ( minconf "comment" )

DEPRECATED

The move method moves a specified amount from one account in your wallet to another.

NameTypeDescription
"fromaccount"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error
"toaccount"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error
amount(numeric)the quantity to move between accounts
minconf(numeric, optional, default=1)only use funds with at least this many confirmations
"comment"(string, optional)an optional comment, stored in the wallet only

NameTypeDescription
true/false(boolean)true if successful

Command:

./komodo-cli move "" "tabby" 0.01

Command:

./komodo-cli move "timotei" "akiko" 0.01 6 "happy birthday!"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "move", "params": ["timotei", "akiko", 0.01, 6, "happy birthday!"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

resendwallettransactions

The resendwallettransactions method immediately re-broadcasts unconfirmed wallet transactions to all peers. This method is intended only for testing; the wallet code periodically re-broadcasts automatically.

NameTypeDescription
(none)

NameTypeDescription
"transaction_id"(string)an array of the rebroadcasted transaction id's

Command:

./komodo-cli resendwallettransactions

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "resendwallettransactions", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

sendfrom "account" "address" amount ( minconf "comment" "comment-to" )

DEPRECATED: Use sendtoaddress instead.

The sendfrom method sends an amount from account to address.

NameTypeDescription
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error
"address"(string, required)the address to receive funds
amount(numeric, required)the amount (transaction fee not included)
minconf(numeric, optional, default=1)only use funds with at least this many confirmations
"comment"(string, optional)a comment used to store what the transaction is for; this is not part of the transaction, just kept in your wallet
"comment-to"(string, optional)an optional comment to store the name of the person or organization to which you're sending the transaction; this is not part of the transaction, it is only kept in your wallet

NameTypeDescription
"transaction_id"(string)the transaction id

Command:

./komodo-cli sendfrom "" "RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu" 0.01

Command:

./komodo-cli sendfrom "tabby" "RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu" 0.01 6 "donation" "seans outpost"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendfrom", "params": ["tabby", "RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu", 0.01, 6, "donation", "seans outpost"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

sendmany "account" { "address": amount, ... } ( minconf "comment" [ "address", ... ] )

The sendmany method can send multiple transactions at once. Amounts are double-precision floating point numbers.

NameTypeDescription
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error
"amounts" { "address":amount, ... }("string":numeric)the address (string) and the value (double-precision floating numeric)
minconf(numeric, optional, default=1)only use the balance confirmed at least this many times
"comment"(string, optional)a comment
subtractfeefromamount(string, optional)a json array with addresses. The fee will be equally deducted from the amount of each selected address; the recipients will receive less than you enter in their corresponding amount field. If no addresses are specified here, the sender pays the fee.
"address"(string)subtract fee from this address

NameTypeDescription
"transaction_id"(string)the transaction id for the send; only 1 transaction is created regardless of the number of addresses

Command:

./komodo-cli sendmany "" '{"RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ":0.01,"RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu":0.02}'

Command:

./komodo-cli sendmany "" '{"RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ":0.01,"RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu":0.02}' 6 "testing"

Command:

./komodo-cli sendmany "" '{"RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ":0.01,"RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu":0.02}' 1 "" '["RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ","RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu"]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendmany", "params": ["", {"RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ":0.01,"RPS3xTZCzr6aQfoMw5Bu1rpQBF6iVCWsyu":0.02}, 6, "testing"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

sendtoaddress "address" amount ( "comment" "comment-to" subtractfeefromamount)

The sendtoaddress method sends an amount to a given address. The amount is real and is rounded to the nearest 0.00000001.

NameTypeDescription
"komodoaddress"(string, required)the receiving address
"amount"(numeric, required)the amount to send (json requires all decimals values less than 1 begin with the characters '0.')
"comment"(string, optional)a comment used to store what the transaction is for; this is not part of the transaction, just kept in your wallet
"comment-to"(string, optional)a comment to store the name of the person or organization to which you're sending the transaction; this is stored in your local wallet file only
subtractfeefromamount(boolean, optional, default=false)when true, the fee will be deducted from the amount being sent

NameTypeDescription
"transaction_id"(string)the transaction id

Command:

./komodo-cli sendtoaddress "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" 0.1

Command:

./komodo-cli sendtoaddress "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" 0.1 "donation" "seans outpost"

Command:

./komodo-cli sendtoaddress "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" 0.1 "" "" true

Command:

./komodo-cli sendtoaddress "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" 0.1 "" "" false "c5727cafd7d6dfc888d4a0596dc58bfafb24859e29f827e1bf1443037d8461fc"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendtoaddress", "params": ["RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ", 0.1, "donation", "seans outpost"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

setaccount "address" "account"

Notice DEPRECATED

The setaccount method sets the account associated with the given address.

NameTypeDescription
"address"(string, required)the address to be associated with an account
"account"(string, required)MUST be set to the empty string "" to represent the default account; passing any other string will result in an error

Command:

./komodo-cli setaccount "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" "tabby"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "setaccount", "params": ["RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ", "tabby"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

setpubkey pubkey

The setpubkey method sets the indicated pubkey. This method can be used in place of the pubkey launch parameter, when necessary.

Visit the section pubkey to understand when it is essential to set a pubkey and the consequences of setting it.

This method works only once per daemon start. It can't be used to change the pubkey that has already been set.

NameTypeDescription
pubkey(string)the desired pubkey

NameTypeDescription
pubkey(string)the pubkey
ismine(boolean)indicates whether the address belongs to the user
R-address(string)the public address associated with the pubkey

Command:

./komodo-cli setpubkey 0260801166cebdc9be1e3460ba9e4959fb29feee7725f565ffc296fa4636aa706f

You can find the rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user myrpuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "setpubkey", "params": ["02f7597468703c1c5c8465dd6d43acaae697df9df30bed21494d193412a1ea193e"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

settxfee amount

The settxfee method sets the transaction fee per kB.

NameTypeDescription
amount(numeric, required)the transaction fee in COIN/kB rounded to the nearest 0.00000001

NameTypeDescription
true/false(boolean)returns true if successful

Command:

./komodo-cli settxfee 0.00001

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "settxfee", "params": [0.00001] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

signmessage "address" "message"

The signmessage method signs a message via the private key of an address.

NameTypeDescription
"address"(string, required)the address to use for the private key
"message"(string, required)the message

NameTypeDescription
"signature"(string)the signature of the message encoded in base 64

Create the signature:

Command:

./komodo-cli signmessage "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" "my message"

Verify the signature:

Command:

./komodo-cli verifymessage "RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ" "H1y0mn/wRv56r1bcfkbQtzjG6XeWSelAsyayBuCwEL9XGXs7ieU55dryt/cFWM9gnRFI7gS01AByuSqRs+o/AZs=" "my message"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "signmessage", "params": ["RBtNBJjWKVKPFG4To5Yce9TWWmc2AenzfZ", "my message"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

walletlock

The walletlock method is neither active nor visible in the help method until the encryptwallet passphrase is set.

This feature is available only on chains where -ac_public is enabled. Chains that feature private transactions cannot use this feature.

The walletlock method re-locks a wallet that has a passphrase enabled via encryptwallet.

NameTypeDescription
(none)

NameTypeDescription
(none)

Command:

./komodo-cli walletlock

walletpassphrase "passphrase" (timeout)

The walletpassphrase method is neither active nor visible in the help method until the encryptwallet passphrase is set.

This feature is available only on chains where -ac_public is enabled. Chains that feature private transactions cannot use this feature.

The walletpassphrase method unlocks the wallet using the passphrase that was set by the encryptwallet method.

The timeout argument can be included to limit the length of time (in seconds) the wallet will remain unlocked.

NameTypeDescription
"passphrase"(string)the passphrase that was set by the encryptwallet method
timeout(number in seconds, optional)the amount of time for which the wallet should remember the passphrase

NameTypeDescription
(none)

Command:

./komodo-cli walletpassphrase

walletpassphrasechange "oldpassphrase" "newpassphrase"

The walletpassphrasechange method is neither active nor visible in the help method until the encryptwallet passphrase is set.

This feature is available only on chains where -ac_public is enabled. Chains that feature private transactions cannot use this feature.

The walletpassphrasechange method changes "oldpassphrase" to "newpassphrase".

NameTypeDescription
"oldpassphrase"(string)the old passphrase
"newpassphrase"(string)the new passphrase

NameTypeDescription
(none)

Command:

./komodo-cli walletpassphrasechange "oldpassphrase" "newpassphrase"

z_exportkey "z_address"

The z_exportkey method reveals the private z_key corresponding to z_address.

See also z_importkey.

NameTypeDescription
"z_address"(string, required)the z_address for the private key

NameTypeDescription
"key"(string)the private key

Command:

./komodo-cli z_exportkey "ztffWAUUY9PnLiBVXY2pnX67kfm71SevtPC5d9LLM3xZqehy4XxV1FeyxPWcHGTiCd7GtQ17gk5jDTQxhHB13K1A7HT6hZH"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_exportkey", "params": ["ztffWAUUY9PnLiBVXY2pnX67kfm71SevtPC5d9LLM3xZqehy4XxV1FeyxPWcHGTiCd7GtQ17gk5jDTQxhHB13K1A7HT6hZH"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_exportviewingkey "z_address"

The z_exportviewingkey method reveals the viewing key corresponding to z_address.

See also z_importviewingkey.

NameTypeDescription
"z_address"(string, required)the z_address for the viewing key

NameTypeDescription
"vkey"(string)the viewing key

Command:

./komodo-cli z_exportviewingkey "ztffWAUUY9PnLiBVXY2pnX67kfm71SevtPC5d9LLM3xZqehy4XxV1FeyxPWcHGTiCd7GtQ17gk5jDTQxhHB13K1A7HT6hZH"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_exportviewingkey", "params": ["ztffWAUUY9PnLiBVXY2pnX67kfm71SevtPC5d9LLM3xZqehy4XxV1FeyxPWcHGTiCd7GtQ17gk5jDTQxhHB13K1A7HT6hZH"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_exportwallet "filename"

The z_exportwallet method exports all wallet keys, including both t address and z address types, in a human-readable format. Overwriting an existing file is not permitted.

NameTypeDescription
"filename"(string, required)the filename, saved to the directory indicated by the exportdir parameter at daemon runtime (required)

NameTypeDescription
"path"(string)the full path of the destination file

Command:

./komodo-cli z_exportwallet "test"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_exportwallet", "params": ["test"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_getbalance "address" ( minconf )

The z_getbalance method returns the balance of a t address or z address belonging to the node’s wallet.

CAUTION: If address is a watch-only z address, the returned balance may be larger than the actual balance, as spends cannot be detected with incoming viewing keys.

NameTypeDescription
"address"(string)the selected z or t address
minconf(numeric, optional, default=1)only include transactions confirmed at least this many times

NameTypeDescription
amount(numeric)the total amount received at this address (in the relevant COIN value)

The total amount received by address "myaddress" at least 5 blocks confirmed

Command:

./komodo-cli z_getbalance "ztfF6SFBfq2qha73dAgsXnL86F8air32CXKxJg8aYtEPJFdLcw4y3zWzBasocnx1V9GLnnFeKnkPvkScjNkQBfWn2kBDmkn"

Command:

./komodo-cli z_getbalance "ztfF6SFBfq2qha73dAgsXnL86F8air32CXKxJg8aYtEPJFdLcw4y3zWzBasocnx1V9GLnnFeKnkPvkScjNkQBfWn2kBDmkn" 5

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_getbalance", "params": ["ztfF6SFBfq2qha73dAgsXnL86F8air32CXKxJg8aYtEPJFdLcw4y3zWzBasocnx1V9GLnnFeKnkPvkScjNkQBfWn2kBDmkn", 5] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_getnewaddress

The z_getnewaddress method returns a new z_address for receiving payments.

NameTypeDescription
(none)

NameTypeDescription
"z_address"(string)the new z_address

Command:

./komodo-cli z_getnewaddress

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_getnewaddress", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_getoperationresult ([ "operationid", ... ])

The z_getoperationresult method retrieves the result and status of an operation which has finished, and then removes the operation from memory.

See also z_getoperationstatus.

NameTypeDescription
"operationid"(string, optional)a list of operation ids to query; if not provided, the method examines all operations known to the node

NameTypeDescription
"id"(string)the operation id
"status"(string)the result of the operation; can be successfailedexecuting
"creation_time"(numeric)the creation time, in seconds since epoch (Jan 1 1970 GMT)
"result": { ... }(array of json objects)
"txid":(string)the transaction id
"execution_secs"(numeric)the length of time to calculate the transaction
"method"(string)the name of the method used in the operation
"params": { ... }(json)
"fromaddress"(string)the address from which funds are drawn
"amounts": [ ... ](array of json objects)
"address"(string)the receiving address
"amount"(numeric)the amount to receive
"minconf"(numeric)the minimum number of confirmations required
"fee"(numeric)the transaction fee

Command:

./komodo-cli z_getoperationresult '["opid-6e581ee5-4e90-4e70-8961-f95d8d28748c"]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_getoperationresult", "params": [["opid-6a9da0dd-a950-4d95-848c-d3c18e44be03"]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_getoperationstatus ([ "operationid", ... ])

The z_getoperationstatus message queries the operation status and any associated result or error data of any operationid stored in local memory. The operation will remain in memory (unlike z_getoperationresult, which removes the data from the local memory).

NameTypeDescription
"operationid"(array, optional)a list of operation ids we are interested in; if an array is not provided, the method examines all operations known to the node

NameTypeDescription
"id"(string)the operation id
"status"(string)the status of the operation; can be successexecutingfailed
"creation_time"(numeric)the creation time, in seconds since epoch (Jan 1 1970 GMT)
"error" : { ... }(array of json objects)
"code"(numeric)the associated error code
"message"(string)a message to indicate the nature of the error, if such a message is available
"method"(string)the name of the method used in the operation
"params" : { ... }(array of json objects)
"fromaddress"(string)the address from which funds are drawn
"amounts": [ ... ](array of json objects)
"address"(string)the receiving address
"amount"(numeric)the amount to receive
"minconf"(numeric)indicates the required number of mining confirmations
"fee"(numeric)the fee

Command:

./komodo-cli z_getoperationstatus

Command:

./komodo-cli z_getoperationstatus '["opid-47e12224-8477-4cd4-852d-d8c3ddbc6375"]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_getoperationstatus", "params": [["opid-47e12224-8477-4cd4-852d-d8c3ddbc6375"]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_gettotalbalance ( minconf includeWatchonly )

The z_gettotalbalance method returns the total value of funds, including both transparent and private, stored in the node’s wallet.

CAUTION: If the wallet contains watch-only z addresses the returned private balance may be larger than the actual balance, as spends cannot be detected with incoming viewing keys.

While the interest property is returned for all KMD-based coin daemons, only the main KMD chain utilizes the interest feature. KMD-based Smart Chains will always return a 0.00 interest value.

NameTypeDescription
minconf(numeric, optional, default=1)only include private and transparent transactions confirmed at least this many times
includeWatchonly(bool, optional, default=false)also include balance in watchonly addresses (see 'importaddress' and 'z_importviewingkey')

NameTypeDescription
"transparent"(numeric)the total balance of transparent funds
"interest"(numeric)the total balance of unclaimed interest earned
"private"(numeric)the total balance of private funds
"total"(numeric)the total balance of both transparent and private funds

Command:

./komodo-cli z_gettotalbalance

Command:

./komodo-cli z_gettotalbalance 5

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_gettotalbalance", "params": [5] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_importkey "z_privatekey" ( rescan startHeight )

The z_importkey method imports z_privatekey to your wallet.

This call can take minutes to complete if rescan is true.

The optional parameters are currently not functional with KMD-based blockchains.

See also z_exportkey.

NameTypeDescription
"z_privatekey"(string, required)the z_privatekey (see z_exportkey)
rescan(string, optional, default="whenkeyisnew")rescan the wallet for transactions; can be yesnowhenkeyisnew
startHeight(numeric, optional, default=0)the block height at which to begin the rescan

NameTypeDescription
(none)

Command:

./komodo-cli z_importkey DONOTUSExxxxxxxxxxxxxxxxBP6ipkmBxmEQbugcCQ16vUaWGFK

Command:

./komodo-cli z_importkey DONOTUSExxxxxxxxxxxxxxxxBP6ipkmBxmEQbugcCQ16vUaWGFK whenkeyisnew 30000

Command:

./komodo-cli z_importkey DONOTUSExxxxxxxxxxxxxxxxBP6ipkmBxmEQbugcCQ16vUaWGFK yes 20000

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_importkey", "params": ["DONOTUSExxxxxxxxxxxxxxxxBP6ipkmBxmEQbugcCQ16vUaWGFK", "no"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_importviewingkey "viewing_key" ( rescan startHeight )

The z_importviewingkey adds a viewing key to your wallet. This method allows you to view the balance in a z address that otherwise does not belong to your wallet.

See also z_exportviewingkey.

This call can take minutes to complete if rescan is true.

The optional parameters are currently not functional for KMD-based blockchains.

NameTypeDescription
"viewing_key"(string, required)the viewing key
rescan(string, optional, default="whenkeyisnew")whether to rescan the wallet for transactions; can be "yes""no""whenkeyisnew"
startHeight(numeric, optional, default=0)block height to start rescan

NameTypeDescription
(none)

Command:

./komodo-cli z_importviewingkey "ZiVtfYkeyRY3y8Wykm5zjLcnssEkVrkej6j3kQ5B1AE2qp2F3VsKzpoXTzD82hrvMjWB9WxCHbXXrXax2ceyHLWrnQDaMrMja"

Command:

./komodo-cli z_importviewingkey "ZiVtfYkeyRY3y8Wykm5zjLcnssEkVrkej6j3kQ5B1AE2qp2F3VsKzpoXTzD82hrvMjWB9WxCHbXXrXax2ceyHLWrnQDaMrMja" no

Command:

./komodo-cli z_importviewingkey "ZiVtfYkeyRY3y8Wykm5zjLcnssEkVrkej6j3kQ5B1AE2qp2F3VsKzpoXTzD82hrvMjWB9WxCHbXXrXax2ceyHLWrnQDaMrMja" whenkeyisnew 30000

Command:

./komodo-cli z_importviewingkey "ZiVtfYkeyRY3y8Wykm5zjLcnssEkVrkej6j3kQ5B1AE2qp2F3VsKzpoXTzD82hrvMjWB9WxCHbXXrXax2ceyHLWrnQDaMrMja" yes 20000

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_importviewingkey", "params": ["ZiVtfYkeyRY3y8Wykm5zjLcnssEkVrkej6j3kQ5B1AE2qp2F3VsKzpoXTzD82hrvMjWB9WxCHbXXrXax2ceyHLWrnQDaMrMja", "no"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_importwallet "filename"

The z_importwallet method imports t address and z address keys from a wallet export file.

See also z_exportwallet.

NameTypeDescription
"filename"(string, required)the wallet file

NameTypeDescription
(none)

Command:

./komodo-cli z_importwallet "/mydirectory/nameofbackup"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_importwallet", "params": ["/mydirectory/nameofbackup"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_listaddresses ( includeWatchonly )

The z_listaddresses method returns the list of z addresses belonging to the wallet.

See also z_importviewingkey.

NameTypeDescription
includeWatchonly(bool, optional, default=false)also include watchonly addresses

NameTypeDescription
"z_address"(string)a z address belonging to the wallet

Command:

./komodo-cli z_listaddresses

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_listaddresses", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_listoperationids

The z_listoperationids method returns the list of operation ids currently known to the wallet.

NameTypeDescription
"status"(string, optional)filter result by the operation's state e.g. "success"

NameTypeDescription
"operationid"(string)an operation id belonging to the wallet

Command:

./komodo-cli z_listoperationids

Command:

./komodo-cli z_listoperationids "success"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_listoperationids", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_listreceivedbyaddress "address" ( minconf )

The z_listreceivedbyaddress method returns a list of amounts received by a z address belonging to the node’s wallet.

NameTypeDescription
address(string)the private address.
minconf(numeric, optional, default=1)only include transactions confirmed at least this many times

An array of json objects, each having the properties below.

NameTypeDescription
txid(string)the transaction id
amount(numeric)the amount of value in the note
memo(string)hexadecimal string representation of memo field
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations (number of blocks on top of this transaction's block)
jsindex(sprout)(numeric, received only by sprout addresses) the joinsplit index
jsoutindex(numeric, received only by sprout addresses)the output index of the joinsplit
outindex(numeric, sapling)the output index
change(boolean)true if the address that received the note is also one of the sending addresses

Command:

./komodo-cli z_listreceivedbyaddress "zs1wqykmk74mv2ezjscpxsgzrn4fasqwh50tgk0ym64m45c5yw5fjtpkps64gle963veqzuj04872z"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user rpcuser:rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_listreceivedbyaddress", "params": ["zs1umhaattx6lna933m9zwfqlmkm2qj49hpa9lnymtj5h5c7cwtd3evfpu29hppprax9cs45fzeyqg"] }' -H 'content-type: text/plain;' http://127.0.0.1:rpcport/

z_listunspent ( minconf maxconf includeWatchonly ["zaddr", ...] )

The z_listunspent method returns an array of unspent shielded notes.

The method can also filter to only include results that have between minconf and maxconf (inclusive) confirmations, and also for specified z_addresses (["zaddr", ...]).

When minconf is 0 unspent notes with zero confirmations are returned, even though they are not immediately spendable.

Results are an array of Objects, each of which has: {txid, jsindex, jsoutindex, confirmations, address, amount, memo} (Sprout) {txid, outindex, confirmations, address, amount, memo} (Sapling)

NameTypeDescription
minconf(numeric, optional, default=1)the minimum confirmations to filter
maxconf(numeric, optional, default=9999999)the maximum confirmations to filter
includeWatchonly(bool, optional, default=false)whether to also include watchonly addresses (see z_importviewingkey)
addresses(array)a json array of z addresses (both Sprout and Sapling) to act as a filter; duplicate addresses are not allowed
address(string)a z address

An array of json objects, each having the properties below.

NameTypeDescription
txid(string)the transaction id
jsindex(numeric)the joinsplit index
jsoutindex(numeric, only returned on sprout addresses)the output index of the joinsplit
outindex(numeric, only returned on sapling addresses)the output index
"confirmations"(numeric)a confirmation number that is aware of the dPoW security service
"rawconfirmations"(numeric)the raw confirmations (number of blocks on top of this transaction's block)
spendable(boolean)true if note can be spent by wallet, false if note has zero confirmations, false if address is watchonly
address(string)the shielded address
amount(numeric)the amount of value in the note
memo(string)hexadecimal string representation of memo field
change(boolean)true if the address that received the note is also one of the sending addresses

Command:

./komodo-cli z_listunspent

Command:

./komodo-cli -ac_name=BEER z_listunspent 1 100 false "[\"zs1wqykmk74mv2ezjscpxsgzrn4fasqwh50tgk0ym64m45c5yw5fjtpkps64gle963veqzuj04872z\"]"

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user rpcuser:rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_listunspent", "params": [1, 9999999, false, ["zs1umhaattx6lna933m9zwfqlmkm2qj49hpa9lnymtj5h5c7cwtd3evfpu29hppprax9cs45fzeyqg"] ] }' -H 'content-type: text/plain;' http://127.0.0.1:rpcport/

z_mergetoaddress [ "fromaddress", ... ] "toaddress" ( fee ) ( transparent_limit ) ( shielded_limit ) ( memo )

CAUTION: z_mergetoaddress is DISABLED but can be enabled as an experimental feature.

The z_mergetoaddress method merges multiple utxos and notes into a single utxo or note. The method works for both t addresses and z addresses, both separately and in combination. Coinbase utxos are ignored; use z_shieldcoinbase to combine those into a single note.

This is an asynchronous operation, and utxos selected for merging will be locked. If there is an error, they are unlocked. The RPC call listlockunspent can be used to return a list of locked utxos.

The number of utxos and notes selected for merging can be limited by the caller. If the transparent limit parameter is set to 0, the mempooltxinputlimit option will determine the number of utxos. Any limit is constrained by the consensus rule defining a maximum transaction size of 100000 bytes.

The following special strings are accepted inside the fromaddresses array:

  • "*": Merge both utxos and notes from all addresses belonging to the wallet

  • "ANY_TADDR": Merge utxos from all t addresses belonging to the wallet

  • "ANY_ZADDR": Merge notes from all z addresses belonging to the wallet

If a special string is given, any given addresses of that type will be ignored

NameTypeDescription
fromaddresses(string, required)
"address"(string)can be a t address or a z address
"toaddress"(string, required)the t address or z address to receive the combined utxo
fee(numeric, optional, default=0.0001)the fee amount to attach to this transaction
transparent_limit(numeric, optional, default=50)limit on the maximum number of transparent utxos to merge; you may set this value to 0 to use the node option mempooltxinputlimit
shielded_limit(numeric, optional, default=10)limit on the maximum number of hidden notes to merge; you may set this value to 0 to merge as many as will fit in the transaction
"memo"(string, optional)encoded as hex; when toaddress is a z address, this value will be stored in the memo field of the new note

NameTypeDescription
"remainingUTXOs"(numeric)the number of utxos still available for merging
"remainingTransparentValue"(numeric)the value of utxos still available for merging
"remainingNotes"(numeric)the number of notes still available for merging
"remainingShieldedValue"(numeric)the value of notes still available for merging
"mergingUTXOs"(numeric)the number of utxos being merged
"mergingTransparentValue"(numeric)the value of utxos being merged
"mergingNotes"(numeric)the number of notes being merged
"mergingShieldedValue"(numeric)the value of notes being merged
"opid"(string)an operationid to pass to z_getoperationstatus to get the result of the operation

Command:

./komodo-cli z_mergetoaddress '["R1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd"]' ztfaW34Gj9FrnGUEf833ywDVL62NWXBM81u6EQnM6VR45eYnXhwztecW1SjxA7JrmAXKJhxhj3vDNEpVCQoSvVoSpmbhtjf

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_mergetoaddress", "params": [["R1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd"], "ztfaW34Gj9FrnGUEf833ywDVL62NWXBM81u6EQnM6VR45eYnXhwztecW1SjxA7JrmAXKJhxhj3vDNEpVCQoSvVoSpmbhtjf"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_sendmany "fromaddress" [ { "address": ..., "amount": ... }, ... ] ( minconf ) ( fee )

The z_sendmany method sends one or more transactions at once, and allows for sending transactions of types t --> t, t --> z, z --> z, z --> t. It is the principle method for dealing with shielded z transactions in the Komodo ecosystem.

The amount values are double-precision floating point numbers. Change from a t address flows to a new t address address, while change from z address returns to itself. When sending coinbase utxos to a z address, change is not allowed. The entire value of the utxo(s) must be consumed. Currently, the maximum number of z address outputs is 54 due to transaction-size limits.

NameTypeDescription
"fromaddress"(string, required)the sending t address or z address
"amounts"(array of json objects)
"address"(string, required)the receiving address; can be a t address or z address
"amount"(numeric, required)the numeric amount
"memo"(string, optional)if the address is a z address, this property accepts raw data represented in hexadecimal string format
minconf(numeric, optional, default=1)only use funds confirmed at least this many times
fee(numeric, optional, default=0.0001)the fee amount to attach to this transaction

NameTypeDescription
"operationid"(string)an operationid to pass to z_getoperationstatus to get the result of the operation

Command:

./komodo-cli z_sendmany "RUX5vGkxJCKBPGm8b97VUumt2aHkuCjp8e" '[{"address":"RVEsww91UBdUNGyCC1GjDVuvJShEei2kj4","amount":0.01}]'

Command:

./komodo-cli z_sendmany "RCpMUZwxc3pWsgip5aj3Sy1cKkh86P3Tns" '[{"address":"ztci8RzNSo2pdiDpAeHpz9Rp91hq12Mn7zcFfBR8Jjs2ydZUCTw8rLZzkVP888M4vGezpZVfsTR8orgxYK3N8gdgbBzakx3","amount":0.01}]'

Command:

./komodo-cli z_sendmany "ztci8RzNSo2pdiDpAeHpz9Rp91hq12Mn7zcFfBR8Jjs2ydZUCTw8rLZzkVP888M4vGezpZVfsTR8orgxYK3N8gdgbBzakx3" '[{"address":"ztYMDvwUqi5FZLQy4so71ZGHXk2fDtEYU9HNns9DNYjXJr9PEzSL8Dq8NcdiRijsgCm4r3nNWA6dUrqW9suGd2F7uuj2BhP","amount":0.0099}]'

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_sendmany", "params": ["RCpMUZwxc3pWsgip5aj3Sy1cKkh86P3Tns", [{"address": "ztfaW34Gj9FrnGUEf833ywDVL62NWXBM81u6EQnM6VR45eYnXhwztecW1SjxA7JrmAXKJhxhj3vDNEpVCQoSvVoSpmbhtjf" ,"amount": 0.01}]] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

z_shieldcoinbase "fromaddress" "tozaddress" ( fee ) ( limit )

The z_shieldcoinbase method shields transparent coinbase funds by sending the funds to a shielded z address. This is an asynchronous operation and utxos selected for shielding will be locked. If there is an error, they are unlocked.

The RPC call listlockunspent can be used to return a list of locked utxos. The number of coinbase utxos selected for shielding can be limited by the caller. If the limit parameter is set to zero, the mempooltxinputlimit option will determine the number of uxtos. Any limit is constrained by the consensus rule defining a maximum transaction size of 100000 bytes.

NameTypeDescription
"fromaddress"(string, required)the address is a t address or "*" for all t address belonging to the wallet
"toaddress"(string, required)the address is a z address
fee(numeric, optional, default=0.0001)the fee amount to attach to this transaction
limit(numeric, optional, default=50)limit on the maximum number of utxos to shield; set to 0 to use node option mempooltxinputlimit

NameTypeDescription
"remainingUTXOs"(numeric)the number of coinbase utxos still available for shielding
"remainingValue"(numeric)the value of coinbase utxos still available for shielding
"shieldingUTXOs"(numeric)the number of coinbase utxos being shielded
"shieldingValue"(numeric)the value of coinbase utxos being shielded
"opid"(string)an operationid to pass to z_getoperationstatus to get the result of the operation

Command:

./komodo-cli z_shieldcoinbase "RXN2rxidK4cwzRL44UTnWvQjjvLdoMmCpU" "ztYMDvwUqi5FZLQy4so71ZGHXk2fDtEYU9HNns9DNYjXJr9PEzSL8Dq8NcdiRijsgCm4r3nNWA6dUrqW9suGd2F7uuj2BhP"

Command:

./komodo-cli z_shieldcoinbase "REyaj53EB2nwUnsmVyn8JHCcquKf1zYkEP" "ztYMDvwUqi5FZLQy4so71ZGHXk2fDtEYU9HNns9DNYjXJr9PEzSL8Dq8NcdiRijsgCm4r3nNWA6dUrqW9suGd2F7uuj2BhP" 0.0001 50

You can find your rpcuser, rpcpassword, and rpcport in the coin's .conf file.

Command:

curl --user $rpcuser:$rpcpassword --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "z_shieldcoinbase", "params": ["RWRSfEYcfLv3yy9mhAuKHQTMCs9fArpPiH", "ztYMDvwUqi5FZLQy4so71ZGHXk2fDtEYU9HNns9DNYjXJr9PEzSL8Dq8NcdiRijsgCm4r3nNWA6dUrqW9suGd2F7uuj2BhP"] }' -H 'content-type: text/plain;' http://127.0.0.1:$rpcport/

zcbenchmark benchmarktype samplecount

The zcbenchmark method runs a benchmark of the selected benchmarktype. This benchmark is calculated samplecount times.

When finished, the method returns the running times of each sample.

NameTypeDescription
"benchmarktype"(string, required)the type of the benchmark
"samplecount"(numeric)the number of samples to take

NameTypeDescription
"runningtime"(numeric)the time it took to run the selected benchmarktype

Output:

[
  {
    "runningtime": runningtime
  },
  {
    "runningtime": runningtime
  }
  ...
]

zcrawjoinsplit rawtx inputs outputs vpub_old vpub_new

DEPRECATED.
  • inputs: a JSON object mapping {note: zcsecretkey, ...}
  • outputs: a JSON object mapping {zcaddr: value, ...}

Splices a joinsplit into a raw transaction. Inputs are unilaterally confidential. Outputs are confidential between sender/receiver. The vpub_old and vpub_new values are globally public and move transparent value into or out of the confidential value store, respectively.

Note: The caller is responsible for delivering the output enc1 and enc2 to the appropriate recipients, as well as signing rawtxout and ensuring it is mined. (A future RPC call will deliver the confidential payments in-band on the blockchain.)

Output:

{
  "encryptednote1": enc1,
  "encryptednote2": enc2,
  "rawtxn": rawtxout
}

zcrawkeygen

DEPRECATED.

the zcrawkeygen method generates a zcaddr which can send and receive confidential values.

Output:

{
  "zcaddress": zcaddr,
  "zcsecretkey": zcsecretkey,
  "zcviewingkey": zcviewingkey
}

zcrawreceive zcsecretkey encryptednote

DEPRECATED.

Decrypts encryptednote and checks if the coin commitments are in the blockchain as indicated by the "exists" result.

Output:

{
  "amount": value,
  "note": noteplaintext,
  "exists": exists
}

Perform a joinsplit and return the JSDescription.