Overview
State APIs provide access to the blockchain state and other database access and management functions. State functions can be accessed from the JSON-API endpoints and within the console environment.
state_getBranches
Returns a list of all known branches.
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getBranches" ,"id":21}'
Console Example
Copy > state .getBranches ()
Returns:
Array<Object>
The height of the branch.
Whether the chain is a branch.
The number of blocks in the branch.
The hash of the block where the branch started.
The number of the block where the branch started.
The total difficulty of the branch.
The unix time of creation of the branch.
Output:
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : [
{
"height" : "0x1fdf" ,
"id" : "0xd64e1f13182149cf31a5654aca5df231bce538cf9bc466a919bcc6083d10a913" ,
"timestamp" : "0x1562c9ab49894e99" ,
"totalDifficulty" : "0x13048b3a00"
} ,
{
"height" : "0xb0" ,
"id" : "0x0a08d0a6dae1031f36390fad495072e2e4a243691e54103ead70a1eb7dc4e843" ,
"isBranch" : true ,
"length" : "0x1" ,
"parentBlockHash" : "0x1c0c76ccfb63bc3aa4dcd096c8db51531529d5522b3a9d6dea93e2ad82cd8fe0" ,
"parentBlockNumber" : "0xaf" ,
"timestamp" : "0x1562cc956b3f41b0" ,
"totalDifficulty" : "0x68e77800"
}
]
}
state_getBlock
Get a block by its number/height.
Parameters
Set number to 0 to return the most recent block on the main branch.
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getBlock", "params": 2 ,"id":21}'
Console Example
Copy > state .getBlock (number)
Returns:
Block
Output:
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"hash" : "0x67e62d1da7bf41a7e7667f9273eefe5255756d14e424a135ea543e4bbb40e659" ,
"header" : {
"creatorPubKey" : "48YQpehoRDYsivCbnedrz19DfTvh345PwWAKGN3jdUjPNdG3Lte" ,
"difficulty" : "0x989680" ,
"extra" : "0x" ,
"nonce" : "0x61879fb427b56cef" ,
"number" : "0x2" ,
"parentHash" : "0x211df3aed05b45d620850f40c9b4eac006da7ee0f76a7fa99d5ac16a2c2ca42c" ,
"stateRoot" : "0xc222870b2ca3f71d30b8d06b8e3f633812a8c0473cecc38b6fcc12eb5cad89ec" ,
"timestamp" : "0x5bda0ad4" ,
"totalDifficulty" : "0x1312d00" ,
"transactionsRoot" : "0x0000000000000000000000000000000000000000000000000000000000000000"
} ,
"sig" : "0x3e001b22d640331fbf324138b6182ab851e2989319c37ec33044b5495cd86e2160ca0ca2291e66a06ed329a21f1acc7c1c5fa67d96d0b87f6aaec4892cfcac05" ,
"transactions" : []
}
}
state_getBlockByHash
Get a block by its hash.
Parameters
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getBlockByHash", "params": "0x67e62d1da7bf41a7e7667f9273eefe5255756d14e424a135ea543e4bbb40e659" ,"id":21}'
Console Example
Copy > state .getBlockByHash ( "0x67e62d1da7bf41a7e7667f9273eefe5255756d14e424a135ea543e4bbb40e659" )
Returns:
Block
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"hash" : "0x67e62d1da7bf41a7e7667f9273eefe5255756d14e424a135ea543e4bbb40e659" ,
"header" : {
"creatorPubKey" : "48YQpehoRDYsivCbnedrz19DfTvh345PwWAKGN3jdUjPNdG3Lte" ,
"difficulty" : "0x989680" ,
"extra" : "0x" ,
"nonce" : "0x61879fb427b56cef" ,
"number" : "0x2" ,
"parentHash" : "0x211df3aed05b45d620850f40c9b4eac006da7ee0f76a7fa99d5ac16a2c2ca42c" ,
"stateRoot" : "0xc222870b2ca3f71d30b8d06b8e3f633812a8c0473cecc38b6fcc12eb5cad89ec" ,
"timestamp" : "0x5bda0ad4" ,
"totalDifficulty" : "0x1312d00" ,
"transactionsRoot" : "0x0000000000000000000000000000000000000000000000000000000000000000"
} ,
"sig" : "0x3e001b22d640331fbf324138b6182ab851e2989319c37ec33044b5495cd86e2160ca0ca2291e66a06ed329a21f1acc7c1c5fa67d96d0b87f6aaec4892cfcac05" ,
"transactions" : []
}
}
state_getMinedBlocks
Get information about blocks that were mined on the node.
Parameters
The maximum number of results to return (default: 25)
Forces the query to return results after the specified
block hash. Useful for pagination.
Forces the query to return results for only blocks
created by a given public key.
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getMinedBlock", "params": { "limit": 1 } ,"id":21}'
Console Example
Copy > state .getMinedBlocks ({ limit : 10 })
Returns
Object
The slice of objects describing the blocks.
The block creator's public key.
The total transaction fees from the block.
The number of transactions in the block.
Indicates that there are more results to be fetched
Output:
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"blocks" : [
{
"creatorPubKey" : "48jQzKSZ5U1eH7azq7fjqsYCuT129cBMhByrjUQcfQjTTknkE3v" ,
"hash" : "0x8d51a2c86874744d5c690f1bc789b375d7671bf75a45e913339da16350574cba" ,
"number" : "0x9" ,
"timestamp" : 1552074221 ,
"totalFees" : "0" ,
"txCount" : 0
} ,
{
"creatorPubKey" : "48jQzKSZ5U1eH7azq7fjqsYCuT129cBMhByrjUQcfQjTTknkE3v" ,
"hash" : "0xcfcd98936bea3af39959216e6668c0f83c9aeb50f201cf975c26de7127fcd66d" ,
"number" : "0x8" ,
"timestamp" : 1552074202 ,
"totalFees" : "0" ,
"txCount" : 0
}
] ,
"hasMore" : true
}
}
state_getBestChain
Get the main chain
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getBestChain", "id":21}'
Console Example
Copy > state .getBestChain ()
Returns:
Object
The chain's total difficulty.
The unix time of creation.
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"height" : "0x1fdf" ,
"id" : "0xd64e1f13182149cf31a5654aca5df231bce538cf9bc466a919bcc6083d10a913" ,
"timestamp" : "0x1562c9ab49894e99" ,
"totalDifficulty" : "0x13048b3a00"
}
}
state_getOrphans
Get all known orphan blocks
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getOrphans", "id":21}'
Console Example
Returns:
Array<
Block
>
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : [
{
"hash" : "0x67e62d1da7bf41a7e7667f9273eefe5255756d14e424a135ea543e4bbb40e659" ,
"header" : {
"creatorPubKey" : "48YQpehoRDYsivCbnedrz19DfTvh345PwWAKGN3jdUjPNdG3Lte" ,
"difficulty" : "0x989680" ,
"extra" : "0x" ,
"nonce" : "0x61879fb427b56cef" ,
"number" : "0x2" ,
"parentHash" : "0x211df3aed05b45d620850f40c9b4eac006da7ee0f76a7fa99d5ac16a2c2ca42c" ,
"stateRoot" : "0xc222870b2ca3f71d30b8d06b8e3f633812a8c0473cecc38b6fcc12eb5cad89ec" ,
"timestamp" : "0x5bda0ad4" ,
"totalDifficulty" : "0x1312d00" ,
"transactionsRoot" : "0x0000000000000000000000000000000000000000000000000000000000000000"
} ,
"sig" : "0x3e001b22d640331fbf324138b6182ab851e2989319c37ec33044b5495cd86e2160ca0ca2291e66a06ed329a21f1acc7c1c5fa67d96d0b87f6aaec4892cfcac05" ,
"transactions" : [ ... ]
}
]
}
state_getReOrgs
Get records of re-organization events
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getReOrgs", "id":21}'
Console Example
Returns:
Array<Object>
The ID of the main chain before the re-org.
The number of blocks involved in the reorganization.
The number of blocks in the branch.
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : [
{
"mainChainID" : "0xd64e1f13182149cf31a5654aca5df231bce538cf9bc466a919bcc6083d10a913" ,
"reOrgLen" : 2 ,
"branchID" : "0x1429ab07a29f5f13b0b360803be463e160df113556313b24db6d90f5c686f53f" ,
"branchLen" : 2 ,
"timestamp" : 1541020805
}
]
}
state_getAccount
Get an account
Parameters:
The address associated with the account.
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getAccount", "params": "eGzzf1HtQL7M9Eh792iGHTvb6fsnnPipad", "id":21}'
Console Example
Copy > state .getAccount ( "eGzzf1HtQL7M9Eh792iGHTvb6fsnnPipad" )
Returns:
Account
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"address" : "eGzzf1HtQL7M9Eh792iGHTvb6fsnnPipad" ,
"balance" : "100.000000000000000000" ,
"nonce" : 0 ,
"type" : 0
}
}
state_listAccounts
List all accounts
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_listAccounts", "id":21}'
Console Example
Copy > state .listAccounts ()
Returns:
Array<
Account
>
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : [
{
"address" : "e27wBivep3B7XXJWsLhdur5Zq7qvYW8m8c" ,
"balance" : "100.000000000000000000" ,
"nonce" : 0 ,
"type" : 0
} ,
{
"address" : "e27uMdGs5w8vXPJFfGyeFb7ikJTaNThjSV" ,
"balance" : "100.000000000000000000" ,
"nonce" : 0 ,
"type" : 0
}
]
}
state_listTopAccounts
List accounts ordered by their balance in descending order.
Parameters:
The number of accounts to return
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_listTopAccounts", "params": 10, "id":21}'
Console Example
Copy > state .listTopAccounts ( 10 )
Returns:
Array<
Account
>
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : [
{
"address" : "e27wBivep3B7XXJWsLhdur5Zq7qvYW8m8c" ,
"balance" : "100.000000000000000000" ,
"nonce" : 0 ,
"type" : 0
} ,
{
"address" : "e27uMdGs5w8vXPJFfGyeFb7ikJTaNThjSV" ,
"balance" : "100.000000000000000000" ,
"nonce" : 0 ,
"type" : 0
}
]
}
state_getAccountNonce
Get the current nonce of an account
Parameters:
The address of the account
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getAccountNonce", "params": "e2fFNsXAoyzsYQeopt7PRk3KpKj46nYgvB", "id":21}'
Console Example
Copy > state .getAccountNonce ( "e2fFNsXAoyzsYQeopt7PRk3KpKj46nYgvB" )
Returns:
Integer
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : 2
}
state_getTransaction
Get a transaction by its hash
Parameters:
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getTransaction", "params": "0xf91be74146afb8717834f70969d02edff4316508dc62ec8716104968391fc492", "id":21}'
Console Example
Copy > state .getTransaction ( "0xf91be74146afb8717834f70969d02edff4316508dc62ec8716104968391fc492" )
Returns:
Transaction
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"fee" : "0" ,
"from" : "eNGGuhVSrXWWFYmVQBid9hFhiNLAfvPwzS" ,
"hash" : "0xf91be74146afb8717834f70969d02edff4316508dc62ec8716104968391fc492" ,
"nonce" : "0x0" ,
"senderPubKey" : "497a8Z5sTvCgFZYyQQ8Uh3tgm726uPBzM4v3fNpcygevyCcTJf6" ,
"sig" : "0xe579837d73b45af9cc9e381cfe7009106c5ea6c65a22356a61103e9724b92bbb8a7243a4765d28d9e2aa89d34df585efc08c07fff9eb4a649f60f03f3310890e" ,
"timestamp" : "0x5bcc82b7" ,
"to" : "eGzzf1HtQL7M9Eh792iGHTvb6fsnnPipad" ,
"type" : "0x2" ,
"value" : "100"
}
}
state_getDifficulty
Get the current difficulty and total difficulty of the main chain.
Parameters: None
Curl Example:
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"state_getDifficulty", "id":21}'
Console Example
Copy > state .getDifficulty ()
Returns:
Object
The total difficulty of the main chain.
Output
Copy {
"id" : 21 ,
"jsonrpc" : "2.0" ,
"result" : {
"difficulty" : "0x98fdea" ,
"totalDifficulty" : "0x13048b3a00"
}
}