Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
2779 lines (2171 sloc) 104 KB
<!DOCTYPE html>
<html lang="en">
<head>
<link href="style/prism.css" rel="stylesheet" />
<title>Blur Network Wallet RPC Documentation</title>
</head>
<body>
<h1 id=blur-wallet-rpc-doc"> Blur Network Wallet RPC Documentation</h1>
<p>Launch <code class="language-json">blur-wallet-rpc</code> with the option <code class="language-json">--rpc-bind-port 52544</code> for the commands listed below to work, as written. Alternatively, you may set a different port, and modify where necessary. </p>
<h3 id="introduction">Introduction</h3>
<p>This is a list of the blur-wallet-rpc calls, their inputs and outputs, and examples of each. The program blur-wallet-rpc replaced the rpc interface that was in simplewallet and then blur-wallet-cli.</p>
<p>All blur-wallet-rpc methods use the same JSON RPC interface. For example:</p>
<pre><code class="language-json">IP=127.0.0.1
PORT=52544
METHOD="make_integrated_address"
PARAMS="{\"payment_id\":\"1234567890123456789012345678900012345678901234567890123456789000\"}"
curl \
-X POST http://$IP:$PORT/json_rpc \
-d '{"jsonrpc":"2.0","id":"0","method":"'$METHOD'","params":'"$PARAMS"'}' \
-H 'Content-Type: application/json'
</code></pre>
<p>If the blur-wallet-rpc was executed with the <code class="language-json">--rpc-login</code> argument as <code class="language-json">username:password</code>, then follow this example:</p>
<pre><code class="language-json">IP=127.0.0.1
PORT=52544
METHOD="make_integrated_address"
PARAMS="{\"payment_id\":\"1234567890123456789012345678900012345678901234567890123456789000\"}"
curl \
-u username:password --digest \
-X POST http://$IP:$PORT/json_rpc \
-d '{"jsonrpc":"2.0","id":"0","method":"'$METHOD'","params":'"$PARAMS"'}' \
-H 'Content-Type: application/json'
</code></pre>
<p>Note: "atomic units" refer to the smallest fraction of 1 BLUR according to the blurd implementation. <strong>1 BLUR = 1e12 atomic units.</strong></p>
<h3 id="index-of-json-rpc-methods">Index of JSON RPC Methods:</h3>
<ul>
<li><a href="#get_balance">get_balance</a></li>
<li><a href="#get_address">get_address</a></li>
<li><a href="#create_address">create_address</a></li>
<li><a href="#label_address">label_address</a></li>
<li><a href="#get_accounts">get_accounts</a></li>
<li><a href="#create_account">create_account</a></li>
<li><a href="#label_account">label_account</a></li>
<!--- account tags causing segfault on get_account_tags command
<a href="#get_account_tags">get_account_tags</a>
<a href="#tag_accounts">tag_accounts</a>
<a href="#untag_accounts">untag_accounts</a>
<a href="#set_account_tag_description">set_account_tag_description</a>
--->
<li><a href="#get_height">get_height</a></li>
<li><a href="#transfer">transfer</a></li>
<li><a href="#transfer_split">transfer_split</a></li>
<li><a href="#sign_transfer">sign_transfer</a></li>
<li><a href="#submit_transfer">submit_transfer</a></li>
<li><a href="#sweep_dust">sweep_dust</a></li>
<li><a href="#sweep_all">sweep_all</a></li>
<!---
<a href="#sweep_single">sweep_single</a>
<a href="#relay_tx">relay_tx</a>
---->
<li><a href="#store">store</a></li>
<li><a href="#get_payments">get_payments</a></li>
<li><a href="#get_bulk_payments">get_bulk_payments</a></li>
<li><a href="#incoming_transfers">incoming_transfers</a></li>
<li><a href="#query_key">query_key</a></li>
<li><a href="#make_integrated_address">make_integrated_address</a></li>
<li><a href="#split_integrated_address">split_integrated_address</a></li>
<li><a href="#stop_wallet">stop_wallet</a></li>
<li><a href="#rescan_blockchain">rescan_blockchain</a></li>
<li><a href="#set_tx_notes">set_tx_notes</a></li>
<li><a href="#get_tx_notes">get_tx_notes</a></li>
<li><a href="#set_attribute">set_attribute</a></li>
<li><a href="#get_attribute">get_attribute</a></li>
<li><a href="#get_tx_key">get_tx_key</a></li>
<li><a href="#check_tx_key">check_tx_key</a></li>
<li><a href="#get_transfers">get_transfers</a></li>
<li><a href="#get_transfer_by_txid">get_transfer_by_txid</a></li>
<li><a href="#sign">sign</a></li>
<li><a href="#verify">verify</a></li>
<li><a href="#export_outputs">export_outputs</a></li>
<li><a href="#import_outputs">import_outputs</a></li>
<li><a href="#export_key_images">export_key_images</a></li>
<li><a href="#import_key_images">import_key_images</a></li>
<li><a href="#make_uri">make_uri</a></li>
<li><a href="#parse_uri">parse_uri</a></li>
<li><a href="#get_address_book">get_address_book</a></li>
<li><a href="#add_address_book">add_address_book</a></li>
<li><a href="#delete_address_book">delete_address_book</a></li>
<li><a href="#rescan_spent">rescan_spent</a></li>
<li><a href="#start_mining">start_mining</a></li>
<li><a href="#stop_mining">stop_mining</a></li>
<li><a href="#get_languages">get_languages</a></li>
<li><a href="#create_wallet">create_wallet</a></li>
<li><a href="#open_wallet">open_wallet</a></li>
<li><a href="#close_wallet">close_wallet</a></li>
<li><a href="#change_wallet_password">change_wallet_password</a></li>
</ul>
<!--- Multisig needs debugging -- works some time, not all time. Need work all time, not just some time
<a href="#is_multisig">is_multisig</a>
<a href="#prepare_multisig">prepare_multisig</a>
<a href="#make_multisig">make_multisig</a>
<a href="#export_multisig_info">export_multisig_info</a>
<a href="#import_multisig_info">import_multisig_info</a>
<a href="#finalize_multisig">finalize_multisig</a>
<a href="#sign_multisig">sign_multisig</a>
<a href="#submit_multisig">submit_multisig</a>
--->
<hr />
<h2 id="json-rpc-methods">JSON RPC Methods:</h2>
<h3 id="get_balance"><strong>get_balance</strong></h3>
<p>Return the wallet's balance.</p>
<p>Alias: <em>getbalance</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>account_index</em> - unsigned int; Return balance for this account.</li>
<li><em>address_indices</em> - array of unsigned int; (Optional) Return balance detail for those subaddresses.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>balance</em> - unsigned int; The total balance of the current blur-wallet-rpc in session.</li>
<li><em>unlocked_balance</em> - unsigned int; Unlocked funds are those funds that are sufficiently deep enough in the Blur Network blockchain to be considered safe to spend.</li>
<li><em>multisig_import_needed</em> - boolean; True if importing multisig data is needed for returning a correct balance.</li>
<li><em>per_subaddress</em> - array of subaddress information; Balance information for each subaddress in an account.
<ul>
<li><em>address_index</em> - unsigned int; Index of the subaddress in the account.</li>
<li><em>address</em> - string; Address at this index. Base58 representation of the public keys.</li>
<li><em>balance</em> - unsigned int; Balance for the subaddress (locked or unlocked).</li>
<li><em>unlocked_balance</em> - unsigned int; Unlocked balance for the subaddress.</li>
<li><em>label</em> - string; Label for the subaddress.</li>
<li><em>num_unspent_outputs</em> - unsigned int; Number of unspent outputs available for the subaddress.</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_balance","params":{"account_index":0,"address_indices":[0,1]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"balance": 1054454247597,
"multisig_import_needed": false,
"per_subaddress": [
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"address_index": 0,
"balance": 1054454247597,
"label": "Primary account",
"num_unspent_outputs": 2,
"unlocked_balance": 1054454247597
}
],
"unlocked_balance": 1054454247597
}
}
</code></pre>
<h3 id="get_address"><strong>get_address</strong></h3>
<p>Return the wallet's addresses for an account. Optionally filter for specific set of subaddresses.</p>
<p>Alias: <em>getaddress</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>account_index</em> - unsigned int; Return subaddresses for this account.</li>
<li><em>address_index</em> - array of unsigned int; (Optional) List of subaddresses to return from an account.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>address</em> - string; The 95-character hex address string of the blur-wallet-rpc in session.</li>
<li><em>addresses</em> array of addresses informations
<ul>
<li><em>address</em> string; The 95-character hex (sub)address string.</li>
<li><em>label</em> string; Label of the (sub)address</li>
<li><em>address_index</em> unsigned int; index of the subaddress</li>
<li><em>used</em> boolean; states if the (sub)address has already received funds</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_address","params":{"account_index":0,"address_index":[0,1,4]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"addresses": [
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"address_index": 0,
"label": "Primary account",
"used": true
},
{
"address": "Ry4gNmnSaBcVBKQfoagN7mH2PsEHjs7ToCP7uKFzhGpoZocrPvuZdbGbGbScQ5m95w4DTUfwT3u3TDXTHtN29mwV3AdFdN7qC",
"address_index": 1,
"label": "new-sub",
"used": false
},
{
"address": "Ry4JA2w6QE21oyUpshGqaG7VhHpcuUuTSbWYjmNDAxQgFBBstMKvMwtQjz8i7MZ9gKbAYmkMQhUS959t6WK8BrQq2EQVyL5ZY",
"address_index": 4,
"label": "",
"used": false
}
]
}
}
</code></pre>
<h3 id="create_address"><strong>create_address</strong></h3>
<p>Create a new address for an account. Optionally, label the new address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>account_index</em> - unsigned int; Create a new address for this account.</li>
<li><em>label</em> - string; (Optional) Label for the new address.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>address</em> - string; Newly created address. Base58 representation of the public keys.</li>
<li><em>address_index</em> - unsigned int; Index of the new address under the input account.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"create_address","params":{"account_index":0,"label":"new-sub"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"address": "Ry4gNmnSaBcVBKQfoagN7mH2PsEHjs7ToCP7uKFzhGpoZocrPvuZdbGbGbScQ5m95w4DTUfwT3u3TDXTHtN29mwV3AdFdN7qC",
"address_index": 1
}
}
</code></pre>
<h3 id="label_address"><strong>label_address</strong></h3>
<p>Label an address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>index</em> - subaddress index; JSON Object containing the major &amp; minor address index:
<ul>
<li><em>major</em> - unsigned int; Account index for the subaddress.</li>
<li><em>minor</em> - unsigned int; Index of the subaddress in the account.</li>
</ul>
</li>
<li><em>label</em> - string; Label for the address.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"label_address","params":{"index":{"major":0,"minor":1},"label":"label"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="get_accounts"><strong>get_accounts</strong></h3>
<p>Get all accounts for a wallet. Optionally filter accounts by tag.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tag</em> - string; (Optional) Tag for filtering accounts.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>subaddress_accounts</em> - array of subaddress account information:
<ul>
<li><em>account_index</em> - unsigned int; Index of the account.</li>
<li><em>balance</em> - unsigned int; Balance of the account (locked or unlocked).</li>
<li><em>base_address</em> - string; Base64 representation of the first subaddress in the account.</li>
<li><em>label</em> - string; (Optional) Label of the account.</li>
<li><em>tag</em> - string; (Optional) Tag for filtering accounts.</li>
<li><em>unlocked_balance</em> - unsigned int; Unlocked balance for the account.</li>
</ul>
</li>
<li><em>total_balance</em> - unsigned int; Total balance of the selected accounts (locked or unlocked).</li>
<li><em>total_unlocked_balance</em> - unsigned int; Total unlocked balance of the selected accounts.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_accounts","params":{"tag":"myTag"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"subaddress_accounts": [
{
"account_index": 0,
"balance": 1054454247597,
"base_address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"label": "",
"tag": "",
"unlocked_balance": 1054454247597
}
],
"total_balance": 1054454247597,
"total_unlocked_balance": 1054454247597
}
}
</code></pre>
<h3 id="create_account"><strong>create_account</strong></h3>
<p>Create a new account with an optional label.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>label</em> - string; (Optional) Label for the account.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>account_index</em> - unsigned int; Index of the new account.</li>
<li><em>address</em> - string; Address for this account. Base58 representation of the public keys.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"create_account","params":{"label":"Secondary account"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"account_index": 2,
"address": "Ry3iL1x7pm1GJBxVCmwkxFh2sJcMivtqKP2eSxsGwb7FDHuvRnKs4Vb756frdRCGDZ2RwXCXbbHLU7HxPnVGarPN2URMrhpKi"
}
}
</code></pre>
<h3 id="label_account"><strong>label_account</strong></h3>
<p>Label an account.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>account_index</em> - unsigned int; Apply label to account at this index.</li>
<li><em>label</em> - string; Label for the account.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"label_account","params":{"account_index":0,"label":"Primary account"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<!-- TODO: Need to figure out what is causing the segmentation fault here, leave these commands logged out until that is fixed.
<h3 id="get_account_tags"><strong>get_account_tags</strong></h3>
<p>Get a list of user-defined account tags.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>account_tags</em> - array of account tag information:
<ul>
<li><em>tag</em> - string; Filter tag.</li>
<li><em>label</em> - string; Label for the tag.</li>
<li><em>accounts</em> - array of int; List of tagged account indices.</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_account_tags","params":""}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"account_tags": [{
"accounts": [0],
"label": "Test tag",
"tag": "myTag"
}]
}
}
</code></pre>
<h3 id="tag_accounts"><strong>tag_accounts</strong></h3>
<p>Apply a filtering tag to a list of accounts.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tag</em> - string; Tag for the accounts.</li>
<li><em>accounts</em> - array of unsigned int; Tag this list of accounts.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"tag_accounts","params":{"tag":"myTag","accounts":[0,1]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="untag_accounts"><strong>untag_accounts</strong></h3>
<p>Remove filtering tag from a list of accounts.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>accounts</em> - array of unsigned int; Remove tag from this list of accounts.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"untag_accounts","params":{"accounts":[1]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="set_account_tag_description"><strong>set_account_tag_description</strong></h3>
<p>Set description for an account tag.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tag</em> - string; Set a description for this tag.</li>
<li><em>description</em> - string; Description for the tag.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_account_tag_description","params":{"tag":"myTag","description":"Test tag"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
/</code></pre>
-->
<h3 id="get_height"><strong>get_height</strong></h3>
<p>Returns the wallet's current block height.</p>
<p>Alias: <em>getheight</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>height</em> - unsigned int; The current blur-wallet-rpc's blockchain height. If the wallet has been offline for a long time, it may need to catch up with the daemon.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_height"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"height": 431724
}
}
</code></pre>
<h3 id="transfer"><strong>transfer</strong></h3>
<p>Send blur to a number of recipients.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>destinations</em> - array of destinations to receive BLUR:
<ul>
<li><em>amount</em> - unsigned int; Amount to send to each destination, in atomic units.</li>
<li><em>address</em> - string; Destination public address.</li>
</ul>
</li>
<li><em>account_index</em> - unsigned int; (Optional) Transfer from this account index. (Defaults to 0)</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) Transfer from this set of subaddresses. (Defaults to empty - all indices)</li>
<li><em>priority</em> - unsigned int; Set a priority for the transaction. Accepted Values are: 0-3 for: default, unimportant, normal, elevated, priority.</li>
<li><em>mixin</em> - unsigned int; Number of outputs from the blockchain to mix with (0 means no mixing).</li>
<li><em>ring_size</em> - unsigned int; Number of outputs to mix in the transaction (this output + N decoys from the blockchain).</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks before the blur can be spent (0 to not add a lock).</li>
<li><em>payment_id</em> - string; (Optional) Random 32-byte/64-character hex string to identify a transaction.</li>
<li><em>get_tx_key</em> - boolean; (Optional) Return the transaction key after sending.</li>
<li><em>do_not_relay</em> - boolean; (Optional) If true, the newly created transaction will not be relayed to the blur network. (Defaults to false)</li>
<li><em>get_tx_hex</em> - boolean; Return the transaction as hex string after sending (Defaults to false)</li>
<li><em>get_tx_metadata</em> - boolean; Return the metadata needed to relay the transaction. (Defaults to false)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>amount</em> - Amount transferred for the transaction.</li>
<li><em>fee</em> - Integer value of the fee charged for the txn.</li>
<li><em>multisig_txset</em> - Set of multisig transactions in the process of being signed (empty for non-multisig).</li>
<li><em>tx_blob</em> - Raw transaction represented as hex string, if get_tx_hex is true.</li>
<li><em>tx_hash</em> - String for the publically searchable transaction hash.</li>
<li><em>tx_key</em> - String for the transaction key if get_tx_key is true, otherwise, blank string.</li>
<li><em>tx_metadata</em> - Set of transaction metadata needed to relay this transfer later, if get_tx_metadata is true.</li>
<li><em>unsigned_txset</em> - String. Set of unsigned tx for cold-signing purposes.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"transfer","params":{"destinations":[{"amount":1000000,"address":"Ry42wbj88juDcrP4HxYRmPjCeoCdy4HyU8z39jmXL9LeUoRQoRGkSGcSqNkD5XZvMd1DSjppV75KxeDnBpZs3ZkW38uE23wqK"},{"amount":1000000,"address":"Ry4gNmnSaBcVBKQfoagN7mH2PsEHjs7ToCP7uKFzhGpoZocrPvuZdbGbGbScQ5m95w4DTUfwT3u3TDXTHtN29mwV3AdFdN7qC"}],"account_index":0,"subaddr_indices":[0],"priority":0,"ring_size":5,"get_tx_key": true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount": 2000000,
"fee": 672000000,
"multisig_txset": "",
"tx_blob": "",
"tx_hash": "7f0d83d9599d059cdbc42114a3750a41eeb52651af432e58e37bac02b1356c6b",
"tx_key": "f6808f840d8777437e6af49a20bcdc041e43bb2dc2bbaab14dbb14dc4d42a20dfd6f50d19aff89933d0b14fd90fe1b4aff4fa440ded424f878193449806dd70222c52887d218244cac179d1be8639a535a386ddf3e982d0e933784a0adf93c0dd36dbd4ed53cf3b8c9805a6ae15667a9c5044a8316c02b8c61be2e6116d36901",
"tx_metadata": ""
}
}
</code></pre>
<h3 id="transfer_split"><strong>transfer_split</strong></h3>
<p>Same as transfer, but can split into more than one tx if necessary.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>destinations</em> - array of destinations to receive BLUR:
<ul>
<li><em>amount</em> - unsigned int; Amount to send to each destination, in atomic units.</li>
<li><em>address</em> - string; Destination public address.</li>
</ul>
</li>
<li><em>account_index</em> - unsigned int; (Optional) Transfer from this account index. (Defaults to 0)</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) Transfer from this set of subaddresses. (Defaults to empty - all indices)</li>
<li><em>mixin</em> - unsigned int; Number of outputs from the blockchain to mix with (0 means no mixing).</li>
<li><em>ring_size</em> - unsigned int; Sets ringsize to n (mixin + 1).</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks before the blur can be spent (0 to not add a lock).</li>
<li><em>payment_id</em> - string; (Optional) Random 32-byte/64-character hex string to identify a transaction.</li>
<li><em>get_tx_keys</em> - boolean; (Optional) Return the transaction keys after sending.</li>
<li><em>priority</em> - unsigned int; Set a priority for the transactions. Accepted Values are: 0-3 for: default, unimportant, normal, elevated, priority.</li>
<li><em>do_not_relay</em> - boolean; (Optional) If true, the newly created transaction will not be relayed to the blur network. (Defaults to false)</li>
<li><em>get_tx_hex</em> - boolean; Return the transactions as hex string after sending</li>
<li><em>new_algorithm</em> - boolean; True to use the new transaction construction algorithm, defaults to false.</li>
<li><em>get_tx_metadata</em> - boolean; Return list of transaction metadata needed to relay the transfer later.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
<li><em>tx_key_list</em> - array of: string. The transaction keys for every transaction.</li>
<li><em>amount_list</em> - array of: integer. The amount transferred for every transaction.</li>
<li><em>fee_list</em> - array of: integer. The amount of fees paid for every transaction.</li>
<li><em>tx_blob_list</em> - array of: string. The tx as hex string for every transaction.</li>
<li><em>tx_metadata_list</em> - array of: string. List of transaction metadata needed to relay the transactions later.</li>
<li><em>multisig_txset</em> - string. The set of signing keys used in a multisig transaction (empty for non-multisig).</li>
<li><em>unsigned_txset</em> - string. Set of unsigned tx for cold-signing purposes.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"transfer_split","params":{"destinations":[{"amount":100000,"address":"Ry42wbj88juDcrP4HxYRmPjCeoCdy4HyU8z39jmXL9LeUoRQoRGkSGcSqNkD5XZvMd1DSjppV75KxeDnBpZs3ZkW38uE23wqK"},{"amount":100000,"address":"Ry4gNmnSaBcVBKQfoagN7mH2PsEHjs7ToCP7uKFzhGpoZocrPvuZdbGbGbScQ5m95w4DTUfwT3u3TDXTHtN29mwV3AdFdN7qC"}],"account_index":0,"subaddr_indices":[0],"priority":0,"ring_size":5,"get_tx_keys": true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount_list": [
200000
],
"fee_list": [
672000000
],
"multisig_txset": "",
"tx_hash_list": [
"9b03afab73fec3381bebcf7b505b3315089eddb16011dc5b40c57f7434e322d6"
],
"tx_key_list": [
"84139a191e7e43f87505732a7904fd5293c1fab75a560f86ca65b9bd5590260433b3cd7ce9cb011ad4f4afb5391dd879615be82beefc0124b9a4f3d947b3b807b11b910325b0ba5bbdd44a05a0f9c65804165122eeef109244ab5e9ae8cb6e02006033f872d2b25787dcda9283b4e138f0a1c462787cd9921e949d05022e1500"
]
}
}
</code></pre>
<h3 id="sign_transfer"><strong>sign_transfer</strong></h3>
<p>Sign a transaction created on a read-only wallet (in cold-signing process)</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>unsigned_txset</em> - string. Set of unsigned tx returned by "transfer" or "transfer_split" methods.</li>
<li><em>export_raw</em> - boolean; (Optional) If true, return the raw transaction data. (Defaults to false)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>signed_txset</em> - string. Set of signed tx to be used for submitting transfer.</li>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
<li><em>tx_raw_list</em> - array of: string. The tx raw data of every transaction.</li>
</ul>
<p>In the example below, we first generate an unsigned_txset on a read only wallet before signing it:</p>
<p>Generate unsigned_txset using the above "transfer" method on read-only wallet:</p>
<pre><code class="language-json">curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"transfer","params":{"destinations":[{"amount":1000000,"address":"Ry4gNmnSaBcVBKQfoagN7mH2PsEHjs7ToCP7uKFzhGpoZocrPvuZdbGbGbScQ5m95w4DTUfwT3u3TDXTHtN29mwV3AdFdN7qC"}],"account_index":0,"subaddr_indices":[0],"priority":0,"ring_size":5,"do_not_relay":true,"get_tx_hex":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount": 1000000,
"fee": 671970000,
"multisig_txset": "",
"tx_blob": "...long hex...",
"tx_hash": "...transaction hash...",
"tx_key": "",
"tx_metadata": ""
}
}
</code></pre>
<p>Sign tx using the previously generated unsigned_txset</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sign_transfer","params":{"unsigned_txset":...long_hex..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signed_txset": "...long_hex...",
"tx_hash_list": ["...transaction hash..."]
}
}
</code></pre>
<h3 id="submit_transfer"><strong>submit_transfer</strong></h3>
<p>Submit a previously signed transaction on a read-only wallet (in cold-signing process).</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tx_data_hex</em> - string; Set of signed tx returned by "sign_transfer"</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
</ul>
<p>In the example below, we submit the transfer using the signed_txset generated above:</p>
<pre><code class="language-json">curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"submit_transfer","params":{"tx_data_hex":...long_hex..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"tx_hash_list": ["...tx hash...."]
}
}
</code></pre>
<h3 id="sweep_dust"><strong>sweep_dust</strong></h3>
<p>Send all dust outputs back to the wallet's, to make them easier to spend (and mix).</p>
<p>Alias: <em>sweep_unmixable</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>get_tx_keys</em> - boolean; (Optional) Return the transaction keys after sending.</li>
<li><em>do_not_relay</em> - boolean; (Optional) If true, the newly created transaction will not be relayed to the blur network. (Defaults to false)</li>
<li><em>get_tx_hex</em> - boolean; (Optional) Return the transactions as hex string after sending. (Defaults to false)</li>
<li><em>get_tx_metadata</em> - boolean; (Optional) Return list of transaction metadata needed to relay the transfer later. (Defaults to false)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
<li><em>tx_key_list</em> - array of: string. The transaction keys for every transaction.</li>
<li><em>amount_list</em> - array of: integer. The amount transferred for every transaction.</li>
<li><em>fee_list</em> - array of: integer. The amount of fees paid for every transaction.</li>
<li><em>tx_blob_list</em> - array of: string. The tx as hex string for every transaction.</li>
<li><em>tx_metadata_list</em> - array of: string. List of transaction metadata needed to relay the transactions later.</li>
<li><em>multisig_txset</em> - string. The set of signing keys used in a multisig transaction (empty for non-multisig).</li>
<li><em>unsigned_txset</em> - string. Set of unsigned tx for cold-signing purposes.</li>
</ul>
<p>Example (In this example, <code class="language-json">sweep_dust</code> returns nothing because there are no funds to sweep):</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sweep_dust","params":{"get_tx_keys":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"multisig_txset": "",
"unsigned_txset": ""
}
}
</code></pre>
<h3 id="sweep_all"><strong>sweep_all</strong></h3>
<p>Send all unlocked balance to an address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>address</em> - string; Destination public address.</li>
<li><em>account_index</em> - unsigned int; Sweep transactions from this account.</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) Sweep from this set of subaddresses in the account.</li>
<li><em>priority</em> - unsigned int; (Optional) Priority for sending the sweep transfer, partially determines fee.</li>
<li><em>mixin</em> - unsigned int; Number of outputs from the blockchain to mix with (0 means no mixing).</li>
<li><em>ring_size</em> - unsigned int; Sets ringsize to n (mixin + 1).</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks before the blur can be spent (0 to not add a lock).</li>
<li><em>payment_id</em> - string; (Optional) Random 32-byte/64-character hex string to identify a transaction.</li>
<li><em>get_tx_keys</em> - boolean; (Optional) Return the transaction keys after sending.</li>
<li><em>below_amount</em> - unsigned int; (Optional) Include outputs below this amount.</li>
<li><em>do_not_relay</em> - boolean; (Optional) If true, do not relay this sweep transfer. (Defaults to false)</li>
<li><em>get_tx_hex</em> - boolean; (Optional) return the transactions as hex encoded string. (Defaults to false)</li>
<li><em>get_tx_metadata</em> - boolean; (Optional) return the transaction metadata as a string. (Defaults to false)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
<li><em>tx_key_list</em> - array of: string. The transaction keys for every transaction.</li>
<li><em>amount_list</em> - array of: integer. The amount transferred for every transaction.</li>
<li><em>fee_list</em> - array of: integer. The amount of fees paid for every transaction.</li>
<li><em>tx_blob_list</em> - array of: string. The tx as hex string for every transaction.</li>
<li><em>tx_metadata_list</em> - array of: string. List of transaction metadata needed to relay the transactions later.</li>
<li><em>multisig_txset</em> - string. The set of signing keys used in a multisig transaction (empty for non-multisig).</li>
<li><em>unsigned_txset</em> - string. Set of unsigned tx for cold-signing purposes.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sweep_all","params":{"address":"bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH","ring_size":7,"unlock_time":0,"get_tx_keys":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount_list": [9985885770000],
"fee_list": [14114230000],
"multisig_txset": "",
"tx_hash_list": ["ab4b6b65cc8cd8c9dd317d0b90d97582d68d0aa1637b0065b05b61f9a66ea5c5"],
"tx_key_list": ["b9b4b39d3bb3062ddb85ec0266d4df39058f4c86077d99309f218ce4d76af607"],
"unsigned_txset": ""
}
}{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount_list": [
1050866087597
],
"fee_list": [
895960000
],
"multisig_txset": "",
"tx_hash_list": [
"f8ae67010c7bd6f2a900aa83bb17a388f2a3a5b450d7e1e8df35c62cac503753"
],
"tx_key_list": [
"6183eff82d5f43fe50de8fdb535a5e2472e89ddf3017c452a0f0d956d3336f0f"
]
}
}
</code></pre>
<!---
<h3 id="sweep_single"><strong>sweep_single</strong></h3>
<p>Send all of a specific unlocked output to an address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>address</em> - string; Destination public address.</li>
<li><em>account_index</em> - unsigned int; Sweep transactions from this account.</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) Sweep from this set of subaddresses in the account.</li>
<li><em>priority</em> - unsigned int; (Optional) Priority for sending the sweep transfer, partially determines fee.</li>
<li><em>mixin</em> - unsigned int; Number of outputs from the blockchain to mix with (0 means no mixing).</li>
<li><em>ring_size</em> - unsigned int; Sets ringsize to n (mixin + 1).</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks before the blur can be spent (0 to not add a lock).</li>
<li><em>payment_id</em> - string; (Optional) Random 32-byte/64-character hex string to identify a transaction.</li>
<li><em>get_tx_keys</em> - boolean; (Optional) Return the transaction keys after sending.</li>
<li><em>key_image</em> - string; Key image of specific output to sweep.</li>
<li><em>below_amount</em> - unsigned int; (Optional) Include outputs below this amount.</li>
<li><em>do_not_relay</em> - boolean; (Optional) If true, do not relay this sweep transfer. (Defaults to false)</li>
<li><em>get_tx_hex</em> - boolean; (Optional) return the transactions as hex encoded string. (Defaults to false)</li>
<li><em>get_tx_metadata</em> - boolean; (Optional) return the transaction metadata as a string. (Defaults to false)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of: string. The tx hashes of every transaction.</li>
<li><em>tx_key_list</em> - array of: string. The transaction keys for every transaction.</li>
<li><em>amount_list</em> - array of: integer. The amount transferred for every transaction.</li>
<li><em>fee_list</em> - array of: integer. The amount of fees paid for every transaction.</li>
<li><em>tx_blob_list</em> - array of: string. The tx as hex string for every transaction.</li>
<li><em>tx_metadata_list</em> - array of: string. List of transaction metadata needed to relay the transactions later.</li>
<li><em>multisig_txset</em> - string. The set of signing keys used in a multisig transaction (empty for non-multisig).</li>
<li><em>unsigned_txset</em> - string. Set of unsigned tx for cold-signing purposes.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sweep_single","params":{"address":"74Jsocx8xbpTBEjm3ncKE5LBQbiJouyCDaGhgSiebpvNDXZnTAbW2CmUR5SsBeae2pNk9WMVuz6jegkC4krUyqRjA6VjoLD","ring_size":7,"unlock_time":0,"key_image":"a7834459ef795d2efb6f665d2fd758c8d9288989d8d4c712a68f8023f7804a5e","get_tx_keys":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"amount": 27126892247503,
"fee": 14111630000,
"multisig_txset": "",
"tx_blob": "",
"tx_hash": "106d4391a031e5b735ded555862fec63233e34e5fa4fc7edcfdbe461c275ae5b",
"tx_key": "",
"tx_metadata": "",
"unsigned_txset": ""
}
}
</code></pre>
<h3 id="relay_tx"><strong>relay_tx</strong></h3>
<p>Relay a transaction previously created with <code class="language-json">"do_not_relay":true</code>.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>hex</em> - string; transaction metadata returned from a <code class="language-json">transfer</code> method with <code class="language-json">get_tx_metadata</code> set to <code class="language-json">true</code>.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash</em> - String for the publically searchable transaction hash.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"relay_tx","params":{"hex":"...tx_metadata..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"tx_hash": "1c42dcc5672bb09bccf33fb1e9ab4a498af59a6dbd33b3d0cfb289b9e0e25fa5"
}
}
</code></pre>
--->
<h3 id="store"><strong>store</strong></h3>
<p>Save the wallet file.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"store"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="get_payments"><strong>get_payments</strong></h3>
<p>Get a list of incoming payments using a given payment id.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>payment_id</em> - string; Payment ID used to find the payments (16 characters hex).</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>payments</em> - list of:
<ul>
<li><em>payment_id</em> - string; Payment ID matching the input parameter.</li>
<li><em>tx_hash</em> - string; Transaction hash used as the transaction ID.</li>
<li><em>amount</em> - unsigned int; Amount for this payment.</li>
<li><em>block_height</em> - unsigned int; Height of the block that first confirmed this payment.</li>
<li><em>unlock_time</em> - unsigned int; Time (in block height) until this payment is safe to spend.</li>
<li><em>subaddr_index</em> - subaddress index:
<ul>
<li><em>major</em> - unsigned int; Account index for the subaddress.</li>
<li><em>minor</em> - unsigned int; Index of the subaddress in the account.</li>
</ul>
</li>
<li><em>address</em> - string; Address receiving the payment; Base58 representation of the public keys.</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_payments","params":{"payment_id":"60900e5603bf96e3"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"payments": [{
"address": "55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt",
"amount": 1000000000000,
"block_height": 127606,
"payment_id": "60900e5603bf96e3",
"subaddr_index": {
"major": 0,
"minor": 0
},
"tx_hash": "3292e83ad28fc1cc7bc26dbd38862308f4588680fbf93eae3e803cddd1bd614f",
"unlock_time": 0
}]
}
}
</code></pre>
<h3 id="get_bulk_payments"><strong>get_bulk_payments</strong></h3>
<p>Get a list of incoming payments using a given payment id, or a list of payments ids, from a given height. This method is the preferred method over <code class="language-json">get_payments</code> because it has the same functionality but is more extendable. Either is fine for looking up transactions by a single payment ID.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>payment_ids</em> - array of: string; Payment IDs used to find the payments (16 characters hex).</li>
<li><em>min_block_height</em> - unsigned int; The block height at which to start looking for payments.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>payments</em> - list of:
<ul>
<li><em>payment_id</em> - string; Payment ID matching one of the input IDs.</li>
<li><em>tx_hash</em> - string; Transaction hash used as the transaction ID.</li>
<li><em>amount</em> - unsigned int; Amount for this payment.</li>
<li><em>block_height</em> - unsigned int; Height of the block that first confirmed this payment.</li>
<li><em>unlock_time</em> - unsigned int; Time (in block height) until this payment is safe to spend.</li>
<li><em>subaddr_index</em> - subaddress index:
<ul>
<li><em>major</em> - unsigned int; Account index for the subaddress.</li>
<li><em>minor</em> - unsigned int; Index of the subaddress in the account.</li>
</ul>
</li>
<li><em>address</em> - string; Address receiving the payment; Base58 representation of the public keys.</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_bulk_payments","params":{"payment_ids":["0000000000000000"],"min_block_height":"120000"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"payments": [
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"amount": 995302160000,
"block_height": 430550,
"payment_id": "0000000000000000",
"subaddr_index": {
"major": 0,
"minor": 0
},
"tx_hash": "419a10ff7608e97e28cc57e0d40b264100baaa787800715260648886926f9c87",
"unlock_time": 0
}
]
}
}
</code></pre>
<h3 id="incoming_transfers"><strong>incoming_transfers</strong></h3>
<p>Return a list of incoming transfers to the wallet.</p>
<p>Inputs:</p>
<ul>
<li><em>transfer_type</em> - string; "all": all the transfers, "available": only transfers which are not yet spent, OR "unavailable": only transfers which are already spent.</li>
<li><em>account_index</em> - unsigned int; (Optional) Return transfers for this account. (defaults to 0)</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) Return transfers sent to these subaddresses.</li>
<li><em>verbose</em> - boolean; (Optional) Enable verbose output, return key image if true.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>transfers</em> - list of:
<ul>
<li><em>amount</em> - unsigned int; Amount of this transfer.</li>
<li><em>global_index</em> - unsigned int; Mostly internal use, can be ignored by most users.</li>
<li><em>key_image</em> - string; Key image for the incoming transfer's unspent output (empty unless verbose is true).</li>
<li><em>spent</em> - boolean; Indicates if this transfer has been spent.</li>
<li><em>subaddr_index</em> - unsigned int; Subaddress index for incoming transfer.</li>
<li><em>tx_hash</em> - string; Several incoming transfers may share the same hash if they were in the same transaction.</li>
<li><em>tx_size</em> - unsigned int; Size of transaction in bytes.</li>
</ul>
</li>
</ul>
<p>Example, get all transfers:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"incoming_transfers","params":{"transfer_type":"all","account_index":0,"subaddr_indices":[0],"verbose":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"transfers": [
{
"amount": 995302160000,
"global_index": 434997,
"key_image": "ef9e6ccf63881045a66be1572845aacba60a3a2a798dcef10904a8eb6b30abb4",
"spent": true,
"subaddr_index": 0,
"tx_hash": "419a10ff7608e97e28cc57e0d40b264100baaa787800715260648886926f9c87",
"tx_size": 154
},
{
"amount": 59152087597,
"global_index": 435008,
"key_image": "38b6f5d3e5d52cb8231c0c0b287bb42e894cbdf3156cdf9801dac22ebf2e498e",
"spent": true,
"subaddr_index": 0,
"tx_hash": "9f1da098ec48193df4d859b7ae4c359b3d39cc25a7327266ccf3a19fd7e717f9",
"tx_size": 154
}
]
}
}
</code></pre>
<p>Example, get available transfers:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"incoming_transfers","params":{"transfer_type":"available","account_index":0,"subaddr_indices":[3],"verbose":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"transfers": [{
"amount": 27126892247503,
"global_index": 594994,
"key_image": "7e561394806afd1be61980cc3431f6ef3569fa9151cd8d234f8ec13aa145695e",
"spent": false,
"subaddr_index": 3,
"tx_hash": "106d4391a031e5b735ded555862fec63233e34e5fa4fc7edcfdbe461c275ae5b",
"tx_size": 157
},{
"amount": 27169374733655,
"global_index": 594997,
"key_image": "e76c0a3bfeaae35e4173712f782eb34011198e26b990225b71aa787c8ba8a157",
"spent": false,
"subaddr_index": 3,
"tx_hash": "0bd959b59117ee1254bd8e5aa8e77ec04ef744144a1ffb2d5c1eb9380a719621",
"tx_size": 158
}]
}
}
</code></pre>
<!---
<p>Example, get unavailable transfers:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"incoming_transfers","params":{"transfer_type":"unavailable","account_index":0,"subaddr_indices":[3],"verbose":true}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"transfers": [{
"amount": 60000000000000,
"global_index": 122405,
"key_image": "768f5144777eb23477ab7acf83562581d690abaf98ca897c03a9d2b900eb479b",
"spent": true,
"subaddr_index": 3,
"tx_hash": "f53401f21c6a43e44d5dd7a90eba5cf580012ad0e15d050059136f8a0da34f6b",
"tx_size": 159
}]
}
}
</code></pre>
--->
<h3 id="query_key"><strong>query_key</strong></h3>
<p>Return the spend or view private key.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>key_type</em> - string; Which key to retrieve: "mnemonic" - the mnemonic seed (older wallets do not have one) OR "view_key" - the view key</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>key</em> - string; The view key will be hex encoded, while the mnemonic will be a string of words.</li>
</ul>
<p>Example (Query view key):</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"query_key","params":{"key_type":"view_key"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"key": "... key ..."
}
}
</code></pre>
<p>Example (Query mnemonic key):</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"query_key","params":{"key_type":"mnemonic"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"key": "... mnemonic ..."
}
}
</code></pre>
<h3 id="make_integrated_address"><strong>make_integrated_address</strong></h3>
<p>Make an integrated address from the wallet address and a payment id.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>standard_address</em> - string; (Optional, defaults to primary address) Destination public address.</li>
<li><em>payment_id</em> - string; (Optional, defaults to a random ID) 16 characters hex encoded.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>integrated_address</em> - string</li>
<li><em>payment_id</em> - string; hex encoded;</li>
</ul>
<p>Example (Payment ID is empty, use a random ID):</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"make_integrated_address","params":{"standard_address":"bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"integrated_address": "Ur2r4WPbX9iWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k6qiBybEZWmB22HYyuoxF",
"payment_id": "001ee3aa9926770d"
}
}
</code></pre>
<h3 id="split_integrated_address"><strong>split_integrated_address</strong></h3>
<p>Retrieve the standard address and payment id corresponding to an integrated address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>integrated_address</em> - string</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>is_subaddress</em> - boolean; States if the address is a subaddress</li>
<li><em>payment</em> - string; hex encoded</li>
<li><em>standard_address</em> - string</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"split_integrated_address","params":{"integrated_address": "Ur2r4WPbX9iWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k6qiBybEZWmB22HYyuoxF"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"is_subaddress": false,
"payment_id": "001ee3aa9926770d",
"standard_address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH"
}
}
</code></pre>
<h3 id="stop_wallet"><strong>stop_wallet</strong></h3>
<p>Stops the wallet, storing the current state.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"stop_wallet"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="rescan_blockchain"><strong>rescan_blockchain</strong></h3>
<p>Rescan the blockchain from scratch, losing any information which can not be recovered from the blockchain itself.<br />
This includes destination addresses, tx secret keys, tx notes, etc.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"rescan_blockchain"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="set_tx_notes"><strong>set_tx_notes</strong></h3>
<p>Set arbitrary string notes for transactions.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txids</em> - array of string; transaction ids</li>
<li><em>notes</em> - array of string; notes for the transactions</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_tx_notes","params":{"txids":["3292e83ad28fc1cc7bc26dbd38862308f4588680fbf93eae3e803cddd1bd614f"],"notes":["This is an example"]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="get_tx_notes"><strong>get_tx_notes</strong></h3>
<p>Get string notes for transactions.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txids</em> - array of string; transaction ids</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>notes</em> - array of string; notes for the transactions</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_tx_notes","params":{"txids":["3292e83ad28fc1cc7bc26dbd38862308f4588680fbf93eae3e803cddd1bd614f"]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"notes": ["This is an example"]
}
}
</code></pre>
<h3 id="set_attribute"><strong>set_attribute</strong></h3>
<p>Set arbitrary attribute.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>key</em> - string; attribute name</li>
<li><em>value</em> - string; attribute value</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_attribute","params":{"key":"my_attribute","value":"my_value"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="get_attribute"><strong>get_attribute</strong></h3>
<p>Get attribute value by name.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>key</em> - string; attribute name</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>value</em> - string; attribute value</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_attribute","params":{"key":"my_attribute"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"value": "my_value"
}
}
</code></pre>
<h3 id="get_tx_key"><strong>get_tx_key</strong></h3>
<p>Get transaction secret key from transaction id.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_key</em> - string; transaction secret key.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_tx_key","params":{"txid":"... tx hash ..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"tx_key": "... key ..."
}
}
</code></pre>
<h3 id="check_tx_key"><strong>check_tx_key</strong></h3>
<p>Check a transaction in the blockchain with its secret key.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
<li><em>tx_key</em> - string; transaction secret key.</li>
<li><em>address</em> - string; destination public address of the transaction.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>confirmations</em> - unsigned int; Number of block mined after the one with the transaction.</li>
<li><em>in_pool</em> - boolean; States if the transaction is still in pool or has been added to a block.</li>
<li><em>received</em> - unsigned int; Amount of the transaction.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_tx_key","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","tx_key":"feba662cf8fb6d0d0da18fc9b70ab28e01cc76311278fdd7fe7ab16360762b06","address":"7BnERTpvL5MbCLtj5n9No7J5oE5hHiB3tVCK5cjSvCsYWD2WRJLFuWeKTLiXo5QJqt2ZwUaLy2Vh1Ad51K7FNgqcHgjW85o"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"confirmations": 0,
"in_pool": false,
"received": 1000000000000
}
}
</code></pre>
<!---
<h3 id="get_tx_proof"><strong>get_tx_proof</strong></h3>
<p>Get transaction signature to prove it.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
<li><em>address</em> - string; destination public address of the transaction.</li>
<li><em>message</em> - string; (Optional) add a message to the signature to further authenticate the prooving process.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>signature</em> - string; transaction signature.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_tx_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","address":"7BnERTpvL5MbCLtj5n9No7J5oE5hHiB3tVCK5cjSvCsYWD2WRJLFuWeKTLiXo5QJqt2ZwUaLy2Vh1Ad51K7FNgqcHgjW85o","message":"this is my transaction"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signature": "InProofV13vqBCT6dpSAXkypZmSEMPGVnNRFDX2vscUYeVS4WnSVnV5BwLs31T9q6Etfj9Wts6tAxSAS4gkMeSYzzLS7Gt4vvCSQRh9niGJMUDJsB5hTzb2XJiCkUzWkkcjLFBBRVD5QZ"
}
}
</code></pre>
<h3 id="check_tx_proof"><strong>check_tx_proof</strong></h3>
<p>Prove a transaction by checking its signature.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
<li><em>address</em> - string; destination public address of the transaction.</li>
<li><em>message</em> - string; (Optional) Should be the same message used in <code class="language-json">get_tx_proof</code>.</li>
<li><em>signature</em> - string; transaction signature to confirm.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>confirmations</em> - unsigned int; Number of block mined after the one with the transaction.</li>
<li><em>good</em> - boolean; States if the inputs proves the transaction.</li>
<li><em>in_pool</em> - boolean; States if the transaction is still in pool or has been added to a block.</li>
<li><em>received</em> - unsigned int; Amount of the transaction.</li>
</ul>
<p>In the example below, the transaction has been proven:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_tx_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","address":"7BnERTpvL5MbCLtj5n9No7J5oE5hHiB3tVCK5cjSvCsYWD2WRJLFuWeKTLiXo5QJqt2ZwUaLy2Vh1Ad51K7FNgqcHgjW85o","message":"this is my transaction","signature":"InProofV13vqBCT6dpSAXkypZmSEMPGVnNRFDX2vscUYeVS4WnSVnV5BwLs31T9q6Etfj9Wts6tAxSAS4gkMeSYzzLS7Gt4vvCSQRh9niGJMUDJsB5hTzb2XJiCkUzWkkcjLFBBRVD5QZ"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"confirmations": 482,
"good": true,
"in_pool": false,
"received": 1000000000000
}
}
</code></pre>
<p>In the example below, the wrong message is used, avoiding the transaction to be proved:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_tx_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","address":"7BnERTpvL5MbCLtj5n9No7J5oE5hHiB3tVCK5cjSvCsYWD2WRJLFuWeKTLiXo5QJqt2ZwUaLy2Vh1Ad51K7FNgqcHgjW85o","message":"wrong message","signature":"InProofV13vqBCT6dpSAXkypZmSEMPGVnNRFDX2vscUYeVS4WnSVnV5BwLs31T9q6Etfj9Wts6tAxSAS4gkMeSYzzLS7Gt4vvCSQRh9niGJMUDJsB5hTzb2XJiCkUzWkkcjLFBBRVD5QZ"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"confirmations": 0,
"good": false,
"in_pool": false,
"received": 0
}
}
</code></pre>
<h3 id="get_spend_proof"><strong>get_spend_proof</strong></h3>
<p>Generate a signature to prove a spend. Unlike proving a transaction, it does not requires the destination public address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
<li><em>message</em> - string; (Optional) add a message to the signature to further authenticate the prooving process.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>signature</em> - string; spend signature.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_spend_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","message":"this is my transaction"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signature": "SpendProofV1aSh8Todhk54736iXgV6vJAFP7egxByuMWZeyNDaN2JY737S95X5zz5mNMQSuCNSLjjhi5HJCsndpNWSNVsuThxwv285qy1KkUrLFRkxMSCjfL6bbycYN33ScZ5UB4Fzseceo1ndpL393T1q638VmcU3a56dhNHF1RPZFiGPS61FA78nXFSqE9uoKCCoHkEz83M1dQVhxZV5CEPF2P6VioGTKgprLCH9vvj9k1ivd4SX19L2VSMc3zD1u3mkR24ioETvxBoLeBSpxMoikyZ6inhuPm8yYo9YWyFtQK4XYfAV9mJ9knz5fUPXR8vvh7KJCAg4dqeJXTVb4mbMzYtsSZXHd6ouWoyCd6qMALdW8pKhgMCHcVYMWp9X9WHZuCo9rsRjRpg15sJUw7oJg1JoGiVgj8P4JeGDjnZHnmLVa5bpJhVCbMhyM7JLXNQJzFWTGC27TQBbthxCfQaKdusYnvZnKPDJWSeceYEFzepUnsWhQtyhbb73FzqgWC4eKEFKAZJqT2LuuSoxmihJ9acnFK7Ze23KTVYgDyMKY61VXADxmSrBvwUtxCaW4nQtnbMxiPMNnDMzeixqsFMBtN72j5UqhiLRY99k6SE7Qf5f29haNSBNSXCFFHChPKNTwJrehkofBdKUhh2VGPqZDNoefWUwfudeu83t85bmjv8Q3LrQSkFgFjRT5tLo8TMawNXoZCrQpyZrEvnodMDDUUNf3NL7rxyv3gM1KrTWjYaWXFU2RAsFee2Q2MTwUW7hR25cJvSFuB1BX2bfkoCbiMk923tHZGU2g7rSKF1GDDkXAc1EvFFD4iGbh1Q5t6hPRhBV8PEncdcCWGq5uAL5D4Bjr6VXG8uNeCy5oYWNgbZ5JRSfm7QEhPv8Fy9AKMgmCxDGMF9dVEaU6tw2BAnJavQdfrxChbDBeQXzCbCfep6oei6n2LZdE5Q84wp7eoQFE5Cwuo23tHkbJCaw2njFi3WGBbA7uGZaGHJPyB2rofTWBiSUXZnP2hiE9bjJghAcDm1M4LVLfWvhZmFEnyeru3VWMETnetz1BYLUC5MJGFXuhnHwWh7F6r74FDyhdswYop4eWPbyrXMXmUQEccTGd2NaT8g2VHADZ76gMC6BjWESvcnz2D4n8XwdmM7ZQ1jFwhuXrBfrb1dwRasyXxxHMGAC2onatNiExyeQ9G1W5LwqNLAh9hvcaNTGaYKYXoceVzLkgm6e5WMkLsCwuZXvB"
}
}
</code></pre>
<h3 id="check_spend_proof"><strong>check_spend_proof</strong></h3>
<p>Prove a spend using a signature. Unlike proving a transaction, it does not requires the destination public address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; transaction id.</li>
<li><em>message</em> - string; (Optional) Should be the same message used in <code class="language-json">get_spend_proof</code>.</li>
<li><em>signature</em> - string; spend signature to confirm.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>good</em> - boolean; States if the inputs proves the spend.</li>
</ul>
<p>In the example below, the spend has been proven:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_spend_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","message":"this is my transaction","signature":"SpendProofV1aSh8Todhk54736iXgV6vJAFP7egxByuMWZeyNDaN2JY737S95X5zz5mNMQSuCNSLjjhi5HJCsndpNWSNVsuThxwv285qy1KkUrLFRkxMSCjfL6bbycYN33ScZ5UB4Fzseceo1ndpL393T1q638VmcU3a56dhNHF1RPZFiGPS61FA78nXFSqE9uoKCCoHkEz83M1dQVhxZV5CEPF2P6VioGTKgprLCH9vvj9k1ivd4SX19L2VSMc3zD1u3mkR24ioETvxBoLeBSpxMoikyZ6inhuPm8yYo9YWyFtQK4XYfAV9mJ9knz5fUPXR8vvh7KJCAg4dqeJXTVb4mbMzYtsSZXHd6ouWoyCd6qMALdW8pKhgMCHcVYMWp9X9WHZuCo9rsRjRpg15sJUw7oJg1JoGiVgj8P4JeGDjnZHnmLVa5bpJhVCbMhyM7JLXNQJzFWTGC27TQBbthxCfQaKdusYnvZnKPDJWSeceYEFzepUnsWhQtyhbb73FzqgWC4eKEFKAZJqT2LuuSoxmihJ9acnFK7Ze23KTVYgDyMKY61VXADxmSrBvwUtxCaW4nQtnbMxiPMNnDMzeixqsFMBtN72j5UqhiLRY99k6SE7Qf5f29haNSBNSXCFFHChPKNTwJrehkofBdKUhh2VGPqZDNoefWUwfudeu83t85bmjv8Q3LrQSkFgFjRT5tLo8TMawNXoZCrQpyZrEvnodMDDUUNf3NL7rxyv3gM1KrTWjYaWXFU2RAsFee2Q2MTwUW7hR25cJvSFuB1BX2bfkoCbiMk923tHZGU2g7rSKF1GDDkXAc1EvFFD4iGbh1Q5t6hPRhBV8PEncdcCWGq5uAL5D4Bjr6VXG8uNeCy5oYWNgbZ5JRSfm7QEhPv8Fy9AKMgmCxDGMF9dVEaU6tw2BAnJavQdfrxChbDBeQXzCbCfep6oei6n2LZdE5Q84wp7eoQFE5Cwuo23tHkbJCaw2njFi3WGBbA7uGZaGHJPyB2rofTWBiSUXZnP2hiE9bjJghAcDm1M4LVLfWvhZmFEnyeru3VWMETnetz1BYLUC5MJGFXuhnHwWh7F6r74FDyhdswYop4eWPbyrXMXmUQEccTGd2NaT8g2VHADZ76gMC6BjWESvcnz2D4n8XwdmM7ZQ1jFwhuXrBfrb1dwRasyXxxHMGAC2onatNiExyeQ9G1W5LwqNLAh9hvcaNTGaYKYXoceVzLkgm6e5WMkLsCwuZXvB"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": true
}
}
</code></pre>
<p>In the example below, the wrong message is used, avoiding the spend to be proved:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_spend_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","message":"wrong message","signature":"SpendProofV1aSh8Todhk54736iXgV6vJAFP7egxByuMWZeyNDaN2JY737S95X5zz5mNMQSuCNSLjjhi5HJCsndpNWSNVsuThxwv285qy1KkUrLFRkxMSCjfL6bbycYN33ScZ5UB4Fzseceo1ndpL393T1q638VmcU3a56dhNHF1RPZFiGPS61FA78nXFSqE9uoKCCoHkEz83M1dQVhxZV5CEPF2P6VioGTKgprLCH9vvj9k1ivd4SX19L2VSMc3zD1u3mkR24ioETvxBoLeBSpxMoikyZ6inhuPm8yYo9YWyFtQK4XYfAV9mJ9knz5fUPXR8vvh7KJCAg4dqeJXTVb4mbMzYtsSZXHd6ouWoyCd6qMALdW8pKhgMCHcVYMWp9X9WHZuCo9rsRjRpg15sJUw7oJg1JoGiVgj8P4JeGDjnZHnmLVa5bpJhVCbMhyM7JLXNQJzFWTGC27TQBbthxCfQaKdusYnvZnKPDJWSeceYEFzepUnsWhQtyhbb73FzqgWC4eKEFKAZJqT2LuuSoxmihJ9acnFK7Ze23KTVYgDyMKY61VXADxmSrBvwUtxCaW4nQtnbMxiPMNnDMzeixqsFMBtN72j5UqhiLRY99k6SE7Qf5f29haNSBNSXCFFHChPKNTwJrehkofBdKUhh2VGPqZDNoefWUwfudeu83t85bmjv8Q3LrQSkFgFjRT5tLo8TMawNXoZCrQpyZrEvnodMDDUUNf3NL7rxyv3gM1KrTWjYaWXFU2RAsFee2Q2MTwUW7hR25cJvSFuB1BX2bfkoCbiMk923tHZGU2g7rSKF1GDDkXAc1EvFFD4iGbh1Q5t6hPRhBV8PEncdcCWGq5uAL5D4Bjr6VXG8uNeCy5oYWNgbZ5JRSfm7QEhPv8Fy9AKMgmCxDGMF9dVEaU6tw2BAnJavQdfrxChbDBeQXzCbCfep6oei6n2LZdE5Q84wp7eoQFE5Cwuo23tHkbJCaw2njFi3WGBbA7uGZaGHJPyB2rofTWBiSUXZnP2hiE9bjJghAcDm1M4LVLfWvhZmFEnyeru3VWMETnetz1BYLUC5MJGFXuhnHwWh7F6r74FDyhdswYop4eWPbyrXMXmUQEccTGd2NaT8g2VHADZ76gMC6BjWESvcnz2D4n8XwdmM7ZQ1jFwhuXrBfrb1dwRasyXxxHMGAC2onatNiExyeQ9G1W5LwqNLAh9hvcaNTGaYKYXoceVzLkgm6e5WMkLsCwuZXvB"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": false
}
}
</code></pre>
<h3 id="get_reserve_proof"><strong>get_reserve_proof</strong></h3>
<p>Generate a signature to prove of an available amount in a wallet.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>all</em> - boolean; Proves all wallet balance to be disposable.</li>
<li><em>account_index</em> - unsigned int; Specify the account from witch to prove reserve. (ignored if <code class="language-json">all</code> is set to true)</li>
<li><em>amount</em> - unsigned int; Amount (in atomic units) to prove the account has for reserve. (ignored if <code class="language-json">all</code> is set to true)</li>
<li><em>message</em> - string; (Optional) add a message to the signature to further authenticate the prooving process.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>signature</em> - string; reserve signature.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_reserve_proof","params":{"all":false,"account_index":0,"amount":100000000000}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signature": "ReserveProofV11BZ23sBt9sZJeGccf84mzyAmNCP3KzYbE1111112VKmH111118NfCYJQjZ6c46gT2kXgcHCaSSZeL8sRdzqjqx7i1e7FQfQGu2o113UYFVdwzHQi3iENDPa76Kn1BvywbKz3bMkXdZkBEEhBSF4kjjGaiMJ1ucKb6wvMVC4A8sA4nZEdL2Mk3wBucJCYTZwKqA8i1M113kqakDkG25FrjiDqdQTCYz2wDBmfKxF3eQiV5FWzZ6HmAyxnqTWUiMWukP9A3Edy3ZXqjP1b23dhz7Mbj39bBxe3ZeDNu9HnTSqYvHNRyqCkeUMJpHyQweqjGUJ1DSfFYr33J1E7MkhMnEi1o7trqWjVix32XLetYfePG73yvHbS24837L7Q64i5n1LSpd9yMiQZ3Dyaysi5y6jPx7TpAvnSqBFtuCciKoNzaXoA3dqt9cuVFZTXzdXKqdt3cXcVJMNxY8RvKPVQHhUur94Lpo1nSpxf7BN5a5rHrbZFqoZszsZmiWikYPkLX72XUdw6NWjLrTBxSy7KuPYH86c6udPEXLo2xgN6XHMBMBJzt8FqqK7EcpNUBkuHm2AtpGkf9CABY3oSjDQoRF5n4vNLd3qUaxNsG4XJ12L9gJ7GrK273BxkfEA8fDdxPrb1gpespbgEnCTuZHqj1A"
}
}
</code></pre>
<h3 id="check_reserve_proof"><strong>check_reserve_proof</strong></h3>
<p>Proves a wallet has a disposable reserve using a signature.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>address</em> - string; Public address of the wallet.</li>
<li><em>message</em> - string; (Optional) Should be the same message used in <code class="language-json">get_reserve_proof</code>.</li>
<li><em>signature</em> - string; reserve signature to confirm.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>good</em> - boolean; States if the inputs proves the reserve.</li>
</ul>
<p>In the example below, the reserve has been proven:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_reserve_proof","params":{"address":"55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt","signature":"ReserveProofV11BZ23sBt9sZJeGccf84mzyAmNCP3KzYbE1111112VKmH111118NfCYJQjZ6c46gT2kXgcHCaSSZeL8sRdzqjqx7i1e7FQfQGu2o113UYFVdwzHQi3iENDPa76Kn1BvywbKz3bMkXdZkBEEhBSF4kjjGaiMJ1ucKb6wvMVC4A8sA4nZEdL2Mk3wBucJCYTZwKqA8i1M113kqakDkG25FrjiDqdQTCYz2wDBmfKxF3eQiV5FWzZ6HmAyxnqTWUiMWukP9A3Edy3ZXqjP1b23dhz7Mbj39bBxe3ZeDNu9HnTSqYvHNRyqCkeUMJpHyQweqjGUJ1DSfFYr33J1E7MkhMnEi1o7trqWjVix32XLetYfePG73yvHbS24837L7Q64i5n1LSpd9yMiQZ3Dyaysi5y6jPx7TpAvnSqBFtuCciKoNzaXoA3dqt9cuVFZTXzdXKqdt3cXcVJMNxY8RvKPVQHhUur94Lpo1nSpxf7BN5a5rHrbZFqoZszsZmiWikYPkLX72XUdw6NWjLrTBxSy7KuPYH86c6udPEXLo2xgN6XHMBMBJzt8FqqK7EcpNUBkuHm2AtpGkf9CABY3oSjDQoRF5n4vNLd3qUaxNsG4XJ12L9gJ7GrK273BxkfEA8fDdxPrb1gpespbgEnCTuZHqj1A"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": true,
"spent": 0,
"total": 100000000000
}
}
</code></pre>
<p>In the example below, all wallet reserve has been proven:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_reserve_proof","params":{"address":"55LTR8KniP4LQGJSPtbYDacR7dz8RBFnsfAKMaMuwUNYX6aQbBcovzDPyrQF9KXF9tVU6Xk3K8no1BywnJX6GvZX8yJsXvt","message":"I have 10 at least","signature":"...signature..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": true,
"spent": 0,
"total": 164113855714662789
}
}
</code></pre>
<p>In the example below, the wrong message is used, avoiding the reserve to be proved:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"check_spend_proof","params":{"txid":"19d5089f9469db3d90aca9024dfcb17ce94b948300101c8345a5e9f7257353be","message":"wrong message","signature":"SpendProofV1aSh8Todhk54736iXgV6vJAFP7egxByuMWZeyNDaN2JY737S95X5zz5mNMQSuCNSLjjhi5HJCsndpNWSNVsuThxwv285qy1KkUrLFRkxMSCjfL6bbycYN33ScZ5UB4Fzseceo1ndpL393T1q638VmcU3a56dhNHF1RPZFiGPS61FA78nXFSqE9uoKCCoHkEz83M1dQVhxZV5CEPF2P6VioGTKgprLCH9vvj9k1ivd4SX19L2VSMc3zD1u3mkR24ioETvxBoLeBSpxMoikyZ6inhuPm8yYo9YWyFtQK4XYfAV9mJ9knz5fUPXR8vvh7KJCAg4dqeJXTVb4mbMzYtsSZXHd6ouWoyCd6qMALdW8pKhgMCHcVYMWp9X9WHZuCo9rsRjRpg15sJUw7oJg1JoGiVgj8P4JeGDjnZHnmLVa5bpJhVCbMhyM7JLXNQJzFWTGC27TQBbthxCfQaKdusYnvZnKPDJWSeceYEFzepUnsWhQtyhbb73FzqgWC4eKEFKAZJqT2LuuSoxmihJ9acnFK7Ze23KTVYgDyMKY61VXADxmSrBvwUtxCaW4nQtnbMxiPMNnDMzeixqsFMBtN72j5UqhiLRY99k6SE7Qf5f29haNSBNSXCFFHChPKNTwJrehkofBdKUhh2VGPqZDNoefWUwfudeu83t85bmjv8Q3LrQSkFgFjRT5tLo8TMawNXoZCrQpyZrEvnodMDDUUNf3NL7rxyv3gM1KrTWjYaWXFU2RAsFee2Q2MTwUW7hR25cJvSFuB1BX2bfkoCbiMk923tHZGU2g7rSKF1GDDkXAc1EvFFD4iGbh1Q5t6hPRhBV8PEncdcCWGq5uAL5D4Bjr6VXG8uNeCy5oYWNgbZ5JRSfm7QEhPv8Fy9AKMgmCxDGMF9dVEaU6tw2BAnJavQdfrxChbDBeQXzCbCfep6oei6n2LZdE5Q84wp7eoQFE5Cwuo23tHkbJCaw2njFi3WGBbA7uGZaGHJPyB2rofTWBiSUXZnP2hiE9bjJghAcDm1M4LVLfWvhZmFEnyeru3VWMETnetz1BYLUC5MJGFXuhnHwWh7F6r74FDyhdswYop4eWPbyrXMXmUQEccTGd2NaT8g2VHADZ76gMC6BjWESvcnz2D4n8XwdmM7ZQ1jFwhuXrBfrb1dwRasyXxxHMGAC2onatNiExyeQ9G1W5LwqNLAh9hvcaNTGaYKYXoceVzLkgm6e5WMkLsCwuZXvB"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": false
}
}
</code></pre>
--->
<h3 id="get_transfers"><strong>get_transfers</strong></h3>
<p>Returns a list of transfers.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>in</em> - boolean; (Optional) Include incoming transfers.</li>
<li><em>out</em> - boolean; (Optional) Include outgoing transfers.</li>
<li><em>pending</em> - boolean; (Optional) Include pending transfers.</li>
<li><em>failed</em> - boolean; (Optional) Include failed transfers.</li>
<li><em>pool</em> - boolean; (Optional) Include transfers from the daemon's transaction pool.</li>
<li><em>filter_by_height</em> - boolean; (Optional) Filter transfers by block height.</li>
<li><em>min_height</em> - unsigned int; (Optional) Minimum block height to scan for transfers, if filtering by height is enabled.</li>
<li><em>max_height</em> - unsigned int; (Opional) Maximum block height to scan for transfers, if filtering by height is enabled (defaults to max block height).</li>
<li><em>account_index</em> - unsigned int; (Optional) Index of the account to query for transfers. (defaults to 0)</li>
<li><em>subaddr_indices</em> - array of unsigned int; (Optional) List of subaddress indices to query for transfers. (Defaults to empty - all indices)</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>in</em> array of transfers:
<ul>
<li><em>address</em> - string; Public address of the transfer.</li>
<li><em>amount</em> - unsigned int; Amount transferred.</li>
<li><em>confirmations</em> - unsigned int; Number of block mined since the block containing this transaction (or block height at which the transaction should be added to a block if not yet confirmed).</li>
<li><em>double_spend_seen</em> - boolean; True if the key image(s) for the transfer have been seen before.</li>
<li><em>fee</em> - unsigned int; Transaction fee for this transfer.</li>
<li><em>height</em> - unsigned int; Height of the first block that confirmed this transfer (0 if not mined yet).</li>
<li><em>note</em> - string; Note about this transfer.</li>
<li><em>payment_id</em> - string; Payment ID for this transfer.</li>
<li><em>subaddr_index</em> - JSON object containing the major &amp; minor subaddress index:
<ul>
<li><em>major</em> - unsigned int; Account index for the subaddress.</li>
<li><em>minor</em> - unsigned int; Index of the subaddress under the account.</li>
</ul>
</li>
<li><em>suggested_confirmations_threshold</em> - unsigned int; Estimation of the confirmations needed for the transaction to be included in a block.</li>
<li><em>timestamp</em> - unsigned int; POSIX timestamp for when this transfer was first confirmed in a block (or timestamp submission if not mined yet).</li>
<li><em>txid</em> - string; Transaction ID for this transfer.</li>
<li><em>type</em> - string; Transfer type: "in"</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks until transfer is safely spendable.</li>
</ul>
</li>
<li><em>out</em> array of transfers (see above).</li>
<li><em>pending</em> array of transfers (see above).</li>
<li><em>failed</em> array of transfers (see above).</li>
<li><em>pool</em> array of transfers (see above).</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_transfers","params":{"in":true,"account_index":0}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"in": [
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"amount": 59152087597,
"double_spend_seen": false,
"fee": 672750000,
"height": 430559,
"note": "",
"payment_id": "0000000000000000",
"subaddr_index": {
"major": 0,
"minor": 0
},
"timestamp": 1556710384,
"txid": "9f1da098ec48193df4d859b7ae4c359b3d39cc25a7327266ccf3a19fd7e717f9",
"type": "in",
"unlock_time": 0
},
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"amount": 995302160000,
"double_spend_seen": false,
"fee": 672780000,
"height": 430550,
"note": "",
"payment_id": "0000000000000000",
"subaddr_index": {
"major": 0,
"minor": 0
},
"timestamp": 1556709916,
"txid": "419a10ff7608e97e28cc57e0d40b264100baaa787800715260648886926f9c87",
"type": "in",
"unlock_time": 0
}
]
}
}
</code></pre>
<h3 id="get_transfer_by_txid"><strong>get_transfer_by_txid</strong></h3>
<p>Show information about a transfer to/from this address.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>txid</em> - string; Transaction ID used to find the transfer.</li>
<li><em>account_index</em> - unsigned int; (Optional) Index of the account to query for the transfer.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>transfer</em> - JSON object containing payment information:
<ul>
<li><em>address</em> - string; Address that transferred the funds. Base58 representation of the public keys.</li>
<li><em>amount</em> - unsigned int; Amount of this transfer.</li>
<li><em>confirmations</em> - unsigned int; Number of block mined since the block containing this transaction (or block height at which the transaction should be added to a block if not yet confirmed).</li>
<li><em>destinations</em> - array of JSON objects containing transfer destinations:
<ul>
<li><em>amount</em> - unsigned int; Amount transferred to this destination.</li>
<li><em>address</em> - string; Address for this destination. Base58 representation of the public keys.</li>
</ul>
</li>
<li><em>double_spend_seen</em> - boolean; True if the key image(s) for the transfer have been seen before.</li>
<li><em>fee</em> - unsigned int; Transaction fee for this transfer.</li>
<li><em>height</em> - unsigned int; Height of the first block that confirmed this transfer.</li>
<li><em>note</em> - string; Note about this transfer.</li>
<li><em>payment_id</em> - string; Payment ID for this transfer.</li>
<li><em>subaddr_index</em> - JSON object containing the major &amp; minor subaddress index:
<ul>
<li><em>major</em> - unsigned int; Account index for the subaddress.</li>
<li><em>minor</em> - unsigned int; Index of the subaddress under the account.</li>
</ul>
</li>
<li><em>suggested_confirmations_threshold</em> - unsigned int; Estimation of the confirmations needed for the transaction to be included in a block.</li>
<li><em>timestamp</em> - unsigned int; POSIX timestamp for the block that confirmed this transfer (or timestamp submission if not mined yet).</li>
<li><em>txid</em> - string; Transaction ID of this transfer (same as input TXID).</li>
<li><em>type</em> - string; Type of transfer, one of the following: "in", "out", "pending", "failed", "pool"</li>
<li><em>unlock_time</em> - unsigned int; Number of blocks until transfer is safely spendable.</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_transfer_by_txid","params":{"txid":"c36258a276018c3a4bc1f195a7fb530f50cd63a4fa765fb7c6f7f49fc051762a"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"transfer": {
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"amount": 59152087597,
"double_spend_seen": false,
"fee": 672750000,
"height": 430559,
"note": "",
"payment_id": "0000000000000000",
"subaddr_index": {
"major": 0,
"minor": 0
},
"timestamp": 1556710384,
"txid": "9f1da098ec48193df4d859b7ae4c359b3d39cc25a7327266ccf3a19fd7e717f9",
"type": "in",
"unlock_time": 0
}
}
}
</code></pre>
<h3 id="sign"><strong>sign</strong></h3>
<p>Sign a string.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>data</em> - string; Anything you need to sign.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>signature</em> - string; Signature generated against the "data" and the account public address.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sign","params":{"data":"This is sample data to be signed"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signature": "SigV1Dp8Saxwuamk6A5UxniooX2ViAJSSA4EzBL7qvPvC4vQHAzThEhVUXcFY3SjwgJkBWuC8ZkrzXy6Aq7v6gzwdFYfS"
}
}
</code></pre>
<h3 id="verify"><strong>verify</strong></h3>
<p>Verify a signature on a string.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>data</em> - string; What should have been signed.</li>
<li><em>address</em> - string; Public address of the wallet used to <code class="language-json">sign</code> the data.</li>
<li><em>signature</em> - string; signature generated by <code class="language-json">sign</code> method.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>good</em> - boolean;</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"verify","params":{"data":"This is sample data to be signed","address":"bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH","signature":"SigV1Dp8Saxwuamk6A5UxniooX2ViAJSSA4EzBL7qvPvC4vQHAzThEhVUXcFY3SjwgJkBWuC8ZkrzXy6Aq7v6gzwdFYfS"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"good": true
}
}
</code></pre>
<h3 id="export_key_images"><strong>export_key_images</strong></h3>
<p>Export a signed set of key images.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>signed_key_images</em> - array of signed key images:
<ul>
<li><em>key_image</em> - string;</li>
<li><em>signature</em> - string;</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"export_key_images"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"signed_key_images": [
{
"key_image": "ef9e6ccf63881045a66be1572845aacba60a3a2a798dcef10904a8eb6b30abb4",
"signature": "30f525c6bbbb24ee9dc410c4c37e3ba3a77621ac10a8e479a71990fe1c4ecc0b32b11a8a271d40888bd0073cfc3cb407b922d7cf039d52cdeafca758a368ce0f"
},
{
"key_image": "38b6f5d3e5d52cb8231c0c0b287bb42e894cbdf3156cdf9801dac22ebf2e498e",
"signature": "430bfc3418aedb902336700e0a68a9505f997c2411af39c19b93453674202806ea9cc28e40b6f4f844f91b1e724a09044de22c0894020d7a7c43ca86a564e80b"
},
{
"key_image": "525d6de987e41af3dcc060b717df73c48b0fa4d2a172bdde5d776294da161b30",
"signature": "48d3cd5a9bdcfa5306421a607f9d628fae1ea36949a94665ef170a9f174ec4087bbd5fdf123a90d38b90f19fb99df9c93d51866bed01b16cd999839c1a9ebb00"
},
{...}
]
}
}
</code></pre>
<h3 id="import_key_images"><strong>import_key_images</strong></h3>
<p>Import signed key images list and verify their spent status.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>signed_key_images</em> - array of signed key images:
<ul>
<li><em>key_image</em> - string;</li>
<li><em>signature</em> - string;</li>
</ul>
</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>height</em> - unsigned int;</li>
<li><em>spent</em> - unsigned int; Amount (in atomic units) spent from those key images.</li>
<li><em>unspent</em> - unsigned int; Amount (in atomic units) still available from those key images.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"import_key_images", "params":{"signed_key_images":[{"key_image": "ef9e6ccf63881045a66be1572845aacba60a3a2a798dcef10904a8eb6b30abb4","signature": "30f525c6bbbb24ee9dc410c4c37e3ba3a77621ac10a8e479a71990fe1c4ecc0b32b11a8a271d40888bd0073cfc3cb407b922d7cf039d52cdeafca758a368ce0f"},{"key_image": "38b6f5d3e5d52cb8231c0c0b287bb42e894cbdf3156cdf9801dac22ebf2e498e","signature": "430bfc3418aedb902336700e0a68a9505f997c2411af39c19b93453674202806ea9cc28e40b6f4f844f91b1e724a09044de22c0894020d7a7c43ca86a564e80b"}]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"height": 430559,
"spent": 4210190430388,
"unspent": 1050194147597
}
}
</code></pre>
<h3 id="make_uri"><strong>make_uri</strong></h3>
<p>Create a payment URI using the official URI spec.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>address</em> - string; Wallet address</li>
<li><em>amount</em> - unsigned int; (optional) the integer amount to receive, in <strong>atomic units</strong></li>
<li><em>payment_id</em> - string; (optional) 16 or 64 character hexadecimal payment id</li>
<li><em>recipient_name</em> - string; (optional) name of the payment recipient</li>
<li><em>tx_description</em> - string; (optional) Description of the reason for the tx</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>uri</em> - string; This contains all the payment input information as a properly formatted payment URI</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"make_uri","params":{"address":"bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH","amount":10,"payment_id":"420fa29b2d9a49f5","tx_description":"Testing out the make_uri method function.","recipient_name":"el00ruobuob mainnet wallet"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"uri": "blur:bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH?tx_payment_id=420fa29b2d9a49f5&tx_amount=0.000000000010&recipient_name=el00ruobuob%20mainnet%20wallet&tx_description=Testing%20out%20the%20make_uri%20method%20function."
}
}
</code></pre>
<h3 id="parse_uri"><strong>parse_uri</strong></h3>
<p>Parse a payment URI to get payment information.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>uri</em> - string; This contains all the payment input information as a properly formatted payment URI</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>uri</em> - JSON object containing payment information:
<ul>
<li><em>address</em> - string; Wallet address</li>
<li><em>amount</em> - unsigned int; Integer amount to receive, in <strong>atomic units</strong> (0 if not provided)</li>
<li><em>payment_id</em> - string; 16 or 64 character hexadecimal payment id (empty if not provided)</li>
<li><em>recipient_name</em> - string; Name of the payment recipient (empty if not provided)</li>
<li><em>tx_description</em> - string; Description of the reason for the tx (empty if not provided)</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://127.0.0.1:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"parse_uri","params":{"uri":"blur:bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH?tx_payment_id=420fa29b2d9a49f5&tx_amount=0.000000000010&recipient_name=el00ruobuob%20mainnet%20wallet&tx_description=Testing%20out%20the%20make_uri%20method%20function."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"uri": {
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"amount": 10,
"payment_id": "420fa29b2d9a49f5",
"recipient_name": "el00ruobuob mainnet wallet",
"tx_description": "Testing out the make_uri method function."
}
}
}
</code></pre>
<h3 id="get_address_book"><strong>get_address_book</strong></h3>
<p>Retrieves entries from the address book.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>entries</em> - array of unsigned int; indices of the requested address book entries</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>entries</em> - array of entries:
<ul>
<li><em>address</em> - string; Public address of the entry</li>
<li><em>description</em> - string; Description of this address entry</li>
<li><em>index</em> - unsigned int;</li>
<li><em>payment_id</em> - string;</li>
</ul>
</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_address_book","params":{"entries":[0,0]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"entries": [
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"description": "Primary account",
"index": 0,
"payment_id": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"address": "bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH",
"description": "Primary account",
"index": 0,
"payment_id": "0000000000000000000000000000000000000000000000000000000000000000"
}
]
}
}
</code></pre>
<h3 id="add_address_book"><strong>add_address_book</strong></h3>
<p>Add an entry to the address book.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>address</em> - string;</li>
<li><em>payment_id</em> - (optional) string, defaults to "0000000000000000000000000000000000000000000000000000000000000000";</li>
<li><em>description</em> - (optional) string, defaults to "";</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>index</em> - unsigned int; The index of the address book entry.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{{"jsonrpc":"2.0","id":"0","method":"add_address_book","params":{"address":"bL2op2acR5JWLGsoCy4s3u8aH4EsWGLTfPW9DD1sKkP5hsqJS3CMq7W3CehMA44gkr5PrkkEt5uNwU8QxxXbSh7k1JPQALpfH","description":"Primary account"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"index": 0
}
}
</code></pre>
<h3 id="delete_address_book"><strong>delete_address_book</strong></h3>
<p>Delete an entry from the address book.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>index</em> - unsigned int; The index of the address book entry.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"delete_address_book","params":{"index":0}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<!---
<h3 id="refresh"><strong>refresh</strong></h3>
<p>Refresh a wallet after openning.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>start_height</em> - unsigned int; (Optional) The block height from which to start refreshing.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>blocks_fetched</em> - unsigned int; Number of new blocks scanned.</li>
<li><em>received_money</em> - boolean; States if transactions to the wallet have been found in the blocks.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"refresh","params":{"start_height":100000}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"blocks_fetched": 24,
"received_money": true
}
}
</code></pre>
--->
<h3 id="rescan_spent"><strong>rescan_spent</strong></h3>
<p>Rescan the blockchain for spent outputs.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"rescan_spent"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="start_mining"><strong>start_mining</strong></h3>
<p>Start mining in the Blur Network daemon.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>threads_count</em> - unsigned int; Number of threads created for mining.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"start_mining","params":{"threads_count":4}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="stop_mining"><strong>stop_mining</strong></h3>
<p>Stop mining in the Blur Network daemon.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"stop_mining"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="get_languages"><strong>get_languages</strong></h3>
<p>Get a list of available languages for your wallet's seed.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>languages</em> - array of string; List of available languages</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_languages"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"languages": [
"Deutsch",
"English",
"Español",
"Français",
"Italiano",
"Nederlands",
"Português",
"русский язык",
"日本語",
"简体中文 (中国)",
"Esperanto",
"Lojban"
]
}
}
</code></pre>
<h3 id="create_wallet"><strong>create_wallet</strong></h3>
<p>Create a new wallet. You need to have set the argument "–wallet-dir" when launching blur-wallet-rpc to make this work.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>filename</em> - string; Wallet file name.</li>
<li><em>password</em> - string; (Optional) password to protect the wallet.</li>
<li><em>language</em> - string; Language for your wallets' seed.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"create_wallet","params":{"filename":"mytestwallet","password":"mytestpassword","language":"English"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="open_wallet"><strong>open_wallet</strong></h3>
<p>Open a wallet. You need to have set the argument "–wallet-dir" when launching blur-wallet-rpc to make this work.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>filename</em> - string; wallet name stored in –wallet-dir.</li>
<li><em>password</em> - string; (Optional) only needed if the wallet has a password defined.</li>
</ul>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"open_wallet","params":{"filename":"mytestwallet","password":"mytestpassword"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<h3 id="close_wallet"><strong>close_wallet</strong></h3>
<p>Close the currently opened wallet, after trying to save it.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs: <em>None</em>.</p>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"close_wallet"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
}
}
</code></pre>
<!---
<h3 id="is_multisig"><strong>is_multisig</strong></h3>
<p>Check if a wallet is a multisig one.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>multisig</em> - boolean; States if the wallet is multisig</li>
<li><em>ready</em> - boolean;</li>
<li><em>threshold</em> - unsigned int; Amount of signature needed to sign a transfer.</li>
<li><em>total</em> - unsigned int; Total amount of signature in the multisig wallet.</li>
</ul>
<p>Example for a non-multisig wallet:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"is_multisig"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"multisig": false,
"ready": false,
"threshold": 0,
"total": 0
}
}
</code></pre>
<p>Example for a multisig wallet:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"is_multisig"}' -H 'Content-Type: application/json' {
"id": "0",
"jsonrpc": "2.0",
"result": {
"multisig": true,
"ready": true,
"threshold": 2,
"total": 2
}
}
</code></pre>
<h3 id="prepare_multisig"><strong>prepare_multisig</strong></h3>
<p>Prepare a wallet for multisig by generating a multisig string to share with peers.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>multisig_info</em> - string; Multisig string to share with peers to create the multisig wallet.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"prepare_multisig"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"multisig_info": "MultisigV1e5r2JjJUjCeYGEkPu2iwVMfj36ddYUK55DFLt5GNt6myCvdQN7zYcZkG1hcGiLo2wU8hXHK2un8Ep9Z9hsecADr89Qi7hupJkn9VqP7wycyb1w5kDhN2Mrc5PU7J4y7zhVgnGKSRgdwDRr2Nb3ADAzd7uB7tettMvxk37amcjabFVhRr"
}
}
</code></pre>
<h3 id="make_multisig"><strong>make_multisig</strong></h3>
<p>Make a wallet multisig by importing peers multisig string.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>multisig_info</em> - array of string; List of multisig string from peers.</li>
<li><em>threshold</em> - unsigned int; Amount of signatures needed to sign a transfer. Must be less or equal than the amount of signature in <code class="language-json">multisig_info</code>.</li>
<li><em>password</em> - string; Wallet password</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>address</em> - string; multisig wallet address.</li>
<li><em>multisig_info</em> - string; Multisig string to share with peers to create the multisig wallet (extra step for N-1/N wallets).</li>
</ul>
<p>Example for 2/2 Multisig Wallet:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"make_multisig","params":{"multisig_info":["MultisigV1MfveJPeJFpzBdiSZEXqtke3uxFW48ZKni9Uprpb969mnXai6ASXkt5Ji1LtqjYNT4Z7PHMxvZtvVE4eTfEaQuxcbZ3BHTqxNvznPAAGvzpwQQbAJS9JRTV3B3SSP3AEcYZPYPFSwKrdST7CHfDtV3j7dwvfcKcEKrNkwH9xEGCbRZhsD"],"threshold":2}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"address": "",
"multisig_info": ""
}
}
</code></pre>
<p>Example for 2/3 Multisig Wallet:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"make_multisig","params":{"multisig_info":["MultisigV1MTVm4DZAdJw1PyVutpSy8Q4WisZBCFRAaZY7hhQnMwr5AZ4swzThyaSiVVQM5FHj1JQi3zPKhQ4k81BZkPSEaFjwRJtbfqfJcVvCqRnmBVcWVxhnihX5s8fZWBCjKrzT3CS95spG4dzNzJSUcjheAkLzCpVmSzGtgwMhAS3Vuz9Pas24","MultisigV1TEx58ycKCd6ADCfxF8hALpcdSRAkhZTi1bu4Rs6FdRC98EdB1LY7TAkMxasM55khFgcxrSXivaSr5FCMyJGHmojm1eE4HpGWPeZKv6cgCTThRzC4u6bkkSoFQdbzWN92yn1XEjuP2XQrGHk81mG2LMeyB51MWKJAVF99Pg9mX2BpmYFj"],"threshold":2}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"address": "51sLpF8fWaK1111111111111111111111111111111111ABVbHNf1JFWJyFp5YZgZRQ44RiviJi1sPHgLVMbckRsDkTRgKS",
"multisig_info": "MultisigxV18jCaYAQQvzCMUJaAWMCaAbAoHpAD6WPmYDmLtBtazD654E8RWkLaGRf29fJ3stU471MELKxwufNYeigP7LoE4tn2Sscwn5g7PyCfcBc1V4ffRHY3Kxqq6VocSCUTncpVeUskaDKuTAWtdB9VTBGW7iG1cd7Zm1dYgur3CiemkGjRUAj9bL3xTEuyaKGYSDhtpFZFp99HQX57EawhiRHk3qq4hjWX"
}
}
</code></pre>
<h3 id="export_multisig_info"><strong>export_multisig_info</strong></h3>
<p>Export multisig info for other participants.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs: <em>None</em>.</p>
<p>Outputs:</p>
<ul>
<li><em>info</em> - string; Multisig info in hex format for other participants.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"export_multisig_info"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"info": "4d6f6e65726f206d756c7469736967206578706f72740105cf6442b09b75f5eca9d846771fe1a879c9a97ab0553ffbcec64b1148eb7832b51e7898d7944c41cee000415c5a98f4f80dc0efdae379a98805bb6eacae743446f6f421cd03e129eb5b27d6e3b73eb6929201507c1ae706c1a9ecd26ac8601932415b0b6f49cbbfd712e47d01262c59980a8f9a8be776f2bf585f1477a6df63d6364614d941ecfdcb6e958a390eb9aa7c87f056673d73bc7c5f0ab1f74a682e902e48a3322c0413bb7f6fd67404f13fb8e313f70a0ce568c853206751a334ef490068d3c8ca0e"
}
}
</code></pre>
<h3 id="import_multisig_info"><strong>import_multisig_info</strong></h3>
<p>Import multisig info from other participants.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>info</em> - array of string; List of multisig info in hex format from other participants.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>n_outputs</em> - unsigned int; Number of outputs signed with those multisig info.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"import_multisig_info","params":{"info":["...multisig_info..."]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"n_outputs": 35
}
}
</code></pre>
<h3 id="finalize_multisig"><strong>finalize_multisig</strong></h3>
<p>Turn this wallet into a multisig wallet, extra step for N-1/N wallets.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>multisig_info</em> - array of string; List of multisig string from peers.</li>
<li><em>password</em> - string; Wallet password</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>address</em> - string; multisig wallet address.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"finalize_multisig","params":{"multisig_info":["MultisigxV1JNC6Ja2oBt5Sqea9LN2YEF7WYZCpHqr2EKvPG89Trf3X4E8RWkLaGRf29fJ3stU471MELKxwufNYeigP7LoE4tn2McPr4SbL9q15xNvZT5uwC9YRr7UwjXqSZHmTWN9PBuZEKVAQ4HPPyQciSCdNjgwsuFRBzrskMdMUwNMgKst1debYfm37i6PSzDoS2tk4kYTYj83kkAdR7kdshet1axQPd6HQ","MultisigxV1Unma7Ko4zdd8Ps3Af4oZwtj2JdWKzwNfP6s2G9ZvXhMoSscwn5g7PyCfcBc1V4ffRHY3Kxqq6VocSCUTncpVeUskMcPr4SbL9q15xNvZT5uwC9YRr7UwjXqSZHmTWN9PBuZE1LTpWxLoC3vPMSrqVVcjnmL9LYfdCZz3fECjNZbCEDq3PHDiUuY5jurQTcNoGhDTio5WM9xaAdim9YByiS5KyqF4"]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"address": "5B9gZUTDuHTcGGuY3nL3t8K2tDnEHeRVHSBQgLZUTQxtFYVLnho5JJjWJyFp5YZgZRQ44RiviJi1sPHgLVMbckRsDqDx1gV"
}
}
</code></pre>
<h3 id="sign_multisig"><strong>sign_multisig</strong></h3>
<p>Sign a transaction in multisig.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tx_data_hex</em> - string; Multisig transaction in hex format, as returned by <code class="language-json">transfer</code> under <code class="language-json">multisig_txset</code>.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_data_hex</em> - string; Multisig transaction in hex format.</li>
<li><em>tx_hash_list</em> - array of string; List of transaction Hash.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"sign_multisig","params":{"tx_data_hex":"...multisig_txset..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"tx_data_hex": "...multisig_txset...",
"tx_hash_list": ["4996091b61c1be112c1097fd5e97d8ff8b28f0e5e62e1137a8c831bacf034f2d"]
}
}
</code></pre>
<h3 id="submit_multisig"><strong>submit_multisig</strong></h3>
<p>Submit a signed multisig transaction.</p>
<p>Alias: <em>None</em>.</p>
<p>Inputs:</p>
<ul>
<li><em>tx_data_hex</em> - string; Multisig transaction in hex format, as returned by <code class="language-json">sign_multisig</code> under <code class="language-json">tx_data_hex</code>.</li>
</ul>
<p>Outputs:</p>
<ul>
<li><em>tx_hash_list</em> - array of string; List of transaction Hash.</li>
</ul>
<p>Example:</p>
<pre><code class="language-json">$ curl -X POST http://localhost:52544/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"submit_multisig","params":{"tx_data_hex":"...tx_data_hex..."}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"tx_hash_list": ["4996091b61c1be112c1097fd5e97d8ff8b28f0e5e62e1137a8c831bacf034f2d"]
}
}
</code></pre>
Multisig needs some debugging -- works sometimes, but not others. --->
<script src="style/prism.js"></script>
</body>
</html>
You can’t perform that action at this time.