zebra/openapi.yaml

1008 lines
28 KiB
YAML

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"}'