neropay/vendor/monero-integrations/monerophp/docs/walletRPC.md
2025-03-06 14:50:41 -05:00

23 KiB

walletRPC class

src/walletRPC.php

A class for making calls to monero-wallet-rpc using PHP

Parameters:

  • $host <String> monero-wallet-rpc hostname (optional)
  • $port <int> monero-wallet-rpc port (optional)
  • $protocol <String> monero-wallet-rpc protocol (eg. 'http') (optional)
  • $user <String> monero-wallet-rpc RPC username (optional)
  • $password <String> monero-wallet-rpc RPC passphrase (optional)

Parameters can also be passed in as an associative array (object/dictionary,) as in:

$walletRPC = new walletRPC(['host' => '127.0.0.1', 'port' => 28083])

If an object is used to provide parameters (as above,) parameters can be declared in any order.

Methods

_transform

Convert from moneroj to tacoshi (piconero)

Parameters:

  • $method <number> Amount (in monero) to transform to tacoshi (piconero) (optional)

Return: <Number>

get_balance

Look up an account's balance

Parameters:

  • $account_index <number> Index of account to look up ( optional)

Return: <Object>

{
  "balance": 140000000000,
  "unlocked_balance": 50000000000
}

Alias: getbalance

get_address

Look up wallet address(es)

Parameters:

  • $account_index <number> Index of account to look up (optional)
  • $address_index <number> Index of subaddress to look up (optional)

Return: <Object>

{
 "address": "A2XE6ArhRkVZqepY2DQ5QpW8p8P2dhDQLhPJ9scSkW6q9aYUHhrhXVvE8sjg7vHRx2HnRv53zLQH4ATS",
 "addresses": [
   {
     "address": "A2XE6ArhRkVZqepY2DQ5QpW8p8P2dhDQLhPJ9scSkW6q9aYUHhrhXVvE8sjg7vHRx2HnRv53zLQH",
     "address_index": 0,
     "label": "Primary account",
     "used": true
   }, {
     "address": "Bh3ttLbjGFnVGCeGJF1HgVh4DfCaBNpDt7PQAgsC2GFug7WKskgfbTmB6e7UupyiijiHDQPmDC7w",
     "address_index": 1,
     "label": "",
     "used": true
   }
 ]
}

Alias: getaddress

create_address

Create a new subaddress

Parameters:

  • $account_index <number> The subaddress account index
  • $label <String> A label to the new subaddress

Return: <Object>

{
  "address": "Bh3ttLbjGFnVGCeGJF1HgVh4DfCaBNpDt7PQAgsC2GFug7WKskgfbTmB6e7UupyiijiHDQPmDC7wSC",
  "address_index": 1
}

label_address

Label a subaddress

Parameters:

  • $index <number> The index of the subaddress to label
  • $label <String> The label to apply

get_accounts

Look up wallet accounts

Return: <Object>

