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:
/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:
params:
type: array
items: {}
default: '["1", 1]'
method:
type: string
default: getblock
id:
type: string
default: ZIRjKWa3u3
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":{}}'
/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: string
default: bnMfmMTZg2
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"}'
/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: string
default: B8VMAM4QVE
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: '[]'
/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: string
default: NA7pOvDSEt
params:
type: array
items: {}
default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"]}]'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"balance":0}'
'400':
description: Bad request
content:
application/json:
schema:
type: object
properties:
error:
type: string
default: Invalid parameters
/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:
params:
type: array
items: {}
default: '["00000000febc373a1da2bd9f887b105ad79ddc26ac26c2b28652d64e5207c5b5"]'
method:
type: string
default: z_gettreestate
id:
type: string
default: 7fsifMJFvD
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}'
/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: string
default: 434jrn4jzN
method:
type: string
default: getblocktemplate
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:
params:
type: array
items: {}
default: '[]'
id:
type: string
default: OAVHYYvbys
method:
type: string
default: getblockcount
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '0'
/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]'
method:
type: string
default: getrawtransaction
id:
type: string
default: oFXx0njb3Q
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"hex":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","height":0,"confirmations":0}'
'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:
id:
type: string
default: 6JMrKCulfK
params:
type: array
items: {}
default: '[]'
method:
type: string
default: getmininginfo
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"networksolps":0,"networkhashps":0,"chain":"","testnet":false}'
/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: string
default: njhGtG4nug
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '0'
/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:
params:
type: array
items: {}
default: '[1]'
id:
type: string
default: o9on8TUcxC
method:
type: string
default: getblocksubsidy
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"fundingstreams":[],"miner":0.0,"founders":0.0}'
'400':
description: Bad request
content:
application/json:
schema:
type: object
properties:
error:
type: string
default: Invalid parameters
/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: string
default: mZ3lenrWTl
method:
type: string
default: getdifficulty
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '0.0'
/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:
id:
type: string
default: lv1vEXiEVB
params:
type: array
items: {}
default: '[]'
method:
type: string
default: z_listunifiedreceivers
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"orchard":"orchard address if any","sapling":"sapling address if any","p2pkh":"p2pkh address if any","p2sh":"p2sh address if any"}'
/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: string
default: v8H0x69zSY
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"isvalid":false}'
/getblockchaininfo:
post:
tags:
- blockchain
description: Returns blockchain state information, as a [`GetBlockChainInfo`] JSON struct.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
params:
type: array
items: {}
default: '[]'
method:
type: string
default: getblockchaininfo
id:
type: string
default: zRjGZZwAnV
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"}}'
/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: string
default: Jfjekl0y9o
method:
type: string
default: sendrawtransaction
params:
type: array
items: {}
default: '["signedhex"]'
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: '"0000000000000000000000000000000000000000000000000000000000000000"'
/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: string
default: z9RH4BT3dD
params:
type: array
items: {}
default: '[{"addresses": ["tmYXBYJj1K7vhejSec5osXK2QsGa5MTisUQ"]}]'
method:
type: string
default: getaddressutxos
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"address":"t1Hsc1LR8yKnbbe3twRp88p6vFfC5t7DLbs","txid":"0000000000000000000000000000000000000000000000000000000000000000","outputIndex":0,"script":"00000000000000000000","satoshis":0,"height":0}'
'400':
description: Bad request
content:
application/json:
schema:
type: object
properties:
error:
type: string
default: Invalid parameters
/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:
id:
type: string
default: 5DEifPkJXG
method:
type: string
default: getnetworkhashps
params:
type: array
items: {}
default: '[]'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '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:
params:
type: array
items: {}
default: '[1]'
id:
type: string
default: FEsc1mYWNA
method:
type: string
default: getblockhash
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
/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:
params:
type: array
items: {}
default: '[]'
method:
type: string
default: submitblock
id:
type: string
default: YSNgpz5kOl
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '"rejected"'
/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:
method:
type: string
default: z_validateaddress
id:
type: string
default: 0m8Q1ZRXFa
params:
type: array
items: {}
default: '[]'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"isvalid":false}'
/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:
id:
type: string
default: TCjABbbF6x
method:
type: string
default: z_getsubtreesbyindex
params:
type: array
items: {}
default: '[]'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"pool":"sapling | orchard","start_index":0,"subtrees":[]}'
/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
id:
type: string
default: 3KcsXMidC9
params:
type: array
items: {}
default: '[]'
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:
params:
type: array
items: {}
default: '[]'
method:
type: string
default: getpeerinfo
id:
type: string
default: dPCf95i0af
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '{"addr":"0.0.0.0:0"}'
/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:
params:
type: array
items: {}
default: '[]'
method:
type: string
default: getbestblockhash
id:
type: string
default: iqmITz3oTr
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: object
default: '"0000000000000000000000000000000000000000000000000000000000000000"'