Skip to content

Daemon JSON RPC API

Marconi Soldate edited this page Jan 7, 2018 · 2 revisions

To start Daemon JSON RPC API server you should specify a port on which server binds (additionally to standard daemon's arguments). You can choose any free port. To do that execute the following command from the command line:

 karbowanecd --rpc-bind-port=32348 
If you want Daemon to be accessed from other computer not only yours you should also use a --rpc-bind-ip 0.0.0.0 command. To do that execute the following command from the command line:
 karbowanecd --rpc-bind-ip=0.0.0.0 --rpc-bind-port=32348 
Having done that you're ready to operate with the daemon through the following API URLs (e.g., your IP address is 126.0.1.100):
 http://126.0.1.100:32348/json_rpc
 http://localhost:32348/json_rpc
    1. Available commands ##
          1. getblockcount #####
Returns current chain height.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method"]
 }
Return value schema:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"type": "object",
 
 	"properties" : {
 		"result" : {
 			"type" : "object",
 			"properties" : {
 				"count" : {
 					"type" : "integer",
 					"minimum": 0,
 					"description": ""
 				},
 				"status" : {
 					"type" : "string"
 				}
 			},
 		"required": ["count", "status"]
 		}
 	},
 	"required": ["result"]
 }
          1. getblockhash #####
Returns block hash by its height

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		},
 		"height" : {
 			"type" : "integer"
 		}
 	},
 	"required" : ["jsonrpc", "method", "height"]
 }
Return value schema:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
  	"title": "KRB JSON RPC API",
 	"type": "object",
 
 	"properties" : {
 		"result" : {
 			"type" : "string",
 			"description": ""
 		}
 	},
 	"required": ["result"]
 }
          1. getblocktemplate #####
Returns blocktemplate with an empty “hole” for nonce.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		},
 		"reserve_size" : {
 			"type" : "integer"
 		},
 		"wallet_address" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method", "reserve_size", "wallet_address"] 
 }
Return value schema
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"type": "object", 
 
 	"properties" : {
 		"result" : {
 			"difficulty" : {
 				"type" : "integer"
 			},
 			"height" : {
 				"type" :"integer"
 			},
 			"reserved_offset" : {
 				"type" : "integer"
 			},
 			"blocktemplate_blob" : {
 				"type" : "string"
 			},
 			"status" : {
 				"type" : "string"
 			}
 		},
 	"required": ["difficulty", "height", "reserved_offset", "blocktemplate_blob", "status"]
 	}
 	"required": ["result"]
 }
          1. submitblock #####
Submits mined block.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		},
 		"block" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method", "block"]
 } 
Return value schema:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"type": "object",
 
 	"properties" : {
 		"result" : {
 			"status" : {
 				"type" : "string",
 				"description": ""
 			},
 			"required": ["status"]
 		}
 	},
 	"required": ["result"]
 }
          1. getlastblockheader #####
Returns last block header.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method"]
 }
Return value schema:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"type": "object", 
    
 	"properties" : {
 		"result" : {
 			"type" : "object",
 			"properties" : {
 				"block_header : {
 					"type" : "object",
 					"properties" : {
										"major_version" :    {
 																"type" : "integer",
 															"description" : ""
 										},
 										"minor_version" : {
 															"type" : "integer",
 															"description" : ""
 											},
 										"timestamp" : {
 															"type" : "integer",
 															"description" : "UNIX timestamp"
 										},
 											"prev_hash" : {
 																"type" : "string",
 															"description" : "previous block's hash"
 										},
 										"nonce" : {
 															"type" : "integer",
 															"description" : ""
 											},
 										"orphan_status" : {
 															"type" : "boolean",
 															"description" : "True if the block was marked as orphaned"
 										},
 										"height" : {
 															"type" : "integer",
 															"description" : ""
 										},
 											"depth" : {
 															"type" : "integer",
 															"description" : "last_block_height - this_block_height"
 										},
 										"hash" : {
 															"type" : "string",
 															"description" : ""
 										},
 										"difficulty" : {
 															"type" : "integer",
 															"description" : ""
 											},
 											"reward" : {
 															"type" : "integer",
 															"description" : "Reward for the block in atomic units"
 										}
 					},
 					"required": [
 										"major_version", 
 										"minor_version", 
 										"timestamp", 
 										"prev_hash", 
 											"nonce",
 											"orphan_status",
 										"height",
 										"depth",
 										"hash",
 										"difficulty",
 										"reward"
 					]
 				},
 				"status" : {
 					"type" : "string"
 				}
 			},
 			"required": ["block_header", "status"]
 		}
 	},
 	"required": ["result"]
 }
          1. getblockheaderbyhash #####
Returns last block header by given hash.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		},
 		"hash" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method", "hash"]
 }
Return value schema:

See getlastblockheader above

          1. getblockheaderbyheight #####
Returns block header by given block height.

URL:

 /json_rpc
Input arguments:
 {
 	"$schema": "http://json-schema.org/draft-04/schema#",
 	"title": "KRB JSON RPC API",
 	"description": "Schema for transfer method in Karbowanec wallet",
 	"type": "object", 
 	
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		},
 		"height" : {
 			"type" : "integer"
 		}
 	},
 	"required" : ["jsonrpc", "method", "height"]
 }
``` 
Return value schema: 

See getlastblockheader above

##### getcurrencyId #####

Returns unique currency identifier.

URL:
 /json_rpc
Input arguments:
 	"properties" : {
 		"jsonrpc" : {
 			"type" : "string"
 		}, 
 		"method" : {
 			"type" : "string"
 		}
 	},
 	"required" : ["jsonrpc", "method"]
 }
Return value schema: 
 	"properties" : {
 		"currency_id_blob" : {
 			"type" : "string"
 		}
 	}
 }
#### Examples ####

##### getblockcount #####

Input:
{ "jsonrpc": "2.0", "id": "test", "method": "getblockcount", "params": {} }
Output: 
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"count": 123456,
 		"status": "OK"
 	}
 }
##### getblockhash #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id": "test",
 	"method": "on_getblockhash",
 	"params": {
 		"height": 123456
 	}
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": "a7428..."
 }
##### getblocktemplate #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "getblocktemplate",
 	"params": {
 		"reserve_size": 200,
 		"wallet_address": "28j5g2Hbe1..."
 	}
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"blocktemplate_blob": "0100de...",
 		"difficulty": 65563,
 		"height": 123456,
 		"reserved_offset": 395,
 		"status": ""
 	}
 }
##### submitblock #####

Input: 
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "submitblock",
 	"params": ["0100b...."]
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"status" : "OK"
 	}
 }
##### getlastblockheader #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "getlastblockheader"
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"block_header": {
 			"depth": 1,
 			"difficulty": 65198,
 			"hash": "9a8be83...",
 			"height": 123456,
 			"major_version": 1,
 			"minor_version": 0,
 			"nonce": 2358499061,
 			"orphan_status": false,
 			"prev_hash": "dde56b7e...",
 			"reward": 44090506423186,
 			"timestamp": 1356589561
 		},
 		"status": "OK"
 	}
 }
##### getblockheaderbyhash #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "getblockheaderbyhash",
 	"params": {
 		"hash" : "9a8be8..."
 	}
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"block_header": {
 			"depth": 1,
 			"difficulty": 65198,
 			"hash": "9a8be83...",
 			"height": 123456,
 			"major_version": 1,
 			"minor_version": 0,
 			"nonce": 2358499061,
 			"orphan_status": false,
 			"prev_hash": "dde56b7e...",
 			"reward": 44090506423186,
  			"timestamp": 1356589561
 		},
 		"status": "OK"
 	}
 }
##### getblockheaderbyheight #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "getblockheaderbyheight",
 	"params": {
 		"height" : 123456
 	}
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"block_header": {
 			"depth": 1,
 			"difficulty": 65198,
  			"hash": "9a8be83...",
 			"height": 123456,
 			"major_version": 1,
 			"minor_version": 0,
 			"nonce": 2358499061,
 			"orphan_status": false,
 			"prev_hash": "dde56b7e...",
 			"reward": 44090506423186,
 			"timestamp": 1356589561
 			},
 		"status": "OK"
 	}
 }
##### getcurrencyId #####

Input:
 {
 	"jsonrpc": "2.0",
 	"id" : "test",
 	"method": "getcurrencyid"
 }
Output:
 {
 	"id": "test",
 	"jsonrpc": "2.0",
 	"result": {
 		"currency_id_blob" : "31..."
 	}
 }

```