{
  "subaddress_accounts": {
   "0": {
     "account_index": 0,
     "balance": 2808597352948771,
     "base_address": "A2XE6ArhRkVZqepY2DQ5QpW8p8P2dhDQLhPJ9scSkW6q9aYUHhrhXVvE8sjg7vHRx2HnR",
     "label": "Primary account",
     "tag": "",
     "unlocked_balance": 2717153096298162
   },
   "1": {
     "account_index": 1,
     "balance": 0,
     "base_address": "BcXKsfrvffKYVoNGN4HUFfaruAMRdk5DrLZDmJBnYgXrTFrXyudn81xMj7rsmU5P9dX56",
     "label": "Secondary account",
     "tag": "",
     "unlocked_balance": 0
  },
  "total_balance": 2808597352948771,
  "total_unlocked_balance": 2717153096298162
}

create_account

Create a new account

Parameters:

  • $label <String> Label to apply to new account

label_account

Label an account

Parameters:

  • $account_index <number> Index of account to label
  • $label <String> Label to apply

get_account_tags

Look up account tags

Return: <Object>

{
  "account_tags": {
   "0": {
     "accounts": {
       "0": 0,
       "1": 1
     },
     "label": "",
     "tag": "Example tag"
   }
 }
}

tag_accounts

Tag accounts

Parameters:

  • $accounts <Array> The indices of the accounts to tag
  • $tag <String> Tag to apply

untag_accounts

Untag accounts

Parameters:

  • $accounts <Array> The indices of the accounts to untag

set_account_tag_description

Describe a tag

Parameters:

  • $tag <String> Tag to describe
  • $description <String> Description to apply to tag

Return: <Object>

get_height

Look up how many blocks are in the longest chain known to the wallet

Return: <Object>

{
  "height": 994310
}

Alias: getheight

transfer

Send monero

Parameters can be passed in individually (as listed below) or as an object/dictionary (as listed below) or as an object/dictionary (as listed at bottom)

To send to multiple recipients, use the object/dictionary (bottom) format and pass an array of recipient addresses and amount arrays in the destinations field (as in "destinations = ")

Parameters:

  • $amount <String> Amount of monero to send

  • $address <String> Address to receive funds

  • $payment_id <String> Payment

  • $mixin <number> Mixin number (ringsize - 1)

  • $account_index <number> Account to send

  • $subaddr_indices <String> Comma-separated list of subaddress indices to spend

  • $priority <number> Transaction

  • $unlock_time <number> UNIX time or block height to unlock

  • $do_not_relay <boolean> Do not relay

    or

  • $params <Object> Array containing any of the options listed above, where only amount and address or a destionation's array are required

Return: <Object>

{
  "amount": "1000000000000",
  "fee": "1000020000",
  "tx_hash": "c60a64ddae46154a75af65544f73a7064911289a7760be8fb5390cb57c06f2db",
  "tx_key": "805abdb3882d9440b6c80490c2d6b95a79dbc6d1b05e514131a91768e8040b04"
}

transfer_split

Same as transfer, but splits transfer into more than one transaction if necessary

Return: <Object>

sweep_dust

Send all dust outputs back to the wallet

Return: <Object>

sweep_unmixable

Send all unmixable outputs back to the wallet

Return: <Object>

sweep_all

Send all unlocked outputs from an account to an address

Parameters:

  • $address <String> Address to receive funds

  • $subaddr_indices <String> Comma-separated list of subaddress indices to sweep (optional)

  • $account_index <number> Index of the account to sweep (optional)

  • $payment_id <String> Payment ID (optional)

  • $mixin <number> Mixin number (ringsize - 1) (optional)

  • $priority <number> Payment ID (optional)

  • $below_amount <number> Only send outputs below this amount (optional)

  • $unlock_time <number> UNIX time or block height to unlock output (optional)

  • $do_not_relay <boolean> Do not relay transaction (optional)

    or

  • $params <Object> Array containing any of the options listed above, where only address is required

Return: <Object>

{
  "amount": "1000000000000",
  "fee": "1000020000",
  "tx_hash": "c60a64ddae46154a75af65544f73a7064911289a7760be8fb5390cb57c06f2db",
  "tx_key": "805abdb3882d9440b6c80490c2d6b95a79dbc6d1b05e514131a91768e8040b04"
}

sweep_single

Sweep a single key image to an address

Parameters:

  • $key_image <String> Key image to sweep

  • $address <String> Address to receive funds

  • $payment_id <String> Payment ID (optional)

  • $below_amount <number> Only send outputs below this amount (optional)

  • $mixin <number> Mixin number (ringsize - 1) (optional)

  • $priority <number> Payment ID (optional)

  • $unlock_time <number> UNIX time or block height to unlock output (optional)

  • $do_not_relay <boolean> Do not relay transaction (optional)

    or

  • $params <Object> Array containing any of the options listed above, where Return: <Object>

{
  "amount": "1000000000000",
  "fee": "1000020000",
  "tx_hash": "c60a64ddae46154a75af65544f73a7064911289a7760be8fb5390cb57c06f2db",
  "tx_key": "805abdb3882d9440b6c80490c2d6b95a79dbc6d1b05e514131a91768e8040b04"
}

relay_tx

Relay a transaction

Parameters:

  • $hex <String> Blob of transaction to relay

Return: <Object>

store

Save wallet

get_payments

Look up incoming payments by payment ID

Parameters:

  • $payment_id <String> Payment ID to look up

Return: <Object>

{
  "payments": [{
   "amount": 10350000000000,
   "block_height": 994327,
   "payment_id": "4279257e0a20608e25dba8744949c9e1caff4fcdafc7d5362ecf14225f3d9030",
   "tx_hash": "c391089f5b1b02067acc15294e3629a463412af1f1ed0f354113dd4467e4f6c1",
   "unlock_time": 0
 }]
}

get_bulk_payments

Look up incoming payments by payment ID (or a list of payments IDs) from a given height

Parameters:

  • $payment_ids <Array> Array of payment IDs to look up
  • $min_block_height <String> Height to begin search

Return: <Object>

{
  "payments": [{
   "amount": 10350000000000,
   "block_height": 994327,
   "payment_id": "4279257e0a20608e25dba8744949c9e1caff4fcdafc7d5362ecf14225f3d9030",
   "tx_hash": "c391089f5b1b02067acc15294e3629a463412af1f1ed0f354113dd4467e4f6c1",
   "unlock_time": 0
 }]
}

incoming_transfers

Look up incoming transfers

Parameters:

  • $type <String> Type of transfer to look up; must be 'all', 'available', or 'unavailable' (incoming transfers which have already been spent)
  • $account_index <number> Index of account to look up (optional)
  • $subaddr_indices <String> Comma-separated list of subaddress indices to look up (optional)

Return: <Object>

{
  "transfers": [{
   "amount": 10000000000000,
   "global_index": 711506,
   "spent": false,
   "tx_hash": "c391089f5b1b02067acc15294e3629a463412af1f1ed0f354113dd4467e4f6c1",
   "tx_size": 5870
 },{
   "amount": 300000000000,
   "global_index": 794232,
   "spent": false,
   "tx_hash": "c391089f5b1b02067acc15294e3629a463412af1f1ed0f354113dd4467e4f6c1",
   "tx_size": 5870
 },{
   "amount": 50000000000,
   "global_index": 213659,
   "spent": false,
   "tx_hash": "c391089f5b1b02067acc15294e3629a463412af1f1ed0f354113dd4467e4f6c1",
   "tx_size": 5870
 }]
}

query_key

Look up a wallet key

Parameters:

  • $key_type <String> Type of key to look up; must be 'view_key', 'spend_key', or 'mnemonic'

Return: <Object>

{
  "key": "7e341d..."
}

view_key

Look up wallet view key

Return: <Object>

{
  "key": "7e341d..."
}

spend_key

Look up wallet spend key

Return: <Object>

{
  "key": "2ab810..."
}

mnemonic

Look up wallet mnemonic seed

Return: <Object>

{
  "key": "2ab810..."
}

make_integrated_address

Create an integrated address from a given payment ID

Parameters:

  • $payment_id <String> Payment ID (optional)

Return: <Object>

{
  "integrated_address": "4BpEv3WrufwXoyJAeEoBaNW56ScQaLXyyQWgxeRL9KgAUhVzkvfiELZV7fCPBuuB2CG
}

split_integrated_address

Look up the wallet address and payment ID corresponding to an integrated address

Parameters:

  • $integrated_address <String> Integrated address to split

Return: <Object>

{
  "payment_id": "420fa29b2d9a49f5",
  "standard_address": "427ZuEhNJQRXoyJAeEoBaNW56ScQaLXyyQWgxeRL9KgAUhVzkvfiELZV7fCPBuuB2CGuJ
}

stop_wallet

Stop the wallet, saving the state

rescan_blockchain

Rescan the blockchain from scratch

set_tx_notes

Add notes to transactions

  • $txids <Array> Array of transaction IDs to note

Parameters:

  • $notes <Array> Array of notes (strings) to add

get_tx_notes

Look up transaction note

Parameters:

  • $txids <Array> Array of transaction IDs (strings) to look up

Return: <Object>

set_attribute

Set a wallet option

Parameters:

  • $key <String> Option to set
  • $value <String> Value to set

get_attribute

Look up a wallet option

Parameters:

  • $key <String> Wallet option to query Return: <Object>

get_tx_key

Look up a transaction key

Parameters:

  • $txid <String> Transaction ID to look up

Return:

Example: {
  "tx_key": "e8e97866b1606bd87178eada8f995bf96d2af3fec5db0bc570a451ab1d589b0f"
}

check_tx_key

Check a transaction key

Parameters:

  • $address <String> Address that sent transaction
  • $txid <String> Transaction ID
  • $tx_key <String> Transaction key

Return:

Example: {
  "confirmations": 1,
  "in_pool": ,
  "received": 0
}

get_tx_proof

Create proof (signature) of transaction

Parameters:

  • $address <String> Address that spent funds
  • $txid <String> Transaction ID Return: <Object>
{
  "signature": "InProofV1Lq4nejMXxMnAdnLeZhHe3FGCmFdnSvzVM1AiGcXjngTRi4hfHPcDL9D4th7KUuvF9ZH
}

check_tx_proof

Verify transaction proof

Parameters:

  • $address <String> Address that spent funds
  • $txid <String> Transaction ID
  • $signature <String> Signature (tx_proof)

Return:

{
  "confirmations": 2,
  "good": 1,
  "in_pool": ,
  "received": 15752471409492,
}

get_spend_proof

Create proof of a spend

Parameters:

  • $txid <String> Transaction ID

Return: <Object>

{
  "signature": "SpendProofV1RnP6ywcDQHuQTBzXEMiHKbe5ErzRAjpUB1h4RUMfGPNv4bbR6V7EFyiYkCrURwbb
}

check_spend_proof

Verify spend proof

Parameters:

  • $txid <String> Transaction ID
  • $signature <String> Spend proof to verify

Return: <Object>

{
  "good": 1
}

get_reserve_proof

Create proof of reserves

Parameters:

  • $account_index <String> Comma-separated list of account indices of which to prove

Return:

{
  "signature": "ReserveProofV11BZ23sBt9sZJeGccf84mzyAmNCP3KzYbE111111111111AjsVgKzau88VxXVGA
}

check_reserve_proof

Verify a reserve proof

Parameters:

  • $address <String> Wallet address
  • $signature <String> Reserve proof

Return: <Object>

{
  "good": 1,
  "spent": 0,
  "total": 0
}

get_transfers

Look up transfers

Parameters:

  • $input_types <Array> Array of transfer type strings; possible values include 'all', 'in', 'out', 'pending', 'failed', and 'pool' (optional)

  • $account_index <number> Index of account to look (optional)

  • $subaddr_indices <String> Comma-separated list of subaddress indices to look up (optional)

  • $min_height <number> Minimum block height to use when looking up (optional)

  • $max_height <number> Maximum block height to use when looking up (optional)

    or

  • $inputs_types <Object> Array containing any of the options listed above, where only an input types array is required

Return: <Object>

{
  "pool": [{
   "amount": 500000000000,
   "fee": 0,
   "height": 0,
   "note": "",
   "payment_id": "758d9b225fda7b7f",
   "timestamp": 1488312467,
   "txid": "da7301d5423efa09fabacb720002e978d114ff2db6a1546f8b820644a1b96208",
   "type": "pool"
 }]
}

get_transfer_by_txid

Look up transaction by transaction ID

Parameters:

  • $txid <String> Transaction ID to look up
  • $account_index <String> Index of account to query (optional)

Return: <Object>

{
  "transfer": {
   "amount": 10000000000000,
   "fee": 0,
   "height": 1316388,
   "note": "",
   "payment_id": "0000000000000000",
   "timestamp": 1495539310,
   "txid": "f2d33ba969a09941c6671e6dfe7e9456e5f686eca72c1a94a3e63ac6d7f27baf",
   "type": "in"
 }
}

sign

Sign a string

Parameters:

  • $data <String> Data to sign

Return: <Object>

{
  "signature": "SigV1Xp61ZkGguxSCHpkYEVw9eaWfRfSoAf36PCsSCApx4DUrKWHEqM9CdNwjeuhJii6LHDVDFxv
}

verify

Verify a signature

Parameters:

  • $data <String> Signed data
  • $address <String> Address that signed data
  • $signature <String> Signature to verify

Return:

{
  "good": true
}

export_key_images

Export an array of signed key images

Return: <Object>

import_key_images

Import a signed set of key images

Parameters:

  • $signed_key_images <Array> Array of signed key images

Return:

{
 // TODO example
 height: ,
 spent: ,
 unspent:
}

make_uri

Create a payment URI using the official URI specification

Parameters:

  • $address <String> Address to receive funds
  • $amount <String> Amount of monero to request
  • $payment_id <String> Payment ID (optional)
  • $recipient_name <String> Name of recipient (optional)
  • $tx_description <String> Payment description (optional)

Return: <Object>

parse_uri

Parse a payment URI

Parameters:

  • $uri <String> Payment URI

Return: <Object>

{
  "uri": {
   "address": "44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VB
   "amount": 10,
   "payment_id": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
   "recipient_name": "Monero Project donation address",
   "tx_description": "Testing out the make_uri function"
 }
}

get_address_book

Look up address book entries

Parameters:

  • $entries <Array> Array of address book entry indices to look up

Return: <Object>

add_address_book

Add entry to the address book

Parameters:

  • $address <String> Address to add to address book
  • $payment_id <String> Payment ID to use with address in address book (optional)
  • $description <String> Description of address (optional)

Return: <Object>

delete_address_book

Delete an entry from the address book

Parameters:

  • $index <Array> Index of the address book entry to remove

rescan_spent

Rescan the blockchain for spent outputs

start_mining

Start mining

  • $threads_count <number> Number of threads with which to mine
  • $do_background_mining <boolean> Mine in background?
  • $ignore_battery <boolean> Ignore battery?

stop_mining

Stop mining

get_languages

Look up a list of available languages for your wallet's seed

Return: <Object>

create_wallet

Create a new wallet

  • $filename <String> Filename of new wallet to create
  • $password <String> Password of new wallet to create
  • $language <String> Language of new wallet to create

open_wallet

Open a wallet

Parameters:

  • $filename <String> Filename of wallet to open
  • $password <String> Password of wallet to open

is_multisig

Check if wallet is multisig

Return: <Object>

Non-multisignature wallet return:

{
  "multisig": ,
  "ready": ,
  "threshold": 0,
  "total": 0
}

prepare_multisig

Create information needed to create a multisignature wallet

Return: <Object>

{
  "multisig_info": "MultisigV1WBnkPKszceUBriuPZ6zoDsU6RYJuzQTiwUqE5gYSAD1yGTz85vqZGetawVvioa
}

make_multisig

Create a multisignature wallet

Parameters:

  • $multisig_info <String> Multisignature information (from eg. prepare_multisig)
  • $threshold <String> Threshold required to spend from multisignature wallet
  • $password <String> Passphrase to apply to multisignature wallet

Return: <Object>

export_multisig_info

Export multisignature information

Return: <Object>

import_multisig_info

Import multisignature information

Parameters:

  • $info <String> Multisignature info (from eg. prepare_multisig)

Return: <Object>

finalize_multisig

Finalize a multisignature wallet

Parameters:

  • $multisig_info <String> Multisignature info (from eg. prepare_multisig)
  • $password <String> Multisignature info (from eg. prepare_multisig)

Return: <Object>

sign_multisig

Sign a multisignature transaction

Parameters:

  • $tx_data_hex <String> Blob of transaction to sign

Return: <Object>

submit_multisig

Submit (relay) a multisignature transaction

Parameters:

  • $tx_data_hex <String> Blob of transaction to submit

Return: <Object>

get_client

Return the jsonRPCClient used by the class

Return: jsonRPCClient

Alias: getClient

Credits

Written by the Monero Integrations team (support@monerointegrations.com)

Using work from: