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: /getpeerinfo: post: tags: - network description: Returns data about each connected network node. requestBody: required: true content: application/json: schema: type: object properties: params: type: array items: {} default: '[]' method: type: string default: getpeerinfo id: type: number default: '123' responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{}' /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: '{}' /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: method: type: string default: getaddressbalance id: type: number default: '123' 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: '{}' /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: '[]' method: type: string default: validateaddress id: type: number default: '123' 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: id: type: number default: '123' params: type: array items: {} default: '["1", 1]' method: type: string default: getblock responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object default: '{"hash":"0000000000000000000000000000000000000000000000000000000000000000","confirmations":0,"tx":[],"trees":{}}' '400': description: Bad request content: application/json: schema: type: object properties: error: type: string default: Invalid parameters /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: '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 /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' params: type: array items: {} default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"]}]' method: type: string default: getaddressutxos 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: '{}' /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: params: type: array items: {} default: '["mytxid", 1]' id: type: number default: '123' method: type: string default: getrawtransaction 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: method: type: string default: submitblock 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: '{}' /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: method: type: string default: getnetworkhashps 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: method: type: string default: getblocksubsidy id: type: number default: '123' params: type: array items: {} default: '[1]' 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: '{}' /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: '[]' method: type: string default: getnetworksolps id: type: number default: '123' responses: '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: '[]' id: type: number default: '123' method: type: string default: z_getsubtreesbyindex 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"}}' /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: method: type: string default: getbestblockhash 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: '"0000000000000000000000000000000000000000000000000000000000000000"' /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' method: type: string default: z_gettreestate params: type: array items: {} default: '["00000000febc373a1da2bd9f887b105ad79ddc26ac26c2b28652d64e5207c5b5"]' 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","height":0,"time":0}' /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: method: type: string default: getblockhash params: type: array items: {} default: '[1]' 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 /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: '{}' /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: '{}' /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: params: type: array items: {} default: '[]' id: type: number default: '123' method: type: string default: getdifficulty 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: params: type: array items: {} default: '[]' method: type: string default: z_listunifiedreceivers id: type: number default: '123' 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: method: type: string default: getrawmempool 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: '{}' /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: method: type: string default: getblockcount 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: '{}' /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: id: type: number default: '123' params: type: array items: {} default: '["signedhex"]' method: type: string default: sendrawtransaction 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"}'