openapi: 3.0.3 info: title: Swagger Zebra API - OpenAPI 3.0 version: 0.0.1 description: |- This is the Zebra API. It is a JSON-RPC 2.0 API that allows you to interact with the Zebra node. Useful links: - [The Zebra repository](https://github.com/ZcashFoundation/zebra) - [The latests API spec](https://github.com/ZcashFoundation/zebra/blob/main/openapi.yaml) servers: - url: http://localhost:8232 paths: /sendrawtransaction: post: tags: - transaction description: |- Sends the raw bytes of a signed transaction to the local node''s mempool, if the transaction is valid."] **Request body `params` arguments:** - `raw_transaction_hex` - The hex-encoded raw transaction bytes. requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '["signedhex"]' method: type: string default: sendrawtransaction id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /getinfo: post: tags: - control description: Returns software information from the RPC server, as a [`GetInfo`] JSON struct."] requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getinfo id: type: number default: '123' params: type: array items: {} default: '[]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{"build":"some build version","subversion":"some subversion"}' /getblockhash: post: tags: - blockchain description: |- Returns the hash of the block of a given height iff the index argument correspond"] **Request body `params` arguments:** - `index` - The block index. requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[1]' method: type: string default: getblockhash id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '"0000000000000000000000000000000000000000000000000000000000000000"' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /getmininginfo: post: tags: - mining description: Returns mining-related information."] requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getmininginfo id: type: number default: '123' params: type: array items: {} default: '[]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /validateaddress: post: tags: - util description: |- Checks if a zcash address is valid."] **Request body `params` arguments:** - `address` - The zcash address to validate. requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: validateaddress params: type: array items: {} default: '[]' id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getblocksubsidy: post: tags: - mining description: |- Returns the block subsidy reward of the block at `height`, taking into account the mining slow start."] **Request body `params` arguments:** - `height` - Can be any valid current or future height. requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[1]' method: type: string default: getblocksubsidy responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /submitblock: post: tags: - mining description: |- Submits block to the node to be validated and committed."] **Request body `params` arguments:** - `jsonparametersobject` - - currently ignored requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[]' method: type: string default: submitblock responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /z_listunifiedreceivers: post: tags: - wallet description: |- Returns the list of individual payment addresses given a unified address."] **Request body `params` arguments:** - `address` - The zcash unified address to get the list from. requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: z_listunifiedreceivers id: type: number default: '123' params: type: array items: {} default: '[]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getblockcount: post: tags: - blockchain description: Returns the height of the most recent block in the best valid block chain (equivalently,"] requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[]' method: type: string default: getblockcount responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getaddressutxos: post: tags: - address description: |- Returns all unspent outputs for a list of addresses."] **Request body `params` arguments:** - `addresses` - The addresses to get outputs from. requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' method: type: string default: getaddressutxos params: type: array items: {} default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"]}]' responses: '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getaddresstxids: post: tags: - address description: |- Returns the transaction ids made by the provided transparent addresses."] **Request body `params` arguments:** - `request` - A struct with the following named fields: requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getaddresstxids id: type: number default: '123' params: type: array items: {} default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"], "start": 1000, "end": 2000}]' responses: '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /z_getsubtreesbyindex: post: tags: - blockchain description: |- Returns information about a range of Sapling or Orchard subtrees."] **Request body `params` arguments:** - `pool` - The pool from which subtrees should be returned. Either \"sapling\" or \"orchard\". - `start_index` - The index of the first 2^16-leaf subtree to return. - `limit` - The maximum number of subtree values to return. requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' method: type: string default: z_getsubtreesbyindex id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getpeerinfo: post: tags: - network description: Returns data about each connected network node."] requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[]' method: type: string default: getpeerinfo responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getbestblockhash: post: tags: - blockchain description: Returns the hash of the current best blockchain tip block, as a [`GetBlockHash`] JSON string."] requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' method: type: string default: getbestblockhash params: type: array items: {} default: '[]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '"0000000000000000000000000000000000000000000000000000000000000000"' /getblocktemplate: post: tags: - mining description: |- Returns a block template for mining new Zcash blocks."] **Request body `params` arguments:** - `jsonrequestobject` - A JSON object containing arguments. requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[]' method: type: string default: getblocktemplate responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getdifficulty: post: tags: - blockchain description: Returns the proof-of-work difficulty as a multiple of the minimum difficulty."] requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '[]' method: type: string default: getdifficulty responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getrawmempool: post: tags: - blockchain description: Returns all transaction ids in the memory pool, as a JSON array."] requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' id: type: number default: '123' method: type: string default: getrawmempool responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getaddressbalance: post: tags: - address description: |- Returns the total balance of a provided `addresses` in an [`AddressBalance`] instance."] **Request body `params` arguments:** - `address_strings` - A JSON map with a single entry requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' method: type: string default: getaddressbalance params: type: array items: {} default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"]}]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /getnetworksolps: post: tags: - mining description: Returns the estimated network solutions per second based on the last `num_blocks` before"] requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' id: type: number default: '123' method: type: string default: getnetworksolps responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /z_gettreestate: post: tags: - blockchain description: |- Returns information about the given block''s Sapling & Orchard tree state."] **Request body `params` arguments:** - `hash | height` - The block hash or height. requestBody: required: true content: application/json: schema: type: object properties: id: type: number default: '123' params: type: array items: {} default: '["00000000febc373a1da2bd9f887b105ad79ddc26ac26c2b28652d64e5207c5b5"]' method: type: string default: z_gettreestate responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{"hash":"0000000000000000000000000000000000000000000000000000000000000000","height":0,"time":0}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /getrawtransaction: post: tags: - transaction description: |- Returns the raw transaction data, as a [`GetRawTransaction`] JSON string or structure."] **Request body `params` arguments:** - `txid` - The transaction ID of the transaction to be returned. - `verbose` - If 0, return a string of hex-encoded data, otherwise return a JSON object. requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getrawtransaction id: type: number default: '123' params: type: array items: {} default: '["mytxid", 1]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /z_validateaddress: post: tags: - util description: |- Checks if a zcash address is valid."] **Request body `params` arguments:** - `address` - The zcash address to validate. requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' id: type: number default: '123' method: type: string default: z_validateaddress responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getblock: post: tags: - blockchain description: |- Returns the requested block by hash or height, as a [`GetBlock`] JSON string."] **Request body `params` arguments:** - `hash_or_height` - The hash or height for the block to be returned. - `verbosity` - 0 for hex encoded data, 1 for a json object, and 2 for json object with transaction data. requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getblock params: type: array items: {} default: '["1", 1]' id: type: number default: '123' responses: '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{"hash":"0000000000000000000000000000000000000000000000000000000000000000","confirmations":0,"tx":[],"trees":{}}' /getnetworkhashps: post: tags: - mining description: Returns the estimated network solutions per second based on the last `num_blocks` before"] requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' method: type: string default: getnetworkhashps id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /getblockchaininfo: post: tags: - blockchain description: Returns blockchain state information, as a [`GetBlockChainInfo`] JSON struct."] requestBody: required: true content: application/json: schema: type: object properties: method: type: string default: getblockchaininfo id: type: number default: '123' params: type: array items: {} default: '[]' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{"chain":"main","blocks":1,"bestblockhash":"0000000000000000000000000000000000000000000000000000000000000000","estimatedheight":1,"upgrades":{},"consensus":{"chaintip":"00000000","nextblock":"00000000"}}'