daemon-rpc.md 82.9 KB
Newer Older
el00ruobuob's avatar
el00ruobuob committed
1
2
{% assign version = '2.1.0' | split: '.' %}
{% include disclaimer.html translated="false" version=page.version %}
el00ruobuob's avatar
el00ruobuob committed
3
4
5
6
7
8
## Introduction

This is a list of the monerod daemon RPC calls, their inputs and outputs, and examples of each.

Many RPC calls use the daemon's JSON RPC interface while others use their own interfaces, as demonstrated below.

9
Note: "@atomic-units" refer to the smallest fraction of 1 XMR according to the monerod implementation. **1 XMR = 1e12 @atomic-units.**
el00ruobuob's avatar
el00ruobuob committed
10

11
12
Note2: Guide updated as of network height of 1,562,465.

el00ruobuob's avatar
el00ruobuob committed
13
14
### [JSON RPC Methods](#json-rpc-methods):

15
16
17
18
19
20
21
22
23
* [get_block_count](#get_block_count)
* [on_get_block_hash](#on_get_block_hash)
* [get_block_template](#get_block_template)
* [submit_block](#submit_block)
* [get_last_block_header](#get_last_block_header)
* [get_block_header_by_hash](#get_block_header_by_hash)
* [get_block_header_by_height](#get_block_header_by_height)
* [get_block_headers_range](#get_block_headers_range)
* [get_block](#get_block)
el00ruobuob's avatar
el00ruobuob committed
24
25
26
* [get_connections](#get_connections)
* [get_info](#get_info)
* [hard_fork_info](#hard_fork_info)
27
28
29
30
31
32
33
34
35
36
37
38
* [set_bans](#set_bans)
* [get_bans](#get_bans)
* [flush_txpool](#flush_txpool)
* [get_output_histogram](#get_output_histogram)
* [get_version](#get_version)
* [get_coinbase_tx_sum](#get_coinbase_tx_sum)
* [get_fee_estimate](#get_fee_estimate)
* [get_alternate_chains](#get_alternate_chains)
* [relay_tx](#relay_tx)
* [sync_info](#sync_info)
* [get_txpool_backlog](#get_txpool_backlog)
* [get_output_distribution](#get_output_distribution)
el00ruobuob's avatar
el00ruobuob committed
39
40
41

### [Other RPC Methods](#other-daemon-rpc-calls):

42
* [/get_height](#get_height)
Paul K's avatar
Paul K committed
43
44
45
46
47
48
49
* [/get_blocks.bin](#get_blocksbin)
* [/get_blocks_by_height.bin](#get_blocks_by_heightbin)
* [/get_hashes.bin](#get_hashesbin)
* [/get_o_indexes.bin](#get_o_indexesbin)
* [/get_random_outs.bin](#get_random_outsbin)
* [/get_outs.bin](#get_outsbin)
* [/get_random_rctouts.bin](#get_random_rctoutsbin)
50
51
* [/get_transactions](#get_transactions)
* [/get_alt_blocks_hashes](#get_alt_blocks_hashes)
el00ruobuob's avatar
el00ruobuob committed
52
* [/is_key_image_spent](#is_key_image_spent)
53
54
55
56
57
58
59
60
61
* [/send_raw_transaction](#send_raw_transaction)
* [/start_mining](#start_mining)
* [/stop_mining](#stop_mining)
* [/mining_status](#mining_status)
* [/save_bc](#save_bc)
* [/get_peer_list](#get_peer_list)
* [/set_log_hash_rate](#set_log_hash_rate)
* [/set_log_level](#set_log_level)
* [/set_log_categories](#set_log_categories)
el00ruobuob's avatar
el00ruobuob committed
62
* [/get_transaction_pool](#get_transaction_pool)
Paul K's avatar
Paul K committed
63
* [/get_transaction_pool_hashes.bin](#get_transaction_pool_hashesbin)
64
* [/get_transaction_pool_stats](#get_transaction_pool_stats)
el00ruobuob's avatar
el00ruobuob committed
65
* [/stop_daemon](#stop_daemon)
66
67
68
69
70
71
72
73
74
* [/get_info (not JSON)](#get_info-not-json)
* [/get_limit](#get_limit)
* [/set_limit](#set_limit)
* [/out_peers](#out_peers)
* [/in_peers](#in_peers)
* [/start_save_graph](#start_save_graph)
* [/stop_save_graph](#stop_save_graph)
* [/get_outs](#get_outs)
* [/update](#update)
el00ruobuob's avatar
el00ruobuob committed
75
76
77
78
79
80
81
82
83
84
85


---

## JSON RPC Methods

The majority of monerod RPC calls use the daemon's `json_rpc` interface to request various bits of information. These methods all follow a similar structure, for example:

```
IP=127.0.0.1
PORT=18081
86
87
METHOD='get_block_header_by_height'
ALIAS='getblockheaderbyheight'
el00ruobuob's avatar
el00ruobuob committed
88
89
90
91
92
93
94
95
96
PARAMS='{"height":912345}'
curl \
    -X POST http://$IP:$PORT/json_rpc \
    -d '{"jsonrpc":"2.0","id":"0","method":"'$METHOD'","params":'$PARAMS'}' \
    -H 'Content-Type: application/json'
```

Some methods include parameters, while others do not. Examples of each JSON RPC method follow.

97
### **get_block_count**
el00ruobuob's avatar
el00ruobuob committed
98
99
100

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

101
102
Alias: *getblockcount*.

el00ruobuob's avatar
el00ruobuob committed
103
104
105
106
107
108
109
110
111
112
Inputs: *None*.

Outputs:

* *count* - unsigned int; Number of blocks in longest chain seen by the node.
* *status* - string; General RPC error code. "OK" means everything looks good.

Example:

```
113
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_count"}' -H 'Content-Type: application/json'  
el00ruobuob's avatar
el00ruobuob committed
114
115
116
117
118
119
120
121
122
123
124
125

{  
  "id": "0",  
  "jsonrpc": "2.0",  
  "result": {  
    "count": 993163,  
    "status": "OK"  
  }  
}  
```


126
### **on_get_block_hash**
el00ruobuob's avatar
el00ruobuob committed
127
128
129

Look up a block's hash by its height.

130
131
Alias: *on_getblockhash*.

el00ruobuob's avatar
el00ruobuob committed
132
133
134
Inputs:

* block height (int array of length 1)
135

el00ruobuob's avatar
el00ruobuob committed
136
137
138
139
140
141
142
Outputs:

* block hash (string)

Example:

```
143
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"on_get_block_hash","params":[912345]}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
144
145
146
147
148
149
150
151
152

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"
}
```


153
154
155
156
157
### **get_block_template**

Get a block template on which mining a new block.

Alias: *getblocktemplate*.
el00ruobuob's avatar
el00ruobuob committed
158
159
160
161
162
163
164
165
166

Inputs:

* *wallet_address* - string; Address of wallet to receive coinbase transactions if block is successfully mined.
* *reserve_size* - unsigned int; Reserve size.

Outputs:

* *blocktemplate_blob* - string; Blob on which to try to mine a new block.
167
* *blockhashing_blob* - string; Blob on which to try to find a valid nonce.
el00ruobuob's avatar
el00ruobuob committed
168
* *difficulty* - unsigned int; Difficulty of next block.
169
* *expected_reward* - unsigned int; Coinbase reward expected to be received if block is successfully mined.
el00ruobuob's avatar
el00ruobuob committed
170
171
172
173
* *height* - unsigned int; Height on which to mine.
* *prev_hash* - string; Hash of the most recent block on which to mine the next block.
* *reserved_offset* - unsigned int; Reserved offset.
* *status* - string; General RPC error code. "OK" means everything looks good.
174
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
175
176
177
178

Example:

```
179
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_template","params":{"wallet_address":"44GBHzv6ZyQdJkjqZje6KLZ3xSyN1hBSFAnLP6EAqJtCRVzMzZmeXTC2AHKDS9aEDTRKmo6a6o9r9j86pYfhCWDkKjbtcns","reserve_size":60}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
180
181
182
183
184

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
185
186
187
188
189
190
191
192
193
    "blockhashing_blob": "070786a498d705f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a00000000fc751ea4a94c2f840751eaa36138eee66dda15ef554e7d6594395827994e31da10",
    "blocktemplate_blob": "070786a498d705f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a0000000002aeab5f01fff2aa5f01e0a9d0f2f08a01028fdb3d5b5a2c363d36ea17a4add99a23a3ec7935b4c3e1e0364fcc4295c7a2ef5f01f912b15f5d17c1539d4722f79d8856d8654c5af87f54cfb3a4ff7f6b512b2a08023c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1755090c809421d69873c161e7969b8bf33cee3b451dd4859bfc244a705f0b4900498f804b6023e13fa023a0fb759e8b7c9a39506a21442bc47077beeedc6b78d34c4ebdae91bd96097ccc9a882bc5056568b0d2f1f06559368fea4acba8e745444e883e53156d5083c1fd260edf05292934c8b40c098b81fe4e261720bdd272b209e317247a1d2c55dc4718891af0d16273c5a610f36f382a3bf50f54808aaa6a508e51d4601dd0d8fbf8b3b1685066ce121666a1409e8ac7a4d673c1cc36d10b825f764af647441f53230518e4d2efbcf8791c6060912c76e90db4982a66d51bbd96290bbb34db8080b216c2940cec407260bf5e2c3a5ee280835f15298f0801e9d98c4d414792282fbc2c28c3e20bc0fcb1829b5c3ad8f8d20847be8fdb2a949fd96f0205fbd6d271c880c5d8c83e9813606cd803a44d377fdeae45bfa67112132af601e9b3b0613ba7dff2ec3d4b935c447b47bfe39f7b950981b2f4c66c0d853e2218f1f69229a9b608c3d98be09b6d4d640a9f6ff0e920dbacf7e58b59554c0b398b1ae4b1d497104b4e4e745d850eed7eddb8aa93437427bf442ae5beb22cbf10a8fa738ea38cfa5d86dfd30675d4be11a38016e36936fd5601e52643e8b8bc433702ea7ae6149309c95b898cc854850e73fe0b95c5b8879b7325ecd4",
    "difficulty": 61043624293,
    "expected_reward": 4771949057248,
    "height": 1561970,
    "prev_hash": "f8dc58791266179087907a2ff4cd883615216749b97d2f12173171c725a6f84a",
    "reserved_offset": 129,
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
194
195
196
197
198
  }
}
```


199
### **submit_block**
el00ruobuob's avatar
el00ruobuob committed
200
201
202

Submit a mined block to the network.

203
204
Alias: *submitblock*.

el00ruobuob's avatar
el00ruobuob committed
205
206
Inputs:

207
* Block blob data - array of strings; list of block blobs which have been mined.  See [get_block_template](#get_block_template) to get a blob on which to mine.
el00ruobuob's avatar
el00ruobuob committed
208
209
210
211
212

Outputs:

* *status* - string; Block submit status.

213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
In this example, a block blob which has not been mined is submitted:

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"submit_block","params":["0707e6bdfedc053771512f1bc27c62731ae9e8f2443db64ce742f4e57f5cf8d393de28551e441a0000000002fb830a01ffbf830a018cfe88bee283060274c0aae2ef5730e680308d9c00b6da59187ad0352efe3c71d36eeeb28782f29f2501bd56b952c3ddc3e350c2631d3a5086cac172c56893831228b17de296ff4669de020200000000"]' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "error": {
    "code": -7,
    "message": "Block not accepted"
  }
}
```

el00ruobuob's avatar
el00ruobuob committed
228

229
### **get_last_block_header**
el00ruobuob's avatar
el00ruobuob committed
230
231
232

Block header information for the most recent block is easily retrieved with this method. No inputs are needed.

233
234
Alias: *getlastblockheader*.

el00ruobuob's avatar
el00ruobuob committed
235
236
237
238
239
Inputs: *None*.

Outputs:

* *block_header* - A structure containing block header information.
240
  * *block_size* - unsigned int; The block size in bytes.
el00ruobuob's avatar
el00ruobuob committed
241
242
243
244
245
246
247
  * *depth* -  unsigned int; The number of blocks succeeding this block on the blockchain. A larger number means an older block.
  * *difficulty* - unsigned int; The strength of the Monero network based on mining power.
  * *hash* - string; The hash of this block.
  * *height* - unsigned int; The number of blocks preceding this block on the blockchain.
  * *major_version* - unsigned int; The major version of the monero protocol at this block height.
  * *minor_version* - unsigned int; The minor version of the monero protocol at this block height.
  * *nonce* - unsigned int; a cryptographic random one-time number used in mining a Monero block.
248
  * *num_txes* - unsigned int; Number of transactions in the block, not counting the coinbase tx.
el00ruobuob's avatar
el00ruobuob committed
249
250
  * *orphan_status* - boolean; Usually `false`. If `true`, this block is not part of the longest chain.
  * *prev_hash* - string; The hash of the block immediately preceding this block in the chain.
251
  * *reward* - unsigned int; The amount of new @atomic-units generated in this block and rewarded to the miner. Note: 1 XMR = 1e12 @atomic-units.
252
  * *timestamp* - unsigned int; The unix time at which the block was recorded into the blockchain.
el00ruobuob's avatar
el00ruobuob committed
253
* *status* - string; General RPC error code. "OK" means everything looks good.
254
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
255

256
In this example, the most recent block (1562023 at the time) is returned:
el00ruobuob's avatar
el00ruobuob committed
257
258

```
259
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_last_block_header"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
260
261
262
263
264
265

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
266
      "block_size": 62774,
el00ruobuob's avatar
el00ruobuob committed
267
      "depth": 0,
268
269
270
271
272
273
274
      "difficulty": 60097900840,
      "hash": "3a289b8fa88b10e2163826c230b45d79f2be37d14fa3153ee58ff8a427782d14",
      "height": 1562023,
      "major_version": 7,
      "minor_version": 7,
      "nonce": 3789681204,
      "num_txes": 5,
el00ruobuob's avatar
el00ruobuob committed
275
      "orphan_status": false,
276
277
278
      "prev_hash": "743e5d0a26849efe27b96086f2c4ecc39a0bc744bf21473dad6710221aff6ac3",
      "reward": 4724029079703,
      "timestamp": 1525029411
el00ruobuob's avatar
el00ruobuob committed
279
    },
280
281
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
282
283
284
285
286
  }
}
```


287
### **get_block_header_by_hash**
el00ruobuob's avatar
el00ruobuob committed
288
289
290

Block header information can be retrieved using either a block's hash or height. This method includes a block's hash as an input parameter to retrieve basic information about the block.

291
292
Alias: *getblockheaderbyhash*.

el00ruobuob's avatar
el00ruobuob committed
293
294
295
296
297
298
Inputs:

* *hash* - string; The block's sha256 hash.

Outputs:

299
300
301
* *block_header* - A structure containing block header information. See [get_last_block_header](#get_last_block_header).
* *status* - string; General RPC error code. "OK" means everything looks good.
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
302
303
304
305

In this example, block 912345 is looked up by its hash:

```
306
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_hash","params":{"hash":"e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
307
308
309
310
311
312

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
313
314
      "block_size": 210,
      "depth": 649717,
el00ruobuob's avatar
el00ruobuob committed
315
316
317
318
319
320
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
321
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
322
323
324
325
326
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
327
328
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
329
330
331
332
333
  }
}
```


334
### **get_block_header_by_height**
el00ruobuob's avatar
el00ruobuob committed
335

336
337
338
Similar to [get_block_header_by_hash](#get_block_header_by_hash) above, this method includes a block's height as an input parameter to retrieve basic information about the block.

Alias: *getblockheaderbyheight*.
el00ruobuob's avatar
el00ruobuob committed
339
340
341
342
343
344
345

Inputs:

* *height* - unsigned int; The block's height.

Outputs:

346
347
348
* *block_header* - A structure containing block header information. See [get_last_block_header](#get_last_block_header).
* *status* - string; General RPC error code. "OK" means everything looks good.
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
349

350
In this example, block 912345 is looked up by its height (notice that the returned information is the same as in the previous example):
el00ruobuob's avatar
el00ruobuob committed
351
352

```
353
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_height","params":{"height":912345}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
354
355
356
357
358
359

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "block_header": {
360
361
      "block_size": 210,
      "depth": 649721,
el00ruobuob's avatar
el00ruobuob committed
362
363
364
365
366
367
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
368
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
369
370
371
372
373
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
    "status": "OK",
    "untrusted": false
  }
}
```

### **get_block_headers_range**

Similar to [get_block_header_by_height](#get_block_header_by_height) above, but for a range of blocks. This method includes a starting block height and an ending block height as parameters to retrieve basic information about the range of blocks.

Alias: *getblockheadersrange*.

Inputs:

* *start_height* - unsigned int; The starting block's height.
* *end_height* - unsigned int; The ending block's height.

Outputs:

* *headers* - array of `block_header` (a structure containing block header information. See [get_last_block_header](#get_last_block_header)).
* *status* - string; General RPC error code. "OK" means everything looks good.
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).

In this example, blocks range from height 1545999 to 1546000 is looked up (notice that the returned informations are ascending order and that it is at the April 2018 network upgrade time):

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_headers_range","params":{"start_height":1545999,"end_height":1546000}}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "headers": [{
      "block_size": 301413,
      "depth": 16085,
      "difficulty": 134636057921,
      "hash": "86d1d20a40cefcf3dd410ff6967e0491613b77bf73ea8f1bf2e335cf9cf7d57a",
      "height": 1545999,
      "major_version": 6,
      "minor_version": 6,
      "nonce": 3246403956,
      "num_txes": 20,
      "orphan_status": false,
      "prev_hash": "0ef6e948f77b8f8806621003f5de24b1bcbea150bc0e376835aea099674a5db5",
      "reward": 5025593029981,
      "timestamp": 1523002893
    },{
      "block_size": 13322,
      "depth": 16084,
      "difficulty": 134716086238,
      "hash": "b408bf4cfcd7de13e7e370c84b8314c85b24f0ba4093ca1d6eeb30b35e34e91a",
      "height": 1546000,
      "major_version": 7,
      "minor_version": 7,
      "nonce": 3737164176,
      "num_txes": 1,
      "orphan_status": false,
      "prev_hash": "86d1d20a40cefcf3dd410ff6967e0491613b77bf73ea8f1bf2e335cf9cf7d57a",
      "reward": 4851952181070,
      "timestamp": 1523002931
    }],
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
437
438
439
440
441
  }
}
```


442
### **get_block**
el00ruobuob's avatar
el00ruobuob committed
443
444
445

Full block information can be retrieved by either block height or hash, like with the above block header calls. For full block information, both lookups use the same method, but with different input parameters.

446
447
Alias: *getblock*.

el00ruobuob's avatar
el00ruobuob committed
448
449
450
451
452
453
454
455
Inputs (pick one of the following):

* *height* - unsigned int; The block's height.
* *hash* - string; The block's hash.

Outputs:

* *blob* - string; Hexadecimal blob of block information.
456
* *block_header* - A structure containing block header information. See [get_last_block_header](#get_last_block_header).
el00ruobuob's avatar
el00ruobuob committed
457
458
459
460
461
462
463
464
465
466
467
468
469
* *json* - json string; JSON formatted block details:
  * *major_version* - Same as in block header.
  * *minor_version* - Same as in block header.
  * *timestamp* - Same as in block header.
  * *prev_id* - Same as `prev_hash` in block header.
  * *nonce* - Same as in block header.
  * *miner_tx* - Miner transaction information
    * *version* - Transaction version number.
    * *unlock_time* - The block height when the coinbase transaction becomes spendable.
    * *vin* - List of transaction inputs:
      * *gen* - Miner txs are coinbase txs, or "gen".
        * *height* - This block height, a.k.a. when the coinbase is generated.
    * *vout* - List of transaction outputs. Each output contains:
470
      * *amount* - The amount of the output, in @atomic-units.
471
472
      * *target* -
        * *key* -
el00ruobuob's avatar
el00ruobuob committed
473
474
475
476
    * *extra* - Usually called the "transaction ID" but can be used to include any random 32 byte/64 character hex string.
    * *signatures* - Contain signatures of tx signers. Coinbased txs do not have signatures.
  * *tx_hashes* - List of hashes of non-coinbase transactions in the block. If there are no other transactions, this will be an empty list.
* *status* - string; General RPC error code. "OK" means everything looks good.
477
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
478
479
480
481
482
483

**Look up by height:**

In the following example, block 912345 is looked up by its height. Note that block 912345 does not have any non-coinbase transactions. (See the next example for a block with extra transactions):

```
484
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"height":912345}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
485
486
487
488
489

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
490
    "blob": "0102f4bedfb405b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff786e0600000195d83701ffd9d73704ee84ddb42102378b043c1724c92c69d923d266fe86477d3a5ddd21145062e148c64c5767700880c0fc82aa020273733cbd6e6218bda671596462a4b062f95cfe5e1dbb5b990dacb30e827d02f280f092cbdd080247a5dab669770da69a860acde21616a119818e1a489bb3c4b1b6b3c50547bc0c80e08d84ddcb01021f7e4762b8b755e3e3c72b8610cc87b9bc25d1f0a87c0c816ebb952e4f8aff3d2b01fd0a778957f4f3103a838afda488c3cdadf2697b3d34ad71234282b2fad9100e02080000000bdfc2c16c00",
el00ruobuob's avatar
el00ruobuob committed
491
    "block_header": {
492
493
      "block_size": 210,
      "depth": 649772,
el00ruobuob's avatar
el00ruobuob committed
494
495
496
497
498
499
      "difficulty": 815625611,
      "hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
      "height": 912345,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 1646,
500
      "num_txes": 0,
el00ruobuob's avatar
el00ruobuob committed
501
502
503
504
505
506
      "orphan_status": false,
      "prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
      "reward": 7388968946286,
      "timestamp": 1452793716
    },
    "json": "{\n  \"major_version\": 1, \n  \"minor_version\": 2, \n  \"timestamp\": 1452793716, \n  \"prev_id\": \"b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78\", \n  \"nonce\": 1646, \n  \"miner_tx\": {\n    \"version\": 1, \n    \"unlock_time\": 912405, \n    \"vin\": [ {\n        \"gen\": {\n          \"height\": 912345\n        }\n      }\n    ], \n    \"vout\": [ {\n        \"amount\": 8968946286, \n        \"target\": {\n          \"key\": \"378b043c1724c92c69d923d266fe86477d3a5ddd21145062e148c64c57677008\"\n        }\n      }, {\n        \"amount\": 80000000000, \n        \"target\": {\n          \"key\": \"73733cbd6e6218bda671596462a4b062f95cfe5e1dbb5b990dacb30e827d02f2\"\n        }\n      }, {\n        \"amount\": 300000000000, \n        \"target\": {\n          \"key\": \"47a5dab669770da69a860acde21616a119818e1a489bb3c4b1b6b3c50547bc0c\"\n        }\n      }, {\n        \"amount\": 7000000000000, \n        \"target\": {\n          \"key\": \"1f7e4762b8b755e3e3c72b8610cc87b9bc25d1f0a87c0c816ebb952e4f8aff3d\"\n        }\n      }\n    ], \n    \"extra\": [ 1, 253, 10, 119, 137, 87, 244, 243, 16, 58, 131, 138, 253, 164, 136, 195, 205, 173, 242, 105, 123, 61, 52, 173, 113, 35, 66, 130, 178, 250, 217, 16, 14, 2, 8, 0, 0, 0, 11, 223, 194, 193, 108\n    ], \n    \"signatures\": [ ]\n  }, \n  \"tx_hashes\": [ ]\n}",
507
508
509
    "miner_tx_hash": "c7da3965f25c19b8eb7dd8db48dcd4e7c885e2491db77e289f0609bf8e08ec30",
    "status": "OK",
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
510
511
512
513
514
515
516
517
518
  }
}
```

**Look up by hash:**

In the following example, block 993056 is looked up by its hash. Note that block 993056 has 3 non-coinbase transactions:

```
519
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"hash":"510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f"}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
520
521
522
523
524

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
525
    "blob": "0102a3978cb7050ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6df407000001dcce3c01ffa0ce3c049da8bece070259e9d685b3484886bc7b47c133e6099ecdf212d5eaa16ce19cd58e8c3c1e590a80d88ee16f024c5e2f542d25513c46b9e3b7d40140a22d0ae5314bfcae492ad9f56fff8185f080d0b8e1981a0213dd8ffdac9e6a2f71e327dad65328198dc879a492d145eae72677c0703a351580c0f9decfae010262bda00341681dccbc066757862da593734395745bdfe1fdc89b5948c86a5d4c2b01b691851cf057b9c302a3dbca879e1cba4cc45061ca55aaa6e03cdc67ab9e455002080000000c617fdf160379c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899bb197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d",
el00ruobuob's avatar
el00ruobuob committed
526
    "block_header": {
527
528
      "block_size": 3981,
      "depth": 569068,
el00ruobuob's avatar
el00ruobuob committed
529
530
531
532
533
534
      "difficulty": 964985344,
      "hash": "510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f",
      "height": 993056,
      "major_version": 1,
      "minor_version": 2,
      "nonce": 2036,
535
      "num_txes": 3,
el00ruobuob's avatar
el00ruobuob committed
536
537
538
539
540
541
      "orphan_status": false,
      "prev_hash": "0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d",
      "reward": 6932043647005,
      "timestamp": 1457720227
    },
    "json": "{\n  \"major_version\": 1, \n  \"minor_version\": 2, \n  \"timestamp\": 1457720227, \n  \"prev_id\": \"0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d\", \n  \"nonce\": 2036, \n  \"miner_tx\": {\n    \"version\": 1, \n    \"unlock_time\": 993116, \n    \"vin\": [ {\n        \"gen\": {\n          \"height\": 993056\n        }\n      }\n    ], \n    \"vout\": [ {\n        \"amount\": 2043647005, \n        \"target\": {\n          \"key\": \"59e9d685b3484886bc7b47c133e6099ecdf212d5eaa16ce19cd58e8c3c1e590a\"\n        }\n      }, {\n        \"amount\": 30000000000, \n        \"target\": {\n          \"key\": \"4c5e2f542d25513c46b9e3b7d40140a22d0ae5314bfcae492ad9f56fff8185f0\"\n        }\n      }, {\n        \"amount\": 900000000000, \n        \"target\": {\n          \"key\": \"13dd8ffdac9e6a2f71e327dad65328198dc879a492d145eae72677c0703a3515\"\n        }\n      }, {\n        \"amount\": 6000000000000, \n        \"target\": {\n          \"key\": \"62bda00341681dccbc066757862da593734395745bdfe1fdc89b5948c86a5d4c\"\n        }\n      }\n    ], \n    \"extra\": [ 1, 182, 145, 133, 28, 240, 87, 185, 195, 2, 163, 219, 202, 135, 158, 28, 186, 76, 196, 80, 97, 202, 85, 170, 166, 224, 60, 220, 103, 171, 158, 69, 80, 2, 8, 0, 0, 0, 12, 97, 127, 223, 22\n    ], \n    \"signatures\": [ ]\n  }, \n  \"tx_hashes\": [ \"79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07\", \"d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b\", \"b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d\"\n  ]\n}",
542
    "miner_tx_hash": "372395aeac5e5ad2c40b4c546b0bad00c4242fb2bd88e2e25f4e43231876f81e",
el00ruobuob's avatar
el00ruobuob committed
543
    "status": "OK",
544
545
    "tx_hashes": ["79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07","d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b","b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d"],
    "untrusted": false
el00ruobuob's avatar
el00ruobuob committed
546
547
548
549
550
551
552
553
554
  }
}
```


### **get_connections**

Retrieve information about incoming and outgoing connections to your node.

555
556
Alias: *None*.

el00ruobuob's avatar
el00ruobuob committed
557
558
559
560
561
Inputs: *None*.

Outputs:

* *connections* - List of all connections and their info:
562
  * *address* - string; The peer's address, actually IPv4 & port
el00ruobuob's avatar
el00ruobuob committed
563
564
  * *avg_download* - unsigned int; Average bytes of data downloaded by node.
  * *avg_upload* - unsigned int; Average bytes of data uploaded by node.
565
  * *connection_id* - string; The connection ID
el00ruobuob's avatar
el00ruobuob committed
566
567
  * *current_download* - unsigned int; Current bytes downloaded by node.
  * *current_upload* - unsigned int; Current bytes uploaded by node.
568
569
  * *height*- unsigned int; The peer height
  * *host* - string; The peer host
el00ruobuob's avatar
el00ruobuob committed
570
571
572
573
574
575
576
577
578
579
580
581
  * *incoming* - boolean; Is the node getting information from your node?
  * *ip* - string; The node's IP address.
  * *live_time* - unsigned int
  * *local_ip* - boolean
  * *localhost* - boolean
  * *peer_id* - string; The node's ID on the network.
  * *port* - string; The port that the node is using to connect to the network.
  * *recv_count* - unsigned int
  * *recv_idle_time* - unsigned int
  * *send_count* - unsigned int
  * *send_idle_time* - unsigned int
  * *state* - string
582
  * *support_flags* - unsigned int
el00ruobuob's avatar
el00ruobuob committed
583
584
585
586
587
588
589
590
591
592
593

Following is an example of `get_connections` and it's return:

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_connections"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "connections": [{
594
      "address": "173.90.69.136:62950",
el00ruobuob's avatar
el00ruobuob committed
595
      "avg_download": 0,
596
597
      "avg_upload": 2,
      "connection_id": "083c301a3030329a487adb12ad981d2c",
el00ruobuob's avatar
el00ruobuob committed
598
      "current_download": 0,
599
600
601
602
603
604
      "current_upload": 2,
      "height": 1562127,
      "host": "173.90.69.136",
      "incoming": true,
      "ip": "173.90.69.136",
      "live_time": 8,
el00ruobuob's avatar
el00ruobuob committed
605
606
      "local_ip": false,
      "localhost": false,
607
608
609
610
611
612
613
614
      "peer_id": "c959fbfbed9e44fb",
      "port": "62950",
      "recv_count": 259,
      "recv_idle_time": 8,
      "send_count": 24342,
      "send_idle_time": 8,
      "state": "state_normal",
      "support_flags": 0
el00ruobuob's avatar
el00ruobuob committed
615
616
617
618
619
620
621
622
623
624
625
626
627
    },{
    ...
    }],
    "status": "OK"
  }
}
```


### **get_info**

Retrieve general information about the state of your node and the network.

628
629
630
631
632
633
634
Alias:

* */get_info*
* */getinfo*

See other RPC Methods [/get_info (not JSON)](#get_info-not-json)

el00ruobuob's avatar
el00ruobuob committed
635
636
637
638
639
Inputs: *None*.

Outputs:

* *alt_blocks_count* - unsigned int; Number of alternative blocks to main chain.
640
641
642
643
* *block_size_limit* - unsigned int; Maximum allowed block size
* *block_size_median* - unsigned int; Median block size of latest 100 blocks
* *bootstrap_daemon_address* - string; @Bootstrap-node to give immediate usability to wallets while syncing by proxying RPC to it. (Note: the replies may be untrustworthy).
* *cumulative_difficulty* - unsigned int; Cumulative difficulty of all blocks in the blockchain.
el00ruobuob's avatar
el00ruobuob committed
644
* *difficulty* - unsigned int; Network difficulty (analogous to the strength of the network)
645
* *free_space* - unsigned int; Available disk space on the node.
el00ruobuob's avatar
el00ruobuob committed
646
647
* *grey_peerlist_size* - unsigned int; Grey Peerlist Size
* *height* - unsigned int; Current length of longest chain known to daemon.
648
* *height_without_bootstrap* - unsigned int; Current length of the local chain of the daemon.
el00ruobuob's avatar
el00ruobuob committed
649
* *incoming_connections_count* - unsigned int; Number of peers connected to and pulling from your node.
650
651
* *mainnet* - boolean; States if the node is on the mainnet (`true`) or not (`false`).
* *offline* - boolean; States if the node is offline (`true`) or online (`false`).
el00ruobuob's avatar
el00ruobuob committed
652
* *outgoing_connections_count* - unsigned int; Number of peers that you are connected to and getting information from.
653
654
655
* *rpc_connections_count* - unsigned int; Number of RPC client connected to the daemon (Including this RPC request).
* *stagenet* - boolean; States if the node is on the stagenet (`true`) or not (`false`).
* *start_time* - unsigned int; Start time of the daemon, as UNIX time.
el00ruobuob's avatar
el00ruobuob committed
656
657
658
* *status* - string; General RPC error code. "OK" means everything looks good.
* *target* - unsigned int; Current target for next proof of work.
* *target_height* - unsigned int; The height of the next block in the chain.
659
* *testnet* - boolean; States if the node is on the testnet (`true`) or not (`false`).
el00ruobuob's avatar
el00ruobuob committed
660
661
662
* *top_block_hash* - string; Hash of the highest block in the chain.
* *tx_count* - unsigned int; Total number of non-coinbase transaction in the chain.
* *tx_pool_size* - unsigned int; Number of transactions that have been broadcast but not included in a block.
663
664
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
* *was_bootstrap_ever_used* - boolean; States if a bootstrap node has ever been used since the daemon started.
el00ruobuob's avatar
el00ruobuob committed
665
666
667
668
669
670
671
672
673
674
675
* *white_peerlist_size* - unsigned int; White Peerlist Size

Following is an example `get_info` call and its return:

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
676
677
678
679
680
681
682
683
684
685
686
687
688
    "alt_blocks_count": 6,
    "block_size_limit": 600000,
    "block_size_median": 129017,
    "bootstrap_daemon_address": "",
    "cumulative_difficulty": 14121125493385685,
    "difficulty": 60580751777,
    "free_space": 138758750208,
    "grey_peerlist_size": 4998,
    "height": 1562168,
    "height_without_bootstrap": 1562168,
    "incoming_connections_count": 2,
    "mainnet": true,
    "offline": false,
el00ruobuob's avatar
el00ruobuob committed
689
    "outgoing_connections_count": 8,
690
691
692
    "rpc_connections_count": 2,
    "stagenet": false,
    "start_time": 1524751757,
el00ruobuob's avatar
el00ruobuob committed
693
    "status": "OK",
694
695
    "target": 120,
    "target_height": 1562063,
el00ruobuob's avatar
el00ruobuob committed
696
    "testnet": false,
697
698
699
700
701
702
    "top_block_hash": "7a7ba647080844073fdd8e3a069e00554c773d6e6863354dba1dec45a43f5592",
    "tx_count": 2759894,
    "tx_pool_size": 755,
    "untrusted": false,
    "was_bootstrap_ever_used": false,
    "white_peerlist_size": 1000
el00ruobuob's avatar
el00ruobuob committed
703
704
705
706
707
708
709
710
711
  }
}
```


### **hard_fork_info**

Look up information regarding hard fork voting and readiness.

712
713
Alias: *None*.

el00ruobuob's avatar
el00ruobuob committed
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
Inputs: *None*.

Outputs:

* *earliest_height* - unsigned int; Block height at which hard fork would be enabled if voted in.
* *enabled* - boolean; Tells if hard fork is enforced.
* *state* - unsigned int; Current hard fork state: 0 (There is likely a hard fork), 1 (An update is needed to fork properly), or 2 (Everything looks good).
* *status* - string; General RPC error code. "OK" means everything looks good.
* *threshold* - unsigned int; Minimum percent of votes to trigger hard fork. Default is 80.
* *version* - unsigned int; The major block version for the fork.
* *votes* - unsigned int; Number of votes towards hard fork.
* *voting* - unsigned int; Hard fork voting status.
* *window* - unsigned int; Number of blocks over which current votes are cast. Default is 10080 blocks.

Example:

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"hard_fork_info"}' -H 'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "earliest_height": 1009827,
    "enabled": false,
    "state": 2,
    "status": "OK",
    "threshold": 0,
    "version": 1,
    "votes": 7277,
    "voting": 2,
    "window": 10080
  }
}
```


751
### **set_bans**
el00ruobuob's avatar
el00ruobuob committed
752
753
754

Ban another node by IP.

755
756
Alias: *None*.

el00ruobuob's avatar
el00ruobuob committed
757
758
759
Inputs:

* *bans* - A list of nodes to ban:
760
  * *host* - string; Host to ban (IP in A.B.C.D form - will support I2P address in the future).
el00ruobuob's avatar
el00ruobuob committed
761
762
763
  * *ip* - unsigned int; IP address to ban, in Int format.
  * *ban* - boolean; Set `true` to ban.
  * *seconds* - unsigned int; Number of seconds to ban node.
764

el00ruobuob's avatar
el00ruobuob committed
765
766
767
768
Outputs:

* *status* - string; General RPC error code. "OK" means everything looks good.

769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
Examples:

**banning by host**

In the following example, host is banned with its IP address string-formatted as A.B.C.D:

```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_bans","params":{"bans":[{"host":"192.168.1.51","ban":true,"seconds":30}]}}' -H  'Content-Type: application/json'

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK"
  }
}
```

**banning by ip**

In the following example, integer-formatted IP is banned:
el00ruobuob's avatar
el00ruobuob committed
790
791

```
792
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"set_bans","params":{"bans":[{"ip":838969536,"ban":true,"seconds":30}]}}' -H  'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
793
794
795
796
797
798
799
800
801
802
803

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK"
  }
}
```


804
805
806
807
808
### **get_bans**

Get list of banned IPs.

Alias: *None*.
el00ruobuob's avatar
el00ruobuob committed
809
810
811
812
813
814

Inputs: *None*.

Outputs:

* *bans* - List of banned nodes:
815
  * *host* - string; Banned host (IP in A.B.C.D form).
el00ruobuob's avatar
el00ruobuob committed
816
817
818
819
820
821
822
  * *ip* - unsigned int; Banned IP address, in Int format.
  * *seconds* - unsigned int; Local Unix time that IP is banned until.
* *status* - string; General RPC error code. "OK" means everything looks good.

Example:

```
823
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_bans"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
824
825
826
827
828
829

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "bans": [{
830
831
832
833
834
      "host": "102.168.1.51",
      "ip": 855746662,
      "seconds": 22
    },{
      "host": "192.168.1.50",
el00ruobuob's avatar
el00ruobuob committed
835
      "ip": 838969536,
836
      "seconds": 28
el00ruobuob's avatar
el00ruobuob committed
837
838
839
840
841
842
843
    }],
    "status": "OK"
  }
}
```


844
### **flush_txpool**
el00ruobuob's avatar
el00ruobuob committed
845

846
Flush tx ids from transaction pool
el00ruobuob's avatar
el00ruobuob committed
847

848
Alias: *None*.
el00ruobuob's avatar
el00ruobuob committed
849

850
Inputs:
el00ruobuob's avatar
el00ruobuob committed
851

852
* *txids* - array of strings; Optional, list of transactions IDs to flush from pool (all tx ids flushed if empty).
el00ruobuob's avatar
el00ruobuob committed
853

854
Outputs:
el00ruobuob's avatar
el00ruobuob committed
855

856
* *status* - string; General RPC error code. "OK" means everything looks good.
el00ruobuob's avatar
el00ruobuob committed
857

858
Example:
el00ruobuob's avatar
el00ruobuob committed
859

860
861
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"flush_txpool","params":{"txids":["dc16fa8eaffe1484ca9014ea050e13131d3acf23b419f33bb4cc0b32b6c49308",""]}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
862

863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK"
  }
}
```

### **get_output_histogram**

Get a histogram of output amounts. For all amounts (possibly filtered by parameters), gives the number of outputs on the chain for that amount.
RingCT outputs counts as 0 amount.

Inputs:

* *amounts* - list of unsigned int
* *min_count* - unsigned int
* *max_count* - unsigned int
* *unlocked* - boolean
* *recent_cutoff* - unsigned int
el00ruobuob's avatar
el00ruobuob committed
884
885
886

Outputs:

887
888
889
890
891
892
893
894
895
* *histogram* - list of histogram entries, in the following structure:
  * *amount* - unsigned int; Output amount in @atomic-units
  * *total_instances* - unsigned int;
  * *unlocked_instances* - unsigned int;
  * *recent_instances* - unsigned int;
* *status* - string; General RPC error code. "OK" means everything looks good.
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).

Example:
el00ruobuob's avatar
el00ruobuob committed
896
897

```
898
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_output_histogram","params":{"amounts":[20000000000]}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
899
900

{
901
902
903
904
905
906
907
908
909
910
911
912
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "histogram": [{
      "amount": 20000000000,
      "recent_instances": 0,
      "total_instances": 381458,
      "unlocked_instances": 0
    }],
    "status": "OK",
    "untrusted": false
  }
el00ruobuob's avatar
el00ruobuob committed
913
914
915
916
}
```


917
### **get_coinbase_tx_sum**
el00ruobuob's avatar
el00ruobuob committed
918

919
920
921
Get the coinbase ammount and the fees ammount for n last blocks starting at particular height

Alias: *None*.
el00ruobuob's avatar
el00ruobuob committed
922
923
924

Inputs:

925
926
* *height* - unsigned int; Block height from which getting the amounts
* *count* - unsigned int; number of blocks to include in the sum
el00ruobuob's avatar
el00ruobuob committed
927
928
929

Outputs:

930
931
932
933
934
* *emission_amount* - unsigned int; amount of coinbase reward in @atomic-units
* *fee_amount* - unsigned int; amount of fees in @atomic-units
* *status* - string; General RPC error code. "OK" means everything looks good.

Example:
el00ruobuob's avatar
el00ruobuob committed
935
936

```
937
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_coinbase_tx_sum","params":{"height":1563078,"count":2}}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
938
939

{
940
941
942
943
944
945
946
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "emission_amount": 9387854817320,
    "fee_amount": 83981380000,
    "status": "OK"
  }
el00ruobuob's avatar
el00ruobuob committed
947
948
949
950
}
```


951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
### **get_version**

Give the node current version

Alias: *None*.

Inputs: *None*.

Outputs:

* *status* - string; General RPC error code. "OK" means everything looks good.
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
* *version* - unsigned int;

Example:
el00ruobuob's avatar
el00ruobuob committed
966
967

```
968
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_version"}' -H 'Content-Type: application/json'
el00ruobuob's avatar
el00ruobuob committed
969
970

{
971
972
973
974
975
976
977
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "status": "OK",
    "untrusted": false,
    "version": 65555
  }
el00ruobuob's avatar
el00ruobuob committed
978
979
980
981
}
```


982
### **get_fee_estimate**
el00ruobuob's avatar
el00ruobuob committed
983

984
985
986
Gives an estimation on fees per kB.

Alias: *None*.
el00ruobuob's avatar
el00ruobuob committed
987
988
989

Inputs:

990
* *grace_blocks* - unsigned int; Optional
el00ruobuob's avatar
el00ruobuob committed
991
992
993

Outputs:

994
* *fee* - unsigned int; Amount of fees estimated per kB in @atomic-units
el00ruobuob's avatar
el00ruobuob committed
995
* *status* - string; General RPC error code. "OK" means everything looks good.
996
* *untrusted* - boolean; States if the result is obtained using the bootstrap mode, and is therefore not trusted (`true`), or when the daemon is fully synced (`false`).
el00ruobuob's avatar
el00ruobuob committed
997
998
999
1000

Example:

```
For faster browsing, not all history is shown. View entire blame