Skip to content

Wallet Service JSON-RPC Methods

Method registrations are in src/walletservice/PaymentServiceJsonRpcServer.cpp.

Current methods:

  • save
  • export
  • reset
  • createAddress
  • createAddressList
  • deleteAddress
  • getSpendKeys
  • getBalance
  • getBlockHashes
  • getTransactionHashes
  • getTransactions
  • getUnconfirmedTransactionHashes
  • getTransaction
  • sendTransaction
  • createDelayedTransaction
  • getDelayedTransactionHashes
  • deleteDelayedTransaction
  • sendDelayedTransaction
  • getViewKey
  • getMnemonicSeed
  • getStatus
  • getAddresses
  • createIntegratedAddress
  • getFeeInfo
  • getNodeFeeInfo

Authentication behavior

When legacySecurity is disabled, requests must include a password field in request JSON. Invalid or missing password is rejected.

Example Payloads

Base command pattern:

curl -s -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":"1","method":"<method>","password":"<rpc-password>","params":{}}' \
  "$WALLET_SERVICE_URL"

save, reset, export:

{"jsonrpc":"2.0","id":"1","method":"save","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"2","method":"reset","password":"<rpc-password>","params":{"scanHeight":0}}
{"jsonrpc":"2.0","id":"3","method":"export","password":"<rpc-password>","params":{"fileName":"wallet-export.json"}}

createAddress, createAddressList, deleteAddress:

{"jsonrpc":"2.0","id":"4","method":"createAddress","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"5","method":"createAddress","password":"<rpc-password>","params":{"spendSecretKey":"<secret-key>","scanHeight":0}}
{"jsonrpc":"2.0","id":"6","method":"createAddressList","password":"<rpc-password>","params":{"spendSecretKeys":["<secret-key-1>","<secret-key-2>"],"scanHeight":0}}
{"jsonrpc":"2.0","id":"7","method":"deleteAddress","password":"<rpc-password>","params":{"address":"<address>"}}

getSpendKeys, getBalance, getAddresses, getViewKey, getMnemonicSeed:

{"jsonrpc":"2.0","id":"8","method":"getSpendKeys","password":"<rpc-password>","params":{"address":"<address>"}}
{"jsonrpc":"2.0","id":"9","method":"getBalance","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"10","method":"getBalance","password":"<rpc-password>","params":{"address":"<address>"}}
{"jsonrpc":"2.0","id":"11","method":"getAddresses","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"12","method":"getViewKey","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"13","method":"getMnemonicSeed","password":"<rpc-password>","params":{"address":"<address>"}}

getStatus, getFeeInfo, getNodeFeeInfo:

{"jsonrpc":"2.0","id":"14","method":"getStatus","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"15","method":"getFeeInfo","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"16","method":"getNodeFeeInfo","password":"<rpc-password>","params":{}}

getBlockHashes:

{"jsonrpc":"2.0","id":"17","method":"getBlockHashes","password":"<rpc-password>","params":{"firstBlockIndex":0,"blockCount":100}}

getTransactionHashes, getTransactions, getTransaction, getUnconfirmedTransactionHashes:

{"jsonrpc":"2.0","id":"18","method":"getTransactionHashes","password":"<rpc-password>","params":{"firstBlockIndex":0,"blockCount":100}}
{"jsonrpc":"2.0","id":"19","method":"getTransactionHashes","password":"<rpc-password>","params":{"blockHash":"<block-hash>","blockCount":100,"paymentId":"<optional-payment-id>","addresses":["<address>"]}}
{"jsonrpc":"2.0","id":"20","method":"getTransactions","password":"<rpc-password>","params":{"firstBlockIndex":0,"blockCount":100}}
{"jsonrpc":"2.0","id":"21","method":"getTransaction","password":"<rpc-password>","params":{"transactionHash":"<tx-hash>"}}
{"jsonrpc":"2.0","id":"22","method":"getUnconfirmedTransactionHashes","password":"<rpc-password>","params":{"addresses":["<address>"]}}

sendTransaction:

{"jsonrpc":"2.0","id":"23","method":"sendTransaction","password":"<rpc-password>","params":{"addresses":["<source-address>"],"transfers":[{"address":"<destination>","amount":1000000}],"fee":1000,"anonymity":7,"unlockTime":0}}

createDelayedTransaction, getDelayedTransactionHashes, sendDelayedTransaction, deleteDelayedTransaction:

{"jsonrpc":"2.0","id":"24","method":"createDelayedTransaction","password":"<rpc-password>","params":{"addresses":["<source-address>"],"transfers":[{"address":"<destination>","amount":1000000}],"feePerByte":1.25,"anonymity":7}}
{"jsonrpc":"2.0","id":"25","method":"getDelayedTransactionHashes","password":"<rpc-password>","params":{}}
{"jsonrpc":"2.0","id":"26","method":"sendDelayedTransaction","password":"<rpc-password>","params":{"transactionHash":"<tx-hash>"}}
{"jsonrpc":"2.0","id":"27","method":"deleteDelayedTransaction","password":"<rpc-password>","params":{"transactionHash":"<tx-hash>"}}

createIntegratedAddress:

{"jsonrpc":"2.0","id":"28","method":"createIntegratedAddress","password":"<rpc-password>","params":{"address":"<address>","paymentId":"<payment-id-hex>"}}