Blur Network Wallet RPC Documentation

Anyone is free to read, propose changes, or improve the source code for this repository.

Please say something if you see an error! More sets of eyes is almost always a good thing!

Launch blur-wallet-rpc with the option --rpc-bind-port 52544 for the commands listed below to work, as written. Alternatively, you may set a different port, and modify where necessary.

Introduction

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.

All blur-wallet-rpc methods use the same JSON RPC interface. For example:

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'
    

If the blur-wallet-rpc was executed with the --rpc-login argument as username:password, then follow this example:

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'
    

Note: "atomic units" refer to the smallest fraction of 1 BLUR according to the blurd implementation. 1 BLUR = 1e12 atomic units.

Index of JSON RPC Methods:


JSON RPC Methods:

get_balance

Return the wallet's balance.

Alias: getbalance.

Inputs:

Outputs:

Example:

$ 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
  }
}

get_address

Return the wallet's addresses for an account. Optionally filter for specific set of subaddresses.

Alias: getaddress.

Inputs:

Outputs:

Example:

$ 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
      }
    ]
  }
}

create_address

Create a new address for an account. Optionally, label the new address.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

label_address

Label an address.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

get_accounts

Get all accounts for a wallet. Optionally filter accounts by tag.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

create_account

Create a new account with an optional label.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
  }
}

label_account

Label an account.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

get_height

Returns the wallet's current block height.

Alias: getheight.

Inputs: None.

Outputs:

Example:

$ 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
  }
}

transfer

Send blur to a number of recipients.

Alias: None.

Inputs:

Outputs:

Example:

$ 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": ""
  }
}

transfer_split

Same as transfer, but can split into more than one tx if necessary.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
    ]
  }
}

sign_transfer

Sign a transaction created on a read-only wallet (in cold-signing process)

Alias: None.

Inputs:

Outputs:

In the example below, we first generate an unsigned_txset on a read only wallet before signing it:

Generate unsigned_txset using the above "transfer" method on read-only wallet:

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": ""
  }
}

Sign tx using the previously generated unsigned_txset

$ 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..."]
  }
}

submit_transfer

Submit a previously signed transaction on a read-only wallet (in cold-signing process).

Alias: None.

Inputs:

Outputs:

In the example below, we submit the transfer using the signed_txset generated above:

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...."]
  }
}

sweep_dust

Send all dust outputs back to the wallet's, to make them easier to spend (and mix).

Alias: sweep_unmixable.

Inputs:

Outputs:

Example (In this example, sweep_dust returns nothing because there are no funds to sweep):

$ 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": ""
  }
}

sweep_all

Send all unlocked balance to an address.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
    ]
  }
}

store

Save the wallet file.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}

get_payments

Get a list of incoming payments using a given payment id.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
    }]
  }
}

get_bulk_payments

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 get_payments because it has the same functionality but is more extendable. Either is fine for looking up transactions by a single payment ID.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
      }
    ]
  }
}

incoming_transfers

Return a list of incoming transfers to the wallet.

Inputs:

Outputs:

Example, get all transfers:

$ 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
      }
    ]
  }
}

Example, get available transfers:

$ 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
    }]
  }
}

query_key

Return the spend or view private key.

Alias: None.

Inputs:

Outputs:

Example (Query view key):

$ 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 ..."
  }
}

Example (Query mnemonic key):

$ 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 ..."
  }
}

make_integrated_address

Make an integrated address from the wallet address and a payment id.

Alias: None.

Inputs:

Outputs:

Example (Payment ID is empty, use a random ID):

$ 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"
  }
}

split_integrated_address

Retrieve the standard address and payment id corresponding to an integrated address.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
  }
}

stop_wallet

Stops the wallet, storing the current state.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}

rescan_blockchain

Rescan the blockchain from scratch, losing any information which can not be recovered from the blockchain itself.
This includes destination addresses, tx secret keys, tx notes, etc.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}

set_tx_notes

Set arbitrary string notes for transactions.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

get_tx_notes

Get string notes for transactions.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"]
  }
}

set_attribute

Set arbitrary attribute.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

get_attribute

Get attribute value by name.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
  }
}

get_tx_key

Get transaction secret key from transaction id.

Alias: None.

Inputs:

Outputs:

Example:

$ 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 ..."
  }
}

check_tx_key

Check a transaction in the blockchain with its secret key.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

get_transfers

Returns a list of transfers.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
      }
    ]
  }
}

get_transfer_by_txid

Show information about a transfer to/from this address.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
    }
  }
}

sign

Sign a string.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
  }
}

verify

Verify a signature on a string.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

export_key_images

Export a signed set of key images.

Alias: None.

Inputs: None.

Outputs:

Example:

$ 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"
      },
      {...}
    ]
  }
}

import_key_images

Import signed key images list and verify their spent status.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

make_uri

Create a payment URI using the official URI spec.

Alias: None.

Inputs:

Outputs:

Example:

$ 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."
  }
}

parse_uri

Parse a payment URI to get payment information.

Alias: None.

Inputs:

Outputs:

Example:

$ 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."
    }
  }
}

get_address_book

Retrieves entries from the address book.

Alias: None.

Inputs:

Outputs:

Example:

$ 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"
      }
    ]
  }
}

add_address_book

Add an entry to the address book.

Alias: None.

Inputs:

Outputs:

Example:

$ 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
  }
}

delete_address_book

Delete an entry from the address book.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

rescan_spent

Rescan the blockchain for spent outputs.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}

start_mining

Start mining in the Blur Network daemon.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

stop_mining

Stop mining in the Blur Network daemon.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}

get_languages

Get a list of available languages for your wallet's seed.

Alias: None.

Inputs: None.

Outputs:

Example:

$ 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"
    ]
  }
}

create_wallet

Create a new wallet. You need to have set the argument "–wallet-dir" when launching blur-wallet-rpc to make this work.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

open_wallet

Open a wallet. You need to have set the argument "–wallet-dir" when launching blur-wallet-rpc to make this work.

Alias: None.

Inputs:

Outputs: None.

Example:

$ 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": {
  }
}

close_wallet

Close the currently opened wallet, after trying to save it.

Alias: None.

Inputs: None.

Outputs: None.

Example:

$ 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": {
  }
}