Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
2606 lines (2165 sloc) 79 KB

API reference (JSON-RPC)

this is the document of ela json rpc interfaces. it follows json-rpc 2.0 protocol but also keeps compatible with 1.0 version. That means both named params and positional params are acceptable.

"id" is optional, which will be sent back in the result samely if you add it in a request. It is needed when you want to distinguish different requests.

"jsonrpc" is optional. It tells which version this request uses. In version 2.0 it is required, while in version 1.0 it does not exist.

getbestblockhash

Return the hash of the most recent block

result:

name type description
blockhash string the hash of the most recent block

Example

Request:

{
  "jsonrpc": "2.0",
  "method":"getbestblockhash",
  "params": [],
  "id": 1
}

Response:

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "68692d63a8bfc8887553b97f99f09e523d34a2b599bf5b388436b2ddc85ed76e",
  "error": null
}

getblockhash

Return the hash of the specific blockchain height.

Parameter

name type description
height integer the height of blockchain

Result

name type description
blockhash string the hash of the block

Example

Request:

{
  "method":"getblockhash",
  "params":{"height":1}
}

Response:

{
  "id": null,
  "jsonrpc": "2.0",
  "result": "3893390c9fe372eab5b356a02c54d3baa41fc48918bbddfbac78cf48564d9d72",
  "error": null
}

getblock

Return the block information of the specific blockchain hash.

Parameter

name type description
blockhash string the blockchain hash
verbosity int the verbosity of result, can be 0, 1, 2

Example

Request:

{
  "method":"getblock",
  "params":{
  	"blockhash":"f3a7469bb59452ab665f8b8870e1fb30e6a7181e2ea70f377e218d5b13cfa8ed", 
  	"verbosity": 0},
}

Response when verbosity is 0:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": "00000000c0433b918f500392869aa14cf7a909430fd94502b5c9f05421c9da7519bd6a65219184ea3c0a2973b90b8402c8405b76d7fbe10a268f6de7e4f48e93f5d03df7c31e095bffff7f2000000000d107000001000000010000000000000000000000000000000000000000000000000000000000000000000000002cfabe6d6d3ca6bcc86bada4642fea709731f1653bd34b28ab15b790e102e14e0d7bd138d80100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7f00000000000000000000000000000000000000000000000000000000000000000ce39baabcdbb4adce38c5f23314c5f63a536bbcc8f0a47c7054c36ca27f5acd771d095b00000000020000000101000000000403454c4101000846444170b0e427d2010000000000000000000000000000000000000000000000000000000000000000ffffffffffff02b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a31b2913000000000000000000129e9cf1c5f336fcf3a6c954444ed482c5d916e506b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a341b52c000000000000000000219e9cc4320c3018ced30242b25c03e13a1b2f57c7d107000000"
}

Response when verbosity is 1:

name type description
hash string the blockchain hash
confirmations integer confirmations
size integer the size of a block in bytes
strippedsize integer equals to size
weight integer This block’s weight
height integer the height of block
version integer block header's version
versionhex string block header's version in hex format
merkleroot string the merkleroot hash of this block
tx array[string] transaction hashes of this block, in an array
time integer the Unix timestamp of this block
mediantime integer equals to time
nonce integer the nonce of this block
bits integer bits of this block
difficulty string difficulty of this block
chainwork string The estimated number of block header hashes miners had to check from the genesis block to this block, encoded as big-endian hex
previousblockhash string previous block hash
nextblockhash string next block hash
auxpow string Auxpow information in hex format
{
  "id": null,
  "error": null,
  "jsonrpc": "2.0",
  "result": {
    "hash": "3893390c9fe372eab5b356a02c54d3baa41fc48918bbddfbac78cf48564d9d72",
    "confirmations": 5156,
    "strippedsize": 498,
    "size": 498,
    "weight": 1992,
    "height": 1,
    "version": 0,
    "versionhex": "00000000",
    "merkleroot": "764691821f937fd566bcf533611a5e5b193008ea1ba1396f67b7b0da22717c02",
    "tx": [
      "764691821f937fd566bcf533611a5e5b193008ea1ba1396f67b7b0da22717c02"
    ],
    "time": 1524737598,
    "mediantime": 1524737598,
    "nonce": 0,
    "bits": 545259519,
    "difficulty": "1",
    "chainwork": "00001423",
    "previousblockhash": "8d7014f2f941caa1972c8033b2f0a860ec8d4938b12bae2c62512852a558f405",
    "nextblockhash": "aa98305779686e66294a9b667e6ac77f5231bb2ce09fe7d9ca641775413ecb5a",
    "auxpow": "01000000010000000000000000000000000000000000000000000000000000000000000000000000002cfabe6d6d3893390c9fe372eab5b356a02c54d3baa41fc48918bbddfbac78cf48564d9d720100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0000000000000000000000000000000000000000000000000000000000000000a19035123a440356c0a41a85fe26865620fb4c34dcf1b83b46b5e11efcbbdd893ea6e15a0000000000000000"
  }
}

Response when verbosity is 2:

result format except 'tx' is the same as it is when verbosity=1

result format in 'tx' please see interface 'getrawtransaction'

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "hash": "3ca6bcc86bada4642fea709731f1653bd34b28ab15b790e102e14e0d7bd138d8",
    "confirmations": 1,
    "strippedsize": 498,
    "size": 498,
    "weight": 1992,
    "height": 2001,
    "version": 0,
    "versionhex": "00000000",
    "merkleroot": "219184ea3c0a2973b90b8402c8405b76d7fbe10a268f6de7e4f48e93f5d03df7",
    "tx": [
      {
        "txid": "219184ea3c0a2973b90b8402c8405b76d7fbe10a268f6de7e4f48e93f5d03df7",
        "hash": "219184ea3c0a2973b90b8402c8405b76d7fbe10a268f6de7e4f48e93f5d03df7",
        "size": 192,
        "vsize": 192,
        "version": 0,
        "locktime": 2001,
        "vin": [
          {
            "txid": "0000000000000000000000000000000000000000000000000000000000000000",
            "vout": 65535,
            "sequence": 4294967295
          }
        ],
        "vout": [
          {
            "value": "0.01255707",
            "n": 0,
            "address": "8VYXVxKKSAxkmRrfmGpQR2Kc66XhG6m3ta",
            "assetid": "b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3",
            "outputlock": 0
          },
          {
            "value": "0.02929985",
            "n": 1,
            "address": "EXca4DJwqCXa6vbJmpovwatHiP8HRTVS1Z",
            "assetid": "b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3",
            "outputlock": 0
          }
        ],
        "blockhash": "3ca6bcc86bada4642fea709731f1653bd34b28ab15b790e102e14e0d7bd138d8",
        "confirmations": 1,
        "time": 1527324355,
        "blocktime": 1527324355,
        "type": 0,
        "payloadversion": 4,
        "payload": {
          "CoinbaseData": "ELA"
        },
        "attributes": [
          {
            "usage": 0,
            "data": "46444170b0e427d2"
          }
        ],
        "programs": []
      }
    ],
    "time": 1527324355,
    "mediantime": 1527324355,
    "nonce": 0,
    "bits": 545259519,
    "difficulty": "1",
    "chainwork": "00000000",
    "previousblockhash": "c0433b918f500392869aa14cf7a909430fd94502b5c9f05421c9da7519bd6a65",
    "nextblockhash": "0000000000000000000000000000000000000000000000000000000000000000",
    "auxpow": "01000000010000000000000000000000000000000000000000000000000000000000000000000000002cfabe6d6d3ca6bcc86bada4642fea709731f1653bd34b28ab15b790e102e14e0d7bd138d80100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7f00000000000000000000000000000000000000000000000000000000000000000ce39baabcdbb4adce38c5f23314c5f63a536bbcc8f0a47c7054c36ca27f5acd771d095b0000000002000000"
  }
}

getblockcount

Get block count

Example

Request:

{
  "method":"getblockcount"
}

Response:

{
  "jsonrpc": "2.0",
  "id": null,
  "error": null,
  "result": 171454
}

getrawtransaction

Get transaction infomation of given transaction hash.

Parameter

name type description
txid string transaction hash
verbose bool verbose of result

Results

name type description
txid string transaction id
hash string transaction id
size integer transaction size
vsize integer The virtual transaction size, equals to size
version integer The transaction format version number
locktime integer The transaction’s locktime
sequence integer The transaction’s sequence number
vin array input utxo vector of this transaction
n integer index of utxo outputs
vout array output utxo vector of this transaction
assetid string asset id
outputlock string outputlock of this transaction

Example

Request:

{
  "method": "getrawtransaction",
  "params": ["caa0d52ea2b90a08480834b97c271a8b847aadf90057318a33ccc8674b77c796"]
}

Response when verbosity is ture:

{
  "id": null,
  "error": null,
  "jsonrpc": "2.0",
  "result": {
    "txid": "6864bbf52a3e140d40f1d707bae31d006265efc54dcb58e34037645060ce3e16",
    "hash": "6864bbf52a3e140d40f1d707bae31d006265efc54dcb58e34037645060ce3e16",
    "size": 192,
    "vsize": 192,
    "version": 0,
    "locktime": 1000,
    "vin": [
      {
        "txid": "0000000000000000000000000000000000000000000000000000000000000000",
        "vout": 65535,
        "sequence": 4294967295
      }
    ],
    "vout": [
      {
        "value": "0.01255707",
        "n": 0,
        "address": "8VYXVxKKSAxkmRrfmGpQR2Kc66XhG6m3ta",
        "assetid": "b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3",
        "outputlock": 0
      },
      {
        "value": "0.02929985",
        "n": 1,
        "address": "ENTogr92671PKrMmtWo3RLiYXfBTXUe13Z",
        "assetid": "b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3",
        "outputlock": 0
      }
    ],
    "blockhash": "0000000000000000000000000000000000000000000000000000000000000000",
    "confirmations": 4158,
    "time": 1524737766,
    "blocktime": 1524737766,
    "type": 0,
    "payloadversion": 4,
    "payload": {
      "CoinbaseData": "ELA"
    },
    "attributes": [
      {
        "usage": 0,
        "data": "b52165c186769037"
      }
    ],
    "programs": []
  }
}

Response when verbosity is false:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": "000403454c4101000846444170b0e427d2010000000000000000000000000000000000000000000000000000000000000000ffffffffffff02b037db964a231458d2d  6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a31b2913000000000000000000129e9cf1c5f336fcf3a6c954444ed482c5d916e506b037db964a231458d2d6ffd  5ea18944c4f90e63d547c5d3b9874df66a4ead0a341b52c000000000000000000219e9cc4320c3018ced30242b25c03e13a1b2f57c7d107000000"
}

getrawmempool

Return hashes of transactions in memory pool.

Example

Request:

{
  "method":"getrawmempool"
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result":["5da460632a154fe75df0d5ec98560e4bc1115374a37a75e984a534f8da3ca941", "5da460632a154fe75df0d5ec98560e4bc1115374a37a75e984a534f8da3ca941"]
}

Request:

{
	"method":"getrawmempool",
	"params":{
		"state":"all"
	}
}

Response:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "txid": "7bc35c1bb5d21c74cb94b73e2774c1be77a460b7ba1a5d8e73baa1721bb8c98d",
            "hash": "7bc35c1bb5d21c74cb94b73e2774c1be77a460b7ba1a5d8e73baa1721bb8c98d",
            "size": 369,
            "vsize": 369,
            "version": 0,
            "type": 5,
            "payloadversion": 0,
            "payload": {
                "blockheight": 366174,
                "sideblockhash": "50e95c5452808282249827971def9b6d01a83a62251aada221b20ea66755f44b",
                "sidegenesishash": "a3c455a90843db2acd22554f2768a8d4233fafbf8dd549e6b261c2786993be56",
                "signature": "fdcb69746140a2c9b42c91642e5f887c7859c3709c189a83ed09ac2305d524d66e3b77dff3e9c070323d312afb8efedc60ce41c12e6684e0db5088bad1683a92"
            },
            "attributes": [
                {
                    "usage": 0,
                    "data": "38303631373539313233303934363232343938"
                }
            ],
            "vin": [
                {
                    "txid": "754552520bbc5241fe5e59aae333a7e72d65c1d4ecec3a123cab3c773186a6b2",
                    "vout": 0,
                    "sequence": 0
                }
            ],
            "vout": [
                {
                    "value": "0.00300000",
                    "n": 0,
                    "address": "EfJDXdRiPk8aiSFwQ4Wf6BCddxgLS4o5hG",
                    "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                    "outputlock": 0,
                    "type": 0,
                    "payload": null
                }
            ],
            "locktime": 688434,
            "programs": [
                {
                    "code": "21036eac18a8fe9722f5afee095334b3970496a92024f832530a51f6f1faba36a881ac",
                    "parameter": "407943915fb2d4938479757dea9cd75e957a9bfe9b45fd973139dd101e1ce4cba3520360ecb2a5da90652fbe05682bb6c7548075225effc87aadc272c27eddcc83"
                }
            ],
            "blockhash": "",
            "confirmations": 0,
            "time": 0,
            "blocktime": 0
        }
    ],
    "id": null,
    "error": null
}

getreceivedbyaddress

Get the balance of an address

Parameter

name type description
address string address

Example

Request:

{
  "method": "getreceivedbyaddress",
  "params":{"address": "8VYXVxKKSAxkmRrfmGpQR2Kc66XhG6m3ta"}
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": "33000000"
}

listunspent

List all utxo of given addresses

Parameter

name type description
addresses array[string] addresses
utxotype string the utxo type

if not set utxotype will use "mixed" as default value if set utxotype to "mixed" or not set will get all utxos ignore the type if set utxotype to "vote" will get vote utxos if set utxotype to "normal" will get normal utxos without vote

Example

Request:

{
  "method":"listunspent",
  "params":{"addresses": ["8ZNizBf4KhhPjeJRGpox6rPcHE5Np6tFx3", "EeEkSiRMZqg5rd9a2yPaWnvdPcikFtsrjE"]}
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": [
    {
      "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
      "txid": "9132cf82a18d859d200c952aec548d7895e7b654fd1761d5d059b91edbad1768",
      "vout": 0,
      "address": "8ZNizBf4KhhPjeJRGpox6rPcHE5Np6tFx3",
      "amount": "33000000",
      "confirmations": 1102,
      "outputlock": 0
    },
    {
      "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
      "txid": "3edbcc839fd4f16c0b70869f2d477b56a006d31dc7a10d8cb49bd12628d6352e",
      "vout": 0,
      "address": "8ZNizBf4KhhPjeJRGpox6rPcHE5Np6tFx3",
      "amount": "0.01255707",
      "confirmations": 846,
      "outputlock": 0
     }
  ]
}

setloglevel

Set log level

Parameter

name type description
level integer the log level

Example

Request:

{
  "method": "setloglevel",
  "params": {
    "level": 0
  }
}

Response:

{
  "id": null,
  "jsonrpc": "2.0",
  "error": null,
  "result": "log level has been set to 0"
}

getconnectioncount

Get peer's count of this node

Example

Request:

{
  "method": "getconnectioncount"
}

Response:

{
  "id": null,
  "error": null,
  "jsonrpc": "2.0",
  "result": 0
}

getneighbors

Get peer's info

Example

Request:

{
  "method":"getneighbors"
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": [
        "127.0.0.1:64890 (inbound)",
        "127.0.0.1:64880 (inbound)",
        "127.0.0.1:64822 (inbound)",
        "127.0.0.1:22338 (outbound)",
        "127.0.0.1:23338 (outbound)",
        "127.0.0.1:24338 (outbound)"
    ]
}

getnodestate

Get node state

Result

name type description
compile string node's compile version
height integer current height of local node
version integer peer-to-peer network protocol version of this node
services string the services provided by this node
port integer P2P network port
rpcport integer JSON-RPC service port
restport integer RESTful service port
wsport integer webservice port
neighbors array[neighbor] neighbor nodes information

neighbor:

name type description
netaddress string network address of the neighbor in host:port format
services string the services neighbor provides
relaytx bool relay transactions to the neighbor or not
lastsend string the last time send a message to the neighbor
lastrecv string the last time received a message from the neighbor
conntime string the time when this neighbor was connected
timeoffset integer time offset between local time and the time advertised by the neighbor
version integer peer-to-peer network version advertised by the neighbor
inbound bool the connection direction of the neighbor (inbound/outbound)
startingheight integer the height advertised by the neighbor when connected
lastblock integer the height of the last block advertised by the neighbor
lastpingtime string the last time send a ping message to the neighbor
lastpingmicros integer microseconds to receive pong message after sending last ping message

Example

Request:

{
  "method":"getnodestate"
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "compile": "v0.2.2-231-g75d2-dirty",
        "height": 0,
        "version": 20000,
        "services": "SFNodeNetwork|SFTxFiltering|SFNodeBloom",
        "port": 21338,
        "rpcport": 21336,
        "restport": 21334,
        "wsport": 21335,
        "neighbors": [
            {
                "netaddress": "127.0.0.1:57656",
                "services": "SFNodeNetwork|SFTxFiltering|SFNodeBloom",
                "relaytx": false,
                "lastsend": "2019-03-06 14:52:03 +0800 CST",
                "lastrecv": "2019-03-06 14:52:18 +0800 CST",
                "conntime": "2019-03-06 14:51:33.65298 +0800 CST m=+36.604516146",
                "timeoffset": 0,
                "version": 20000,
                "inbound": true,
                "startingheight": 0,
                "lastblock": 0,
                "lastpingtime": "2019-03-06 14:52:03.658121 +0800 CST m=+66.609840707",
                "lastpingmicros": 1033
            },
            {
                "netaddress": "127.0.0.1:22338",
                "services": "SFNodeNetwork|SFTxFiltering|SFNodeBloom",
                "relaytx": false,
                "lastsend": "2019-03-06 14:52:02 +0800 CST",
                "lastrecv": "2019-03-06 14:52:02 +0800 CST",
                "conntime": "2019-03-06 14:51:02.097149 +0800 CST m=+5.048492921",
                "timeoffset": 0,
                "version": 20000,
                "inbound": false,
                "startingheight": 0,
                "lastblock": 0,
                "lastpingtime": "2019-03-06 14:52:02.104806 +0800 CST m=+65.056516088",
                "lastpingmicros": 541
            }
        ]
    }
}

sendrawtransaction

Send a raw transaction to node

Parameter

name type description
data string raw transaction data in hex

Result

name type description
hash string transaction hash

Example

Request:

{
  "method":"sendrawtransaction",
  "params": ["xxxxxx"]
}

Response:

{
  "result":"764691821f937fd566bcf533611a5e5b193008ea1ba1396f67b7b0da22717c02",
  "id": null,
  "jsonrpc": "2.0",
  "error": null
}

togglemining

The switch of mining

Parameter

name type description
mining bool whether mine or not

Example

Request:

{
  "method":"togglemining",
  "params":{"mining":false}
}

Response:

{
  "id": null,
  "jsonrpc": "2.0",
  "result": "mining stopped",
  "error": null
}

discretemining

Generate one or more blocks instantly

Parameter

name type description
count integer count of blocks

Example

Request:

{
  "method":"discretemining",
  "params":{"count":1}
}

Response:

{
  "id": null,
  "jsonrpc": "2.0",
  "result": [
    "741d8131f0eea94c1c72c8bb1f0e9051a0a98441e131585bf5bf01868bf0ef46"
  ],
  "error": null
}

getmininginfo

Returns a json object containing mining-related information

Result

name type description
blocks integer the current block
currentblocktx integer the number of block transactions of the last assembled block
difficulty string the current difficulty
networkhashps string the network hashes per second
pooledtx integer the size of the mempool
chain string current network name

Example

Request:

{
  "method":"getmininginfo",
  "params":{}
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "blocks": 397720,
        "currentblocktx": 7,
        "difficulty": "1553768014955882",
        "networkhashps": "27618978773646499814",
        "pooledtx": 0,
        "chain": "mainnet"
    }
}

createauxblock

Generate an auxiliary block

Parameter

name type description
paytoaddress string miner's address

Example

Request:

named arguments:

{
  "method":"createauxblock",
  "params":{"paytoaddress":"Ef4UcaHwvFrFzzsyVf5YH4JBWgYgUqfTAB"}
}

positional arguments:

{
  "method": "createauxblock",
  "params": ["Ef4UcaHwvFrFzzsyVf5YH4JBWgYgUqfTAB"]
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "chainid": 1224,
    "height": 152789,
    "coinbasevalue": 175799086,
    "bits": "1d36c855",
    "hash": "e28a262b38316fddefb0b5c753f7cc0022afe94e95f881576ad6b8f33f4e49fe",
    "previousblockhash": "f297d03791f4cf2c6ef093b02a77465ea876b040b7772e56b8e140f3bff73871"
  }
}

submitauxblock

Submit the solved auxpow of an auxiliary block

Parameter

name type description
blockhash string the auxiliary block hash
auxpow string the solved auxpow of this auxiliary block

Example

Request:

named arguments sample:

{
  "method":"submitauxblock",
  "params":{
    "blockhash": "7926398947f332fe534b15c628ff0cd9dc6f7d3ea59c74801dc758ac65428e64",
    "auxpow": "02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4b0313ee0904a880495b742f4254432e434f4d2ffabe6d6d9581ba0156314f1e92fd03430c6e4428a32bb3f1b9dc627102498e5cfbf26261020000004204cb9a010f32a00601000000000000ffffffff0200000000000000001976a914c0174e89bd93eacd1d5a1af4ba1802d412afc08688ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90000000014acac4ee8fdd8ca7e0b587b35fce8c996c70aefdf24c333038bdba7af531266000000000001ccc205f0e1cb435f50cc2f63edd53186b414fcb22b719da8c59eab066cf30bdb0000000000000020d1061d1e456cae488c063838b64c4911ce256549afadfc6a4736643359141b01551e4d94f9e8b6b03eec92bb6de1e478a0e913e5f733f5884857a7c2b965f53ca880495bffff7f20a880495b"
  }
}

positional arguments sample:

{
  "method":"submitauxblock",
  "params":[
    "7926398947f332fe534b15c628ff0cd9dc6f7d3ea59c74801dc758ac65428e64",
    "02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4b0313ee0904a880495b742f4254432e434f4d2ffabe6d6d9581ba0156314f1e92fd03430c6e4428a32bb3f1b9dc627102498e5cfbf26261020000004204cb9a010f32a00601000000000000ffffffff0200000000000000001976a914c0174e89bd93eacd1d5a1af4ba1802d412afc08688ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90000000014acac4ee8fdd8ca7e0b587b35fce8c996c70aefdf24c333038bdba7af531266000000000001ccc205f0e1cb435f50cc2f63edd53186b414fcb22b719da8c59eab066cf30bdb0000000000000020d1061d1e456cae488c063838b64c4911ce256549afadfc6a4736643359141b01551e4d94f9e8b6b03eec92bb6de1e478a0e913e5f733f5884857a7c2b965f53ca880495bffff7f20a880495b"
  ]
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": true
}

getinfo

Return node information. warning: this interface is ready to be deprecated. So no api information will be supplied.

listproducers

Show producers infromation

Parameter

name type description
start integer the start index of producers
limit integer the limit count of producers
state string the producer state you want
"all": get producers in any state
"pending": get producers in the pendding state
"active": get producers in the active state
"inactive": get producers in the inactive state
"canceled": get producers in the canceled state
"illegal": get producers in the illegal state
"returned": get producers in the returned state
if state flag not provided return the producers in pending and active state.

Result

name type description
ownerpublickey string the owner public key of producer
nodepublickey string the node public key of the producer
nickname string the nick name of the producer
url string the url of the producer
location uint64 the location number of the producer
active bool if producer has confirmed
votes string the votes currently held
state string the current state of the producer
registerheight uint32 the height of cancel producer
cancelheight uint32 the cancel height of the producer
inactiveheight uint32 the inactive start height of the producer
illegalheight uint32 the illegal start height of the producer
index uint64 the index of the producer
totalvotes string the total votes of registered producers
totalcounts uint64 the total counts of registered producers

Example

Request:

{
  "method": "listproducers",
  "params":{
    "start": 0,
    "limit": 3
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "producers": [
      {
        "ownerpublickey": "0237a5fb316caf7587e052125585b135361be533d74b5a094a68c64c47ccd1e1eb",
        "nodepublickey": "0237a5fb316caf7587e052125585b135361be533d74b5a094a68c64c47ccd1e1eb",
        "nickname": "elastos1",
        "url": "http://www.elastos1.com",
        "location": 401,
        "active": true,
        "votes": "3.11100000",
        "state": "Active",
        "registerheight": 236,
        "cancelheight": 0,
        "inactiveheight": 0,
        "illegalheight": 0,
        "index": 0
      },
      {
        "ownerpublickey": "030a26f8b4ab0ea219eb461d1e454ce5f0bd0d289a6a64ffc0743dab7bd5be0be9",
        "nodepublickey": "030a26f8b4ab0ea219eb461d1e454ce5f0bd0d289a6a64ffc0743dab7bd5be0be9",
        "nickname": "elastos2",
        "url": "http://www.elastos2.com",
        "location": 402,
        "active": true,
        "votes": "2.10000000",
        "state": "Active",
        "registerheight": 225,
        "cancelheight": 0,
        "inactiveheight": 0,
        "illegalheight": 0,
        "index": 1
      },
      {
        "ownerpublickey": "0288e79636e41edce04d4fa95d8f62fed73a76164f8631ccc42f5425f960e4a0c7",
        "nodepublickey": "0288e79636e41edce04d4fa95d8f62fed73a76164f8631ccc42f5425f960e4a0c7",
        "nickname": "elastos3",
        "url": "http://www.elastos3.com",
        "location": 403,
        "active": true,
        "votes": "0",
        "state": "Active",
        "registerheight": 216,
        "cancelheight": 0,
        "inactiveheight": 0,
        "illegalheight": 0,
        "index": 2
      }
    ],
    "totalvotes": "5.21100000",
    "totalcounts": 10
  }
}

producerstatus

Show producer status

Parameter

name type description
publickey string the public key of producer

Result

0: producer has not registered 1: producer has confirmed (6 confirms) 2: producer registered but not confirmed (less than 6 confirms)

Example

Request:

{
  "method": "producerstatus",
  "params":{
    "publickey": "0237a5fb316caf7587e052125585b135361be533d74b5a094a68c64c47ccd1e1eb"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": 1
}

votestatus

Show producer vote status

Parameter

name type description
address string the address of user

Result

Note: If the EnableUtxoDB configuration entry is true, the total field is computed, otherwise the total field returns -1

name type description
total string the total voting rights
voting string the used voting rights
pending bool have vote in tx pool

Example

Request:

{
  "method": "votestatus",
  "params":{
    "address": "EZwPHEMQLNBpP2VStF3gRk8EVoMM2i3hda"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "total": "4.66088900",
    "voting": "0",
    "pending": true
  }
}

estimatesmartfee

Estimate transaction fee smartly.

Parameter

name type description
confirmations int in how many blocks do you want your transaction to be packed

Result

name type description
- int fee rate, the unit is sela per KB

Example

Request:

{
  "method": "estimatesmartfee",
  "params":{
    "confirmations": 5
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": 10000
}

getdepositcoin

Get deposit coin by owner public key.

Parameter

name type description
ownerpublickey string the ownerPublicKey of producer

Result

name type description
available string the available deposit coin of producer
deducted string the deducted deposit coin of producer
deposit string the deposit amount coin of producer
assets string the total assets coin of producer

Example

Request:

{
  "method": "getdepositcoin",
  "params":{
    "ownerpublickey": "024babfecea0300971a6f0ad13b27519faff0ef595faf9490dc1f5f4d6e6d7f3fb"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "available": "1",
    "deducted": "0",
    "deposit": "3",
    "assets": "4"
  }
}

getcrdepositcoin

Get deposit coin by owner public key or cid or did.

Parameter

name type description
id string the cid or did address of CR candidate
publickey string the public key of CR candidate

Result

name type description
available string the available deposit coin of CR candidate
deducted string the deducted deposit coin of CR candidate
deposit string the deposit amount coin of CR candidate
assets string the total assets coin of CR candidate

Example

Request:

{
  "method": "getcrdepositcoin",
  "params":{
    "id": "iUzjmMPTYZq2afqtR46coY6B7h2qD1PQbyq"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "available": "1",
    "deducted": "0",
    "deposit": "3",
    "assets": "4"
  }
}

getarbiterpeersinfo

Get dpos peers information.

Result

name type description
ownerpublickey string owner public key of the peer which should be one of current arbiters
nodepublickey string node public key of the peer which should be one of current arbiters
ip string ip address of the peer (including port)
connstate string connection state about the peer, the value can be: NoneConnection, OutboundOnly, InboundOnly, or 2WayConnection

Example

Request:

{
  "method": "getarbiterpeersinfo"
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": [
        {
            "ownerpublickey": "0243ff13f1417c69686bfefc35227ad4f5f4ca03ccb3d3a635ae8ed67d57c20b97",
            "nodepublickey": "0243ff13f1417c69686bfefc35227ad4f5f4ca03ccb3d3a635ae8ed67d57c20b97",
            "ip": "127.0.0.1:22339",
            "connstate": "2WayConnection"
        },
        {
            "ownerpublickey": "024ac1cdf73e3cbe88843b2d7279e6afdc26fc71d221f28cfbecbefb2a48d48304",
            "nodepublickey": "0393e823c2087ed30871cbea9fa5121fa932550821e9f3b17acef0e581971efab0",
            "ip": "127.0.0.1:23339",
            "connstate": "InboundOnly"
        },
        {
            "ownerpublickey": "0274fe9f165574791f74d5c4358415596e408b704be9003f51a25e90fd527660b5",
            "nodepublickey": "03e281f89d85b3a7de177c240c4961cb5b1f2106f09daa42d15874a38bbeae85dd",
            "ip": "127.0.0.1:24339",
            "connstate": "NoneConnection"
        }
    ]
}

submitsidechainillegaldata

Submit illegal data from side chain.

Parameter

name type description
illegaldata string serialized illegal data in hex string format

Example

Request:

{
  "method":"submitsidechainillegaldata",
  "params":{
    "illegaldata": "016400000021023a133480176214f88848c6eaa684a54b316849df2b8570b57f3a917f19bbc77a52fdfc072182654f163f5f0f9a621d729566c74d10037c4d7bbb0407d1e2c64981855ad8681d0d86d1e91e00167939cb6694d2c422acd208a0072939487f699940353662653933363937386332363162326536343964353864626661663366323364346138363832373466353532326364326164623433303861393535633461330221030a26f8b4ab0ea219eb461d1e454ce5f0bd0d289a6a64ffc0743dab7bd5be0be9210288e79636e41edce04d4fa95d8f62fed73a76164f8631ccc42f5425f960e4a0c7"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": true
}

getconfirmbyheight

Get block confirm by height of block.

Parameter

name type description
height int the height of block
verbosity int the verbosity of result, 0 will return serialized confirmed data, default 1

Result

name type description
sponsor string the sponsor nodePublicKey of the proposal
viewoffset uint32 the viewoffset of the proposal
votes array[struct] the votes of confirm
signer string the singner nodePublicKey of the proposal
accept bool accept or not of the proposal

Example

Request:

{
  "method":"getconfirmbyheight",
  "params":{
    "height": 300000,
    "verbosity": 1
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "blockhash": "65fd07f4069a1ca6833d38e0baa9b0b4a9bac35131feb5c363bd2fb99f8d06d8",
    "sponsor": "024ac1cdf73e3cbe88843b2d7279e6afdc26fc71d221f28cfbecbefb2a48d48304",
    "viewoffset": 0,
    "votes": [
      {
        "signer": "024babfecea0300971a6f0ad13b27519faff0ef595faf9490dc1f5f4d6e6d7f3fb",
        "accept": true
      },
      {
        "signer": "024ac1cdf73e3cbe88843b2d7279e6afdc26fc71d221f28cfbecbefb2a48d48304",
        "accept": true
      },
      {
        "signer": "0274fe9f165574791f74d5c4358415596e408b704be9003f51a25e90fd527660b5",
        "accept": true
      }
    ]
  }
}

getconfirmbyhash

Get block confirm by hash of block.

Parameter

name type description
blockhash string the hash of block
verbosity int the verbosity of result, 0 will return serialized confirmed data, default 1

Result

name type description
sponsor string the sponsor nodePublicKey of the proposal
viewoffset uint32 the viewoffset of the proposal
votes array[struct] the votes of confirm
signer string the singner nodePublicKey of the proposal
accept bool accept or not of the proposal

Example

Request:

{
  "method":"getconfirmbyhash",
  "params":{
    "blockhash": "65fd07f4069a1ca6833d38e0baa9b0b4a9bac35131feb5c363bd2fb99f8d06d8",
    "verbosity": 1
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "blockhash": "65fd07f4069a1ca6833d38e0baa9b0b4a9bac35131feb5c363bd2fb99f8d06d8",
    "sponsor": "024ac1cdf73e3cbe88843b2d7279e6afdc26fc71d221f28cfbecbefb2a48d48304",
    "viewoffset": 0,
    "votes": [
      {
        "signer": "024babfecea0300971a6f0ad13b27519faff0ef595faf9490dc1f5f4d6e6d7f3fb",
        "accept": true
      },
      {
        "signer": "024ac1cdf73e3cbe88843b2d7279e6afdc26fc71d221f28cfbecbefb2a48d48304",
        "accept": true
      },
      {
        "signer": "0274fe9f165574791f74d5c4358415596e408b704be9003f51a25e90fd527660b5",
        "accept": true
      }
    ]
  }
}

getarbitersinfo

Get arbiters and candidates about current and next turn.

Result

name type description
arbiters array[string] get node public keys about arbiters of current turn
candidates array[string] get node public keys about candidates of current turn
nextarbiters array[string] get node public keys about arbiters of next turn
nextcandidates array[string] get node public keys about candidates of next turn
ondutyarbiter string get node public key of current on duty arbiter
currentturnstartheight integer get height of current turn
nextturnstartheight integer get an estimate height of next turn

Example

Request:

{
  "method": "getarbitersinfo"
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": {
    "arbiters": [
      "0247984879d35fe662d6dddb4edf111c9f64fde18ccf8af0a51e4b278c3411a8f2",
      "032e583b6b578cccb9bbe4a53ab54a3e3e60156c01973b16af52b614813fca1bb2",
      "0223b8e8098dd694f4d20ea74800b1260a5a4a0afe7f6a0043c7e459c84ff80fba",
        "03982eaa9744a3777860013b6b988dc5250198cb81b3aea157f9b429206e3ae80f",
      "0328443c1e4bdb5b60ec1d017056f314ba31f8f9f43806128fac20499a9df27bc2"
    ],
    "candidates": [],
    "nextarbiters": [
      "0247984879d35fe662d6dddb4edf111c9f64fde18ccf8af0a51e4b278c3411a8f2",
      "032e583b6b578cccb9bbe4a53ab54a3e3e60156c01973b16af52b614813fca1bb2",
      "0223b8e8098dd694f4d20ea74800b1260a5a4a0afe7f6a0043c7e459c84ff80fba",
      "03982eaa9744a3777860013b6b988dc5250198cb81b3aea157f9b429206e3ae80f",
      "0328443c1e4bdb5b60ec1d017056f314ba31f8f9f43806128fac20499a9df27bc2"
    ],
    "nextcandidates": [],
    "ondutyarbiter": "03982eaa9744a3777860013b6b988dc5250198cb81b3aea157f9b429206e3ae80f",
    "currentturnstartheight": 200,
    "nextturnstartheight": 212
  }
}

getutxosbyamount

Get utxo by given amount, amount of utxo >= given amount.

Parameter

name type description
address string the address of ela
amount string the min amount to get utxo
utxotype string the utxo type

if not set utxotype will use "mixed" as default value if set utxotype to "mixed" or not set will get all utxos ignore the type if set utxotype to "vote" will get vote utxos if set utxotype to "normal" will get normal utxos without vote if set utxotype to "unused" will get all utxos that are not in tx pool

Example

Request:

{
  "method":"getutxosbyamount",
  "params":{
    "address": "XKUh4GLhFJiqAMTF6HyWQrV9pK9HcGUdfJ",
    "amount": "0.25"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": [
    {
      "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
      "txid": "9132cf82a18d859d200c952aec548d7895e7b654fd1761d5d059b91edbad1768",
      "vout": 0,
      "address": "XKUh4GLhFJiqAMTF6HyWQrV9pK9HcGUdfJ",
      "amount": "0.1",
      "confirmations": 1102,
      "outputlock": 0
    },
    {
      "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
      "txid": "3edbcc839fd4f16c0b70869f2d477b56a006d31dc7a10d8cb49bd12628d6352e",
      "vout": 0,
      "address": "XKUh4GLhFJiqAMTF6HyWQrV9pK9HcGUdfJ",
      "amount": "0.2",
      "confirmations": 846,
      "outputlock": 0
     }
  ]
}

getamountbyinputs

Get amount of given inputs.

Parameter

name type description
inputs string the hex string of inputs

Result

Amount of all given inputs, the type is string, if not found input will return error

Example

Request:

{
  "method":"getamountbyinputs",
  "params":{
    "inputs": "029132cf82a18d859d200c952aec548d7895e7b654fd1761d5d059b91edbad17680000000000003edbcc839fd4f16c0b70869f2d477b56a006d31dc7a10d8cb49bd12628d6352e000000000000"
  }
}

Response:

{
  "error": null,
  "id": null,
  "jsonrpc": "2.0",
  "result": "0.3"
}

getblockbyheight

Get a block by specifying block height.

Parameter

name type description
height uint32 the height of block

Result

name type description
hash string the blockchain hash
confirmations integer confirmations
size integer the size of a block in bytes
strippedsize integer equals to size
weight integer This block’s weight
height integer the height of block
version integer block header's version
versionhex string block header's version in hex format
merkleroot string the merkleroot hash of this block
tx array[struct] transactions of this block as an array
time integer the Unix timestamp of this block
mediantime integer equals to time
nonce integer the nonce of this block
bits integer bits of this block
difficulty string difficulty of this block
chainwork string The estimated number of block header hashes miners had to check from the genesis block to this block, encoded as big-endian hex
previousblockhash string previous block hash
nextblockhash string next block hash
auxpow string Auxpow information in hex format

Example

Request:

{
  "method":"getblockbyheight",
  "params":{
    "height":5
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "hash": "d428cf8a8e8e2c265ccceb0ed0a017aae45a89c98529d1f6dd43efc219089e0e",
        "confirmations": 452,
        "strippedsize": 563,
        "size": 563,
        "weight": 2252,
        "height": 5,
        "version": 0,
        "versionhex": "00000000",
        "merkleroot": "c1accbe3434279f74db674728d7020190680474f11c4ec2976bd1223cf7c9c66",
        "tx": [
            {
                "txid": "c1accbe3434279f74db674728d7020190680474f11c4ec2976bd1223cf7c9c66",
                "hash": "c1accbe3434279f74db674728d7020190680474f11c4ec2976bd1223cf7c9c66",
                "size": 257,
                "vsize": 257,
                "version": 0,
                "locktime": 5,
                "vin": [
                    {
                        "txid": "0000000000000000000000000000000000000000000000000000000000000000",
                        "vout": 65535,
                        "sequence": 4294967295
                    }
                ],
                "vout": [
                    {
                        "value": "1.50684931",
                        "n": 0,
                        "address": "EPha6MJ2Y9HAdrtNvMVrBu6ePMnmZJtmyv",
                        "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                        "outputlock": 0,
                        "type": 0,
                        "payload": null
                    },
                    {
                        "value": "1.75799086",
                        "n": 1,
                        "address": "EQzEvQbz5XGDZeWu2u48dPaeLTzvmfSyG4",
                        "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                        "outputlock": 0,
                        "type": 0,
                        "payload": null
                    },
                    {
                        "value": "1.75799088",
                        "n": 2,
                        "address": "EPha6MJ2Y9HAdrtNvMVrBu6ePMnmZJtmyv",
                        "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                        "outputlock": 0,
                        "type": 0,
                        "payload": null
                    }
                ],
                "blockhash": "d428cf8a8e8e2c265ccceb0ed0a017aae45a89c98529d1f6dd43efc219089e0e",
                "confirmations": 452,
                "time": 1556595214,
                "blocktime": 1556595214,
                "type": 0,
                "payloadversion": 4,
                "payload": {
                    "coinbasedata": "ELA"
                },
                "attributes": [
                    {
                        "usage": 0,
                        "data": "f53c107eec00d337"
                    }
                ],
                "programs": []
            }
        ],
        "time": 1556595214,
        "mediantime": 1556595214,
        "nonce": 0,
        "bits": 545259519,
        "difficulty": "1",
        "chainwork": "000001c3",
        "previousblockhash": "b45f9e479340c6d2889076f6bd1e138d14e8620bc2cc0ef642bd15278509d49f",
        "nextblockhash": "185cf0322f3f38abe0ecc0fffbca84d87965492042e87036bf78bfdb665b53fa",
        "auxpow": "01000000010000000000000000000000000000000000000000000000000000000000000000000000002cfabe6d6d0e9e0819c2ef43ddf6d12985c9895ae4aa17a0d00eebcc5c262c8e8e8acf28d40100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7f0000000000000000000000000000000000000000000000000000000000000000a0c69cab73b8541e6d5b17d5c27e3482d3cc0264da80142645f4ad67677a44940cc2c75c0000000001000000",
        "minerinfo": "ELA"
    }
}

getarbitratorgroupbyheight

Get amount of given inputs.

Parameter

name type description
height uint32 block height about the chain

Result

name type description
ondutyarbitratorindex int index of current on duty arbitrator
arbitrators array[string] an array of current arbitrators

Example

Request:

{
  "method":"getarbitratorgroupbyheight",
  "params":{
    "height":310
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "ondutyarbitratorindex": 10,
        "arbitrators": [
            "02338fc098e08ed9a798f0d40b5320f52ad0539b98a972856a948bf652b0014110",
            "026ef6740c405e9ff137410f47fe92597c82a8dd236e87e7f4aafe4dc1aa0cd06b",
            "02c684ec9883bb5397243d9e129b9334a643f4778c28e99d59858162884081b183",
            "02d20a48b4287737912de6af53b6afef2596a755f2a541374dda1fd3ab0aa1b984",
            "02d2dd22fa2abfebb94d34666da47b15f214cc1a9ea1b8db0fda22d264bb922b36",
            "02fc936192cfb02b8a22e4ba090638f05ac60c8bf9d70f1558c5166cb7768a182e",
            "030936942e4bbe3d7f7dc45cea38195f4c4bb1474b336d6bf35fcba179872332b4",
            "0320cb8d823c5d202e0ec481f4e0fa0d3e191fb9d0a7629543882bad7444ad3016",
            "03268eb4064889047863485288515cdd880a986b57ccc9d72ae58d4401f67509a7",
            "034282d36e034272f7c289fd9655797a352d1c76a917e94d6dedaf484acf167e2d",
            "03d732f3df7c081d149bd585b77afe1077cedb4b6c6fd9b6278a8ffd456d34c3ab",
            "03f9a1f5b23e3d57e8d95a45008ad4574352fa55f755a655c81ee22e62894811b2"
        ]
    }
}

getexistwithdrawtransactions

Find out which are already exist in chain by providing a list of withdraw transaction hashes.

Parameter

name type description
txs array[string] a list of transaction hashes in string format

Result

A list of existing transaction hashes.

Example

Request:

{
  "method":"getexistwithdrawtransactions",
  "params":{
    "txs":[
      "3edbcc839fd4f16c0b70869f2d477b56a006d31dc7a10d8cb49bd12628d6352e",
      "9132cf82a18d859d200c952aec548d7895e7b654fd1761d5d059b91edbad1768",
      "764691821f937fd566bcf533611a5e5b193008ea1ba1396f67b7b0da22717c02"
    ]
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": [
      "3edbcc839fd4f16c0b70869f2d477b56a006d31dc7a10d8cb49bd12628d6352e",
      "9132cf82a18d859d200c952aec548d7895e7b654fd1761d5d059b91edbad1768"
    ]
}

listcrcandidates

Show cr candidates information

Parameter

name type description
start integer the start index of cr candidates
limit integer the limit count of cr candidates
state string the cr candidates state you want
"all": get cr candidates in any state
"pending": get cr candidates in the pendding state
"active": get cr candidates in the active state
"canceled": get cr candidates in the canceled state
"returned": get cr candidates in the returned state
if state flag not provided return the cr candidates in pending and active state.

Result

name type description
code string the cr candiate code
cid string the cr candiate address
did string the cr candiate did address
nickname string the nick name of the cr candiate
url string the url of the cr candiate
location uint64 the location number of the cr candiate
state bool if cr candiate has confirmed
votes string the votes currently held
registerheight uint32 the register CR candidate height
cancelheight uint32 the unregister CR candidate height
index uint64 the index of the cr candiate
totalvotes string the total votes of registered cr candiate
totalcounts uint64 the total counts of registered cr candiate

Example

Request:

{
  "method": "listcrcandidates",
  "params":{
    "start": 0,
    "limit": 3
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "crcandidatesinfo": [
            {
                "code": "21036db5984e709d2e0ec62fd974283e9a18e7b87e8403cc784baf1f61f775926535ac",
                "cid": "iUzjmMPTYZq2afqtR46coY6B7h2qD1PQbyq",
                "did": "iTgmaqaMpMj46MW3GCU2h7bPaytwuvQrV3",
                "nickname": "ela_test11",
                "url": "ela_test.org11",
                "location": 38025,
                "state": "Canceled",
                "votes": "0",
                "registerheight": 111,
                "cancelheight": 151,
                "index": 0
            }
        ],
        "totalvotes": "0",
        "totalcounts": 1
    }
}

getsecretarygeneral

get secretary general public key

Example

Request:

{
"method": "getsecretarygeneral"
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "secretarygeneral": "033279a88abf504192f36d0a8f06d66ab1fff80d2715cf3ecbd243b4db8ff2e77e"
    }
}

listcurrentcrs

Show current cr members information

Parameter

name type description
state string the cr member state you want know

Result

name type description
code string the cr member code
cid string the cr member address
did string the cr member did address
nickname string the nick name of the cr member
url string the url of the cr member
location uint64 the location number of the cr member
impeachmentvotes int64 impeachment votes of the cr member
depositamount string the deposite amout of the cr member
depositaddress string the deposite address of the cr member
penalty int64 the penalty of the cr member
index uint64 the index of the cr member
totalcounts uint64 the total counts of current cr member

Example

Request:

{
"method": "listcurrentcrs",
  "params":{
    "state":"all"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "crmembersinfo": [
            {
                "code": "2102e23f70b9b967af35571c32b1442d787c180753bbed5cd6e7d5a5cfe75c7fc1ffac",
                "cid": "iaiZJM922uWo2Uc2gYwZk1nEgiVV7NTtxR",
                "did": "inTc9GeWyNNKNwT1cDcvvEgQwnjszbtpZ5",
                "nickname": "ela_cr2",
                "url": "ela_cr2.org",
                "location": 112211, "impeachmentvotes": 0,
                "depositamout": "5000",
                "deposithash": "De87Qiekzpx7Xqf8RphdwNX5Z84iGgHLKMF5b",
                "penalty": 0,
                "index": 0,
                "State": "Elected"
            },
            {
                "code": "2103c3dd01baa4e3d0625f6c0026ad3d06d085e80c57477efa1a4aa2ab209c210e95ac",
                "cid": "iUBoqE5KnBA1zsd4EWeyj2mXMfUrm5rDmf",
                "did": "intySungjAK3uyHeoajez3yRqX5x68NrNi",
                "nickname": "ela_cr1",
                "url": "ela_cr1.org",
                "location": 112211,
                "impeachmentvotes": 0,
                "depositamout": "5000",
                "depositaddress": "DnemZpPgHLKMF5bMX3WbJYSGTpqJkBN7pe",
                "penalty": 0,
                "index": 1,
                "State": "Elected"
            }
        ],
        "totalcounts": 2
    }
}

listcrproposalbasestate

Show current cr proposal base state information

Parameter

name type description
start integer the start index of cr proposal state
limit integer the limit count of cr proposal state
state string the proposal state you want
"all": get proposals in any state
"registered": get proposals in the registered state
"cragreed": get proposals in the cragreed state
"voteragreed": get proposals in the voteragreed state
"finished": get proposals in the finished state
"crcanceled": get proposals in the crcanceled state
"votercanceled": get proposals in the votercanceled state
"aborted": get proposals in the aborted state .

Result

name type description
status string the proposal status
proposalhash string the cr proposal hash
txhash string the transacion's hash which cr proposal located in
crvotes map[string]VoteResult per cr VoteResult
votersrejectamount common.Fixed64 voters reject amount
registerheight uint32 register height of proposal
terminatedheight uint32 terminated height of proposal
trackingcounts uint32 tracking counts of proposal
proposalowner string owner of proposal
Index uint64 the index of the cr proposal

Example

Request:

{
"method": "listcrproposalbasestate",
  "params":{
    "state":"all",
    "start": 0,
    "limit": 10
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "proposalbasestates": [
            {
                "status": "CRAgreed",
                "proposalhash": "e6942385c899889d4afd4b093e44a29f7d374c25c21432347faf3f82af2e5a88",
                "txhash": "a859222538901eb656ad293483bb361dc0ec2835ce804fb7dffc67241c0ee965",
                "crvotes": {
                    "intySungjAK3uyHeoajez3yRqX5x68NrNi": "approve",
                    "iUBoqE5KnBA1zsd4EWeyj2mXMfUrm5rDmf": "approve",
                    "iTgmaqaMpMj46MW3GCU2h7bPaytwuvQrV3": "approve",
                    "inTc9GeWyNNKNwT1cDcvvEgQwnjszbtpZ5": "approve"
                },
                "votersrejectamount": "324.22213333",
                "registerHeight": 1764,
                "terminatedheight": 0,
                "trackingcount": 0,
                "proposalowner": "02de2bdd021fd17418d1696afb4709fb908401c81fa674f26e8ca0afa624a48727",
                "index": 14
            }
        ],
        "totalcounts": 1
    }
}

getcrproposalstate

Get one cr proposal detail state information by proposalhash or drafthash

Parameter

name type description
proposalhash string hash of the proposal which you want get detail state
drafthash string drafthash of the proposal which you want get detail state

Result

name type description
Status string the proposal status
Proposal CRCProposal the cr proposal
TxHash string hash of the transacion which cr proposal located in
CRVotes map[string]VoteResult per cr VoteResult
VotersRejectAmount string voters reject amount
RegisterHeight uint32 the proposal register height
ProposalType CRCProposalType the type of cr proposal
OwnerPublicKey string the public key of proposal's owner
CRCouncilMemberDID string the did of CR Council Member
DraftHash string the hash of draft proposal
Budgets []Budget the budget of different stages
ProposalType value as follows:
0x00:"Normal" Normal indicates the normal types of proposal.
0x01:"Code" indicates the code upgrade types of proposals.
0x02:"SideChain" indicates the side chain related types of proposals.
0x03:"ChangeOwner" indicates the change proposal owner types of proposals.
0x04:"CloseProposal" indicates the close proposal types of proposals.
0x05:"SecretaryGeneral"indicates the vote secretary general types of proposals.

Example

Request by proposalhash:

{
"method": "getcrproposalstate",
  "params":{
    "proposalhash":"42de0adf2b3673d712fc3efdaf643889ef8442fe25987b25add8c0c961b13612"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "proposalstate": {
            "status": "Registered",
            "proposal": {
                "proposaltype": 0,
                "ownerpublickey": "03c3dd01baa4e3d0625f6c0026ad3d06d085e80c57477efa1a4aa2ab209c210e95",
                "crcouncilmemberdid": "iUBoqE5KnBA1zsd4EWeyj2mXMfUrm5rDmf",
                "drafthash": "9c5ab8998718e0c1c405a719542879dc7553fca05b4e89132ec8d0e88551fcc0",
                "budgets": [
                     {
                        "type": "Imprest",
                        "stage": 0,
                        "amount": "1.1",
                        "status": "Withdrawable"
                     },
                     {
                        "type": "NormalPayment",
                        "stage": 1,
                        "amount": "2.2",
                        "status": "Unfinished"
                     },
                     {
                        "type": "FinalPayment",
                        "stage": 2,
                        "amount": "3.3",
                        "status": "Unfinished"
                     }
                ]
            },
            "txhash": "9f425a8012a3e36128ee61be78a0b6a7832f9d895d08c86cc16e6a084e7f054f",
            "crvotes": {
                "iTgmaqaMpMj46MW3GCU2h7bPaytwuvQrV3": 0
            },
            "votersrejectamount": 0,
            "registerheight": 1277
        }
    }
}

Request by drafthash:

{
"method": "getcrproposalstate",
  "params":{
    "drafthash":"9c5ab8998718e0c1c405a719542879dc7553fca05b4e89132ec8d0e88551fcc0"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "proposalstate": {
            "status": "Registered",
            "proposal": {
                "proposaltype": 0,
                "ownerpublickey": "03c3dd01baa4e3d0625f6c0026ad3d06d085e80c57477efa1a4aa2ab209c210e95",
                "crcouncilmemberdid": "iUBoqE5KnBA1zsd4EWeyj2mXMfUrm5rDmf",
                "drafthash": "9c5ab8998718e0c1c405a719542879dc7553fca05b4e89132ec8d0e88551fcc0",
                "budgets": [
                     {
                        "type": "Imprest",
                        "stage": 0,
                        "amount": "1.1",
                        "status": "Withdrawable"
                     },
                     {
                        "type": "NormalPayment",
                        "stage": 1,
                        "amount": "2.2",
                        "status": "Unfinished"
                     },
                     {
                        "type": "FinalPayment",
                        "stage": 2,
                        "amount": "3.3",
                         "status": "Unfinished"
                    }
                 ]
             },
             "txhash": "9f425a8012a3e36128ee61be78a0b6a7832f9d895d08c86cc16e6a084e7f054f",
             "crvotes": {
                 "iTgmaqaMpMj46MW3GCU2h7bPaytwuvQrV3": 0
             },
             "votersrejectamount": 0,
             "registerheight": 1277,
             "votestartheight": 0
         }
     }
 }

getproposaldraftdata

Get draft data of proposal or proposalReview or proposalTracking transaction detail information by draft hash.

Parameter

name type description
drafthash string draft hash of proposal or proposalReview or proposalTracking transaction

Result

Result is the hex string of draft data.

Example

Request:

{
"method": "getproposaldraftdata",
  "params":{
    "drafthash": "9c5ab8998718e0c1c405a719542879dc7553fca05b4e89132ec8d0e88551fcc0"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": "6d6d9581ba0156314f1e92fd03430c6e4428a32bb3f1b9dc6271024"
}

createrawtransaction

Create a transaction spending the given inputs and creating new outputs. Warning: you should calculate the change output and append it to transaction outputs, otherwise the change should be given to the miners.

Parameter

name type description
inputs array[string] inputs json array of json objects
outputs array[string] outputs json array of json objects
locktime interger the transaction lock time number

Example

Request:

 {
  "method": "createrawtransaction",
  "params":{
    "inputs":"[{\"txid\":\"a704c4c04c70043a2cce34fa95e20f3d33b0a3dc95dd948dee573673b701c7e7\",\"vout\":1}]",
    "outputs": "[{\"address\":\"EKn3UGyEoycACJxKu7F8R5U1Pe6NUpni1H\",\"amount\":1},{\"address\":\"EUmvbPnoC59DJWnEx5VkcJNhK6GnjkoHao\",\"amount\":98.9}]",
    "locktime": 0
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": "0902000001285f24620c18ddc75b7d1f3090efa619bd5b901a5355c30621dad1c2c6dcfbc000000000000002b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a300e1f5050000000000000000211cc5e2ab8654b4fe70949aceaacb017410df55c300b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3806c7d4d0200000000000000217f7946d05f62a92ed345ed9f1391869517bff44d000000000000"
}

signrawtransactionwithkey

Sign the raw transaction with private key.

Parameter

name type description
data string the transaction hex string
codes string the codes json array of json objects
privkeys string the private key json array of json objects

Example

Request:

 {
  "method": "signrawtransactionwithkey",
  "params":{
    "data": "0902000001e7c701b7733657ee8d94dd95dca3b0333d0fe295fa34ce2c3a04704cc0c404a701000000000002b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a300e1f505000000000000000021121c2c946cb3d88b5272038621290e120193c7e600b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a380a2e2110200000000000000126aa11de1372f5763cd93e9eef71008be74a94693000000000000",
    "codes": "[\"5321033b4606d3cec58a01a09da325f5849754909fec030e4cf626e6b4104328599fc7210251a471359b13d22cfdb2d8c8ec687a61f9e01c26e6475d58acf77c153c75d62121036e9eebad12dfbd6ea41a770baa735ec8db0a0be39e35db5ff8f5c87a47543e852103e630e917b0cfd076478780dcbfed89bc6db71f2865c2c124c6f95a4e3b9b307b54ae\"]",
    "privkeys": "[\"ea3ddc681a780866577334de8a2f3e25cbb590c21671d705ce1fef46d84ffd81\"]"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": "0902000001e7c701b7733657ee8d94dd95dca3b0333d0fe295fa34ce2c3a04704cc0c404a701000000000002b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a300e1f505000000000000000021121c2c946cb3d88b5272038621290e120193c7e600b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a380a2e2110200000000000000126aa11de1372f5763cd93e9eef71008be74a946930000000000014140e0bdb6879df338b0aa0039e900237471315342a06e4f40de2777903179c4fd77a48557058e6428bb403318ac2f101501761ce7ae2bb68bc0b5ccf47f5049aef38b5321033b4606d3cec58a01a09da325f5849754909fec030e4cf626e6b4104328599fc7210251a471359b13d22cfdb2d8c8ec687a61f9e01c26e6475d58acf77c153c75d62121036e9eebad12dfbd6ea41a770baa735ec8db0a0be39e35db5ff8f5c87a47543e852103e630e917b0cfd076478780dcbfed89bc6db71f2865c2c124c6f95a4e3b9b307b54ae"
}

decoderawtransaction

Return a JSON object representing the serialized, hex-encoded transaction.

Parameter

name type description
data string the transaction hex string

Example

Request:

 {
  "method": "decoderawtransaction",
  "params":{
    "data":"0200018151747970653a746578742c6d73673a46726f6d20454c4142616e6b2c456e74657220456c6173746f73202d43616c6c6973746f205375706572204e6f64652052657761726420446973747269627574696f6e015241653c7bcee5347ce08918fb52232312cdf14611bd5ab3ed8434a44d379a3701000000000002b037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a386a20500000000000000000021da7a8bc95561e969706abbaf87b12089cd9667dab037db964a231458d2d6ffd5ea18944c4f90e63d547c5d3b9874df66a4ead0a3b0fdfa5302000000000000002157cbdce387181d010890a972f93acf0ff54346b100000000014140a1d30614cc236006f31d67b9dc74af8298692c0fd09d1236d3c50fd50a64df82864359e441efde018d47f69bbcf92e46720baa160621c2160d7830a2bebfc144232103bd33d4fb0697bba896790a132439f402941b6b184cdd06dddf9ce8658f0c0443ac"
  }
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "txid": "4089d8362dfae2680bedb0e6ebab78afe64843b16c2b7e5734b70ff1a2659eef",
        "hash": "4089d8362dfae2680bedb0e6ebab78afe64843b16c2b7e5734b70ff1a2659eef",
        "size": 363,
        "vsize": 363,
        "version": 0,
        "type": 2,
        "payloadversion": 0,
        "payload": null,
        "attributes": [
            {
                "usage": 129,
                "data": "747970653a746578742c6d73673a46726f6d20454c4142616e6b2c456e74657220456c6173746f73202d43616c6c6973746f205375706572204e6f64652052657761726420446973747269627574696f6e"
            }
        ],
        "vin": [
            {
                "txid": "379a374da43484edb35abd1146f1cd12232352fb1889e07c34e5ce7b3c654152",
                "vout": 1,
                "sequence": 0
            }
        ],
        "vout": [
            {
                "value": "0.00369286",
                "n": 0,
                "address": "Ed57c3wF3J1u8vEYE9cjGUpqGPkEJC69v8",
                "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                "outputlock": 0,
                "type": 0,
                "payload": null
            },
            {
                "value": "99.98892464",
                "n": 1,
                "address": "ERA8VusTKV78LTiEseuQC4wBPRu3BQo6rE",
                "assetid": "a3d0eaa466df74983b5d7c543de6904f4c9418ead5ffd6d25814234a96db37b0",
                "outputlock": 0,
                "type": 0,
                "payload": null
            }
        ],
        "locktime": 0,
        "programs": [
            {
                "code": "2103bd33d4fb0697bba896790a132439f402941b6b184cdd06dddf9ce8658f0c0443ac",
                "parameter": "40a1d30614cc236006f31d67b9dc74af8298692c0fd09d1236d3c50fd50a64df82864359e441efde018d47f69bbcf92e46720baa160621c2160d7830a2bebfc144"
            }
        ]
    }
}

getcrrelatedstage

Get CR related stage information.

Example

Request:

{
  "method": "getcrrelatedstage"
}

Response:

{
    "error": null,
    "id": null,
    "jsonrpc": "2.0",
    "result": {
        "onduty":true,
        "ondutystartheight":1000,
        "ondutyendheight":2000,
        "invoting":false,
        "votingstartheight":0,
        "votingendheight":0
    }
}