openapi: 3.0.1
info:
title: Waves Full Node (???)
description: >-
The Waves node REST API is the main interface for interacting with the
blockchain. See
[documentation](https://docs.waves.tech/en/waves-node/node-api/) for more
info. If this API lacks data you need, check the [Waves Data Services
API](https://docs.waves.tech/en/building-apps/waves-api-and-sdk/waves-data-service-api).
termsOfService: ''
license:
name: MIT License
url: 'https://github.com/wavesplatform/Waves/blob/master/LICENSE'
version: '???'
servers:
- url: /
tags:
- name: addresses
- name: blocks
- name: peers
- name: blockchain
- name: transactions
- name: utils
- name: wallet
- name: alias
- name: assets
- name: leasing
- name: consensus
- name: activation
- name: debug
- name: node
paths:
/addresses:
get:
tags:
- addresses
summary: Wallet addresses
description: >-
Get a list of account addresses in the [node
wallet](https://docs.waves.tech/en/waves-node/how-to-work-with-node-wallet)
operationId: getWalletAddresses
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: string
post:
tags:
- addresses
summary: Create wallet address
description: >-
Generate a new account address in the [node
wallet](https://docs.waves.tech/en/waves-node/how-to-work-with-node-wallet)
operationId: createWalletAddress
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
type: object
properties:
address:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/addresses/seq/{from}/{to}':
get:
tags:
- addresses
summary: Wallet addresses by range
description: >-
Get a list addresses in the [node
wallet](https://docs.waves.tech/en/waves-node/how-to-work-with-node-wallet)
by a given range of indices. Max range {from}-{to} is 100 addresses
operationId: getWalletAddressesRange
parameters:
- name: from
in: path
description: Start address
required: true
schema:
type: integer
- name: to
in: path
description: End address (not included)
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: string
'/addresses/seed/{address}':
get:
tags:
- addresses
summary: Seed
description: 'Export seed value for the {address}'
operationId: getAccountSeed
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- seed
type: object
properties:
address:
type: string
seed:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/addresses/publicKey/{publicKey}':
get:
tags:
- addresses
summary: Address from a public key
description: Generate an address from a given public key
operationId: getAddressByPublicKey
parameters:
- name: publicKey
in: path
description: Public key base58 encoded
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
type: object
properties:
address:
type: string
'/addresses/balance/{address}':
get:
tags:
- addresses
summary: Regular balance
description: Get the regular balance in WAVES at a given address
operationId: getRegularBalance
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
/addresses/balance:
get:
tags:
- addresses
summary: Multiple accounts balances
description: >-
Get regular balances for multiple addresses. For dozens of addresses,
better use the POST method
operationId: getMultipleBalances
parameters:
- name: address
in: query
description: Addresses base58 encoded
required: true
style: form
explode: true
schema:
type: array
minItems: 1
maxItems: 47
items:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{35}$'
- name: height
in: query
description: >-
For balance at height requests. Max number of blocks back from the
current height is set by `waves.db.max-rollback-depth`, 2000 by
default
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Balance'
'400':
$ref: '#/components/responses/BadRequest'
post:
tags:
- addresses
summary: Multiple accounts balances
description: >-
Get regular balances for multiple addresses. Max number of addresses is
set by `waves.rest-api.transactions-by-address-limit`, 1000 by default
operationId: getMultipleBalancesViaPost
requestBody:
content:
application/json:
schema:
type: object
required:
- addresses
properties:
addresses:
type: array
description: Addresses base58 encoded
items:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{35}$'
minItems: 1
maxItems: 1000
height:
$ref: '#/components/schemas/Height'
description: >-
For balance at height requests. Max number of blocks back
from the current height is set by
`waves.db.max-rollback-depth`, 2000 by default
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Balance'
'/addresses/effectiveBalance/{address}':
get:
tags:
- addresses
summary: Effective balance
description: Get the effective balance in WAVES at a given address
operationId: getEffectiveBalance
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
'/addresses/data/{address}':
get:
tags:
- addresses
summary: Data by keys or regexp
description: Read account data entries by given keys or a regular expression
operationId: getDataByFilter
parameters:
- $ref: '#/components/parameters/address'
- name: matches
in: query
description: >-
URL encoded (percent-encoded) regular
expression to filter keys
schema:
type: string
- name: key
in: query
description: Exact keys to query
style: form
explode: true
schema:
type: array
items:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DataEntry'
post:
tags:
- addresses
summary: Data by keys
description: Read account data entries by given keys
operationId: getDataByMultipleKeysViaPost
parameters:
- $ref: '#/components/parameters/address'
requestBody:
content:
application/json:
schema:
properties:
keys:
type: array
description: Exact keys to query
items:
type: string
application/x-www-form-urlencoded:
schema:
type: object
properties:
key:
type: array
description: Exact keys to query
items:
type: string
encoding:
key:
style: form
explode: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DataEntry'
x-codegen-request-body-name: keys
'/addresses/validate/{address}':
get:
tags:
- addresses
summary: Validate
description: 'Check whether address {address} is valid or not'
operationId: validateAddress
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- valid
type: object
properties:
address:
type: string
valid:
type: boolean
'/addresses/scriptInfo/{address}/meta':
get:
tags:
- addresses
summary: Meta by address
description: Account script meta
operationId: getScriptMeta
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ScriptMeta'
'/addresses/scriptInfo/{address}':
get:
tags:
- addresses
summary: Account script info
description: >-
Get an account script or a dApp script with additional info by a given
address
operationId: getScriptInfo
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- complexity
- extraFee
type: object
properties:
address:
type: string
script:
type: string
format: byte
nullable: true
description: Compiled script in base64 representation
scriptText:
type: string
nullable: true
description: Compiled script in text representation
complexity:
type: integer
format: int64
description: >-
The maximum of `callableComplexities` and
`verifierComplexity`
verifierComplexity:
type: integer
format: int64
description: >-
[Complexity](https://docs.waves.tech/en/ride/base-concepts/complexity)
of an account script or the verifier function of the dApp
script
callableComplexities:
type: object
description: >-
Complexity of callable functions of the dApp script. Empty
for an account script
extraFee:
type: integer
format: int64
description: >-
Extra fee for transactions sending on behalf of the
account
'/addresses/{address}':
delete:
tags:
- addresses
summary: Delete
description: 'Remove the account with address {address} from the wallet'
operationId: deleteWalletAddress
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: Deletion result
content:
application/json:
schema:
required:
- deleted
type: object
properties:
deleted:
type: boolean
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/addresses/balance/details/{address}':
get:
tags:
- addresses
summary: All types of balances in WAVES
description: >-
Get the available, regular, generating, and effective balance, see
[definitions](https://docs.waves.tech/en/blockchain/account/account-balance#account-balance-in-waves)
operationId: getWavesBalances
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- available
- effective
- generating
- regular
type: object
properties:
address:
type: string
regular:
type: integer
format: int64
generating:
type: integer
format: int64
available:
type: integer
format: int64
effective:
type: integer
format: int64
'/addresses/balance/{address}/{confirmations}':
get:
tags:
- addresses
summary: Confirmed regular balance in WAVES
description: >-
Get the minimum regular balance at a given address for {confirmations}
blocks back from the current height. Max number of confirmations is set
by `waves.db.max-rollback-depth`, 2000 by default
operationId: getConfirmedRegularBalance
parameters:
- $ref: '#/components/parameters/address'
- name: confirmations
in: path
description: Number of blocks
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
'/addresses/effectiveBalance/{address}/{confirmations}':
get:
tags:
- addresses
summary: Confirmed effective balance in WAVES
description: >-
Get the minimum effective balance at a given address for {confirmations}
blocks from the current height. Max number of confirmations is set by
`waves.db.max-rollback-depth`, 2000 by default
operationId: getConfirmedEffectiveBalance
parameters:
- $ref: '#/components/parameters/address'
- name: confirmations
in: path
description: Number of blocks
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
'/addresses/data/{address}/{key}':
get:
tags:
- addresses
summary: Data by key
description: Read account data entries by a given key
operationId: getDataByKey
parameters:
- $ref: '#/components/parameters/address'
- name: key
in: path
description: Data key
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DataEntry'
'/blocks/{id}':
get:
tags:
- blocks
summary: Block by ID
description: Get a block by its ID
operationId: getBlockById
parameters:
- $ref: '#/components/parameters/blockId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Block'
'/blocks/heightByTimestamp/{timestamp}':
get:
tags: [blocks]
operationId: getHeightByTimestamp
summary: Blockchain height for timestamp
description: >-
Get height of the most recent block such that its timestamp does not exceed the given `{timestamp}`.
parameters:
- name: timestamp
in: path
required: true
schema:
$ref: '#/components/schemas/Timestamp'
responses:
'200':
$ref: '#/components/responses/Height'
'/blocks/address/{address}/{from}/{to}':
get:
tags:
- blocks
summary: Blocks forged by address
description: >-
Get a list of blocks forged by a given address. Max range {from}-{to} is
100 blocks
operationId: getBlocksByAddress
parameters:
- name: from
in: path
description: Start block height
required: true
schema:
type: integer
- name: to
in: path
description: End block height
required: true
schema:
type: integer
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Block'
'/blocks/seq/{from}/{to}':
get:
tags:
- blocks
summary: Block range
description: >-
Get blocks at a given range of heights. Max range {from}-{to} is 100
blocks
operationId: getBlocksRange
parameters:
- name: from
in: path
description: Start block height
required: true
schema:
type: integer
- name: to
in: path
description: End block height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Block'
'/blocks/delay/{id}/{blockNum}':
get:
tags:
- blocks
summary: Average block delay
description: >-
Average delay in milliseconds between last `blockNum` blocks starting
from block with `id`
operationId: getBlockDelay
parameters:
- $ref: '#/components/parameters/blockId'
- name: blockNum
in: path
description: Number of blocks to count delay
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- delay
type: object
properties:
delay:
type: integer
format: int64
/blocks/height:
get:
tags:
- blocks
summary: Blockchain height
description: Get the current blockchain height
operationId: getHeight
responses:
'200':
$ref: '#/components/responses/Height'
'/blocks/at/{height}':
get:
tags:
- blocks
summary: Block at height
description: Get a block at a given height
operationId: getBlockByHeight
parameters:
- name: height
in: path
description: Block height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Block'
/blocks/last:
get:
tags:
- blocks
summary: Last block
description: Get the block at the current blockchain height
operationId: getLastBlock
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Block'
'/blocks/height/{id}':
get:
tags:
- blocks
summary: Block height
description: Get the height of a block by its ID
operationId: getBlockHeightbyId
parameters:
- $ref: '#/components/parameters/blockId'
responses:
'200':
$ref: '#/components/responses/Height'
'/blocks/headers/at/{height}':
get:
tags:
- blocks
summary: Block headers at height
description: Get block headers at a given height
operationId: getBlockHeadersByHeight
parameters:
- name: height
in: path
description: Block height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BlockHeader'
'/blocks/headers/{id}':
get:
tags:
- blocks
summary: Block headers by ID
description: Get headers of a given block
operationId: getBlockHeadersById
parameters:
- $ref: '#/components/parameters/blockId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BlockHeader'
'/blocks/headers/seq/{from}/{to}':
get:
tags:
- blocks
summary: Block headers at range
description: >-
Get block headers at a given range of heights. Max range {from}-{to} is
100 blocks
operationId: getBlockHeadersRange
parameters:
- name: from
in: path
description: Start block height
required: true
schema:
type: integer
- name: to
in: path
description: End block height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BlockHeader'
/blocks/headers/last:
get:
tags:
- blocks
summary: Last block headers
description: Get headers of the block at the current blockchain height
operationId: getLastBlockHeaders
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BlockHeader'
/peers/connect:
post:
tags:
- peers
summary: Connect to peer
description: Connect to peer
operationId: connectPeer
requestBody:
description: JSON with data
content:
application/json:
schema:
required:
- host
- port
type: object
properties:
host:
type: string
example: 127.0.0.1
port:
type: integer
format: int32
example: 6868
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- hostname
- status
type: object
properties:
hostname:
type: string
status:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
x-codegen-request-body-name: body
/peers/clearblacklist:
post:
tags:
- peers
summary: Clear ban list
description: Clear the list of banned peers
operationId: clearBanList
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- result
type: object
properties:
result:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/peers/all:
get:
tags:
- peers
summary: Peer list
description: >-
Get a list of all ever known not banned peers with a publicly available
declared address
operationId: getPeers
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
required:
- address
- lastSeen
type: object
properties:
address:
type: string
lastSeen:
type: integer
format: int64
/peers/connected:
get:
tags:
- peers
summary: Connected peers list
description: Get a list of all peers currently connected to the node
operationId: getConnectedPeers
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- peers
type: object
properties:
peers:
type: array
items:
required:
- address
- applicationName
- applicationVersion
- declaredAddress
- peerName
- peerNonce
type: object
properties:
address:
type: string
declaredAddress:
type: string
peerName:
type: string
peerNonce:
type: integer
format: int64
applicationName:
type: string
applicationVersion:
type: string
/peers/blacklisted:
get:
tags:
- peers
summary: Ban list
description: Get a list of all currently banned peers of the node
operationId: getBannedPeers
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
required:
- hostname
- reason
- timestamp
type: object
properties:
hostname:
type: string
timestamp:
type: integer
format: int64
reason:
type: string
/peers/suspended:
get:
tags:
- peers
summary: Suspended peers list
description: Suspended peers list
operationId: getSuspendedPeers
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
required:
- hostname
- reason
- timestamp
type: object
properties:
hostname:
type: string
timestamp:
type: integer
format: int64
reason:
type: string
/blockchain/rewards:
get:
tags:
- blockchain
summary: Current reward status
description: Get current status of block reward
operationId: getRewardStatus
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/RewardStatus'
'/blockchain/rewards/{height}':
get:
tags:
- blockchain
summary: Reward status
description: Get status of block reward at height
operationId: getRewardStatusAtHeight
parameters:
- name: height
in: path
description: Target block height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/RewardStatus'
/transactions/status:
get:
tags:
- transactions
summary: Transaction statuses
description: >-
Get transaction statuses by their ID. For dozens of transactions, better
use the POST method.
Transactions in the response are in the same
order as in the request.
operationId: getTxStatuses
parameters:
- name: id
in: query
required: true
style: form
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/TransactionId'
minItems: 1
maxItems: 42
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionStatus'
post:
tags:
- transactions
summary: Transaction statuses
description: >-
Get transaction statuses by their ID. Max number of transactions is set
by `waves.rest-api.transactions-by-address-limit`, 1000 by
default.
Transactions in the response are in the same order as in the
request.
operationId: getTxStatusesViaPost
requestBody:
content:
application/json:
schema:
properties:
ids:
type: array
items:
$ref: '#/components/schemas/TransactionId'
minItems: 1
maxItems: 1000
application/x-www-form-urlencoded:
schema:
type: object
properties:
id:
type: array
items:
$ref: '#/components/schemas/TransactionId'
encoding:
id:
style: form
explode: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TransactionStatus'
x-codegen-request-body-name: ids
'/transactions/info/{id}':
get:
tags:
- transactions
summary: Transaction info
description: Get a transaction by its ID
operationId: getTxById
parameters:
- $ref: '#/components/parameters/txId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
/transactions/info:
get:
tags:
- transactions
summary: Transaction info
description: Get transactions by IDs
operationId: getMultipleTxs
parameters:
- name: id
in: query
description: Transaction IDs base58 encoded
required: true
style: form
explode: true
schema:
type: array
items:
$ref: '#/components/parameters/txId'
minItems: 1
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Transaction'
/transactions/sign:
post:
tags:
- transactions
summary: Sign transaction on behalf of wallet account
description: >-
Sign a transaction with the private key corresponding to the `sender`.
Sender must exist in the [node's
wallet](https://docs.waves.tech/en/waves-node/how-to-work-with-node-wallet)
operationId: signTx
requestBody:
description: >-
Transaction [data in
JSON](https://docs.waves.tech/en/blockchain/transaction/#json-representation)
including
[`type`](https://docs.waves.tech/en/blockchain/transaction-type/) and
`sender`. If `timestamp` is omitted, current node's time is used.
`senderPublicKey` is ignored.
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
x-codegen-request-body-name: json
/transactions/unconfirmed:
get:
tags:
- transactions
summary: Unconfirmed transactions
description: Get a list of transactions in node's UTX pool
operationId: getUnconfirmedTxs
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Transaction'
'/transactions/address/{address}/limit/{limit}':
get:
tags:
- transactions
summary: List of transactions by address
description: >-
Get a list of the latest transactions involving a given address. Max
number of transactions is set by
`waves.rest-api.transactions-by-address-limit`, 1000 by default. For
pagination, use the field {after}
operationId: getTxsByAddress
parameters:
- $ref: '#/components/parameters/address'
- name: limit
in: path
description: Number of transactions to be returned
required: true
schema:
type: integer
- name: after
in: query
description: ID of the transaction to paginate after
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Transaction'
/transactions/unconfirmed/size:
get:
tags:
- transactions
summary: Number of unconfirmed transactions
description: Get the number of transactions in the UTX pool
operationId: getUtxPoolSize
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- size
type: object
properties:
size:
type: integer
format: int32
'/transactions/unconfirmed/info/{id}':
get:
tags:
- transactions
summary: Unconfirmed transaction info
description: Get an unconfirmed transaction by its ID
operationId: getUnconfirmedTxById
parameters:
- $ref: '#/components/parameters/txId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
/transactions/calculateFee:
post:
tags:
- transactions
summary: Calculate transaction fee
description: Get the minimum fee for a given transaction
operationId: calculateTxFee
requestBody:
description: >-
Transaction [data in
JSON](https://docs.waves.tech/en/blockchain/transaction/#json-representation)
including
[`type`](https://docs.waves.tech/en/blockchain/transaction-type/) and
`senderPublicKey`. To calculate a sponsored fee, specify `feeAssetId`.
`fee` and `sender` are ignored.
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- feeAmount
- feeAssetId
type: object
properties:
feeAssetId:
type: string
feeAmount:
type: integer
format: int64
x-codegen-request-body-name: json
'/transactions/sign/{signerAddress}':
post:
tags:
- transactions
summary: Sign transaction on behalf of wallet account
description: >-
Sign a transaction with the private key corresponding to a given
address. The address must exist in the [node's
wallet](https://docs.waves.tech/en/waves-node/how-to-work-with-node-wallet)
operationId: signTxWithAddress
parameters:
- name: signerAddress
in: path
description: Wallet address base58 encoded
required: true
schema:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{35}$'
requestBody:
description: >-
Transaction [data in
JSON](https://docs.waves.tech/en/blockchain/transaction/#json-representation)
including
[`type`](https://docs.waves.tech/en/blockchain/transaction-type/) and
`sender`. If `timestamp` is omitted, current node's time is used.
`senderPublicKey` is ignored.
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
x-codegen-request-body-name: json
/transactions/broadcast:
post:
tags:
- transactions
summary: Broadcast transaction
description: Broadcast a signed transaction
operationId: broadcastSignedTx
requestBody:
description: >-
Transaction [data in
JSON](https://docs.waves.tech/en/blockchain/transaction/#json-representation)
including
[`type`](https://docs.waves.tech/en/blockchain/transaction-type/) and
`signature`/`proofs`
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
x-codegen-request-body-name: json
/transactions/merkleProof:
get:
tags:
- transactions
summary: Merkle proofs
description: >-
Get [merkle
proofs](https://docs.waves.tech/en/blockchain/block/merkle-root#proof-of-transaction-in-block)
for given transactions. For dozens of transactions, better use the POST
method
operationId: getMerkleProofs
parameters:
- name: id
in: query
description: Transaction ID
required: true
style: form
explode: true
schema:
type: array
items:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionMerkleProofs'
post:
tags:
- transactions
summary: Merkle proofs
description: >-
Get [merkle
proofs](https://docs.waves.tech/en/blockchain/block/merkle-root#proof-of-transaction-in-block)
for given transactions
operationId: getMerkleProofsViaPost
requestBody:
description: Transaction IDs
content:
application/json:
schema:
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
required: false
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TransactionMerkleProofs'
x-codegen-request-body-name: ids
'/utils/seed/{length}':
get:
tags:
- utils
summary: Seed of specified length
description: >-
Generate random seed of a given length in bytes. The returned value is
base58 encoded
operationId: generateSeedByLength
parameters:
- name: length
in: path
description: Seed length
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- seed
type: object
properties:
seed:
type: string
/utils/script/compile:
post:
tags:
- utils
summary: Compile
description: Compiles string code to base64 script representation
operationId: compileScript
requestBody:
description: Script code
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CompiledScript'
deprecated: true
x-codegen-request-body-name: code
/utils/time:
get:
tags:
- utils
summary: Time
description: Current Node time (UTC)
operationId: getTime
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- NTP
- system
type: object
properties:
system:
type: integer
format: int64
NTP:
type: integer
format: int64
/utils/script/decompile:
post:
tags:
- utils
summary: Decompile
description: Decompiles base64 script representation to string code
operationId: decompileScript
requestBody:
description: Script code
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- script
type: object
properties:
script:
type: string
x-codegen-request-body-name: code
/utils/script/compileCode:
post:
tags:
- utils
summary: Compile script
description: Compiles string code to base64 script representation
operationId: compileCode
requestBody:
content:
text/plain:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CompiledScript'
x-codegen-request-body-name: code
/utils/script/compileWithImports:
post:
tags:
- utils
summary: Compile script
description: Compiles string code with imports to base64 script representation
operationId: compileWithImports
requestBody:
description: Script code with imports
content:
application/json:
schema:
required:
- imports
- script
type: object
properties:
script:
type: string
imports:
type: object
additionalProperties:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/CompiledScript'
x-codegen-request-body-name: code
/utils/script/estimate:
post:
tags:
- utils
summary: Estimate
description: Estimates complexity of a given compiled code
operationId: estimateScript
requestBody:
description: Compiled code in base64 script representation
content:
text/plain:
schema:
type: string
format: byte
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- script
- scriptText
- complexity
- verifierComplexity
- callableComplexities
- extraFee
type: object
properties:
script:
type: string
format: byte
nullable: true
description: Compiled script in base64 script representation
scriptText:
type: string
nullable: true
description: Compiled script in text representation
complexity:
type: integer
format: int64
description: >-
The maximum of `callableComplexities` and
`verifierComplexity`
verifierComplexity:
type: integer
format: int64
description: >-
[Complexity](https://docs.waves.tech/en/ride/base-concepts/complexity)
of the account or asset script or the verifier function of
the dApp script
callableComplexities:
type: object
description: >-
Complexity of callable functions of the dApp script. Empty
for an account script or asset script
extraFee:
type: integer
format: int64
description: >-
Extra fee for transactions sending on behalf of the dApp
or smart account or transactions involving the asset
x-codegen-request-body-name: code
'/utils/script/evaluate/{address}':
post:
tags:
- utils
summary: Evaluate
description: >-
Evaluates the provided expression, taking into account the deployed dApp
contract
operationId: evaluateScript
parameters:
- name: address
in: path
description: Address of the deployed dApp contract
required: true
schema:
type: string
requestBody:
description: Expression to evaluate
content:
application/json:
schema:
type: object
properties:
expr:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
properties:
address:
type: string
expr:
type: string
result:
type: object
properties:
type:
type: string
value: {}
/utils/seed:
get:
tags:
- utils
summary: Seed
description: Generate random seed. The returned value is base58 encoded
operationId: generateSeed
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- seed
type: object
properties:
seed:
type: string
/utils/hash/secure:
post:
tags:
- utils
summary: Secure hash
description: >-
Calculate the
[Keccak-256](https://keccak.team/files/Keccak-submission-3.pdf) hash of
the
[BLAKE2b-256](https://en.wikipedia.org/wiki/BLAKE_%28hash_function%29)
hash of a given message
operationId: hashSecure
requestBody:
description: Message to hash
content:
text/plain:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/HashedMessage'
x-codegen-request-body-name: message
/utils/hash/fast:
post:
tags:
- utils
summary: Fast hash
description: >-
Calculate the
[BLAKE2b-256](https://en.wikipedia.org/wiki/BLAKE_%28hash_function%29)
hash of a given message
operationId: hashFast
requestBody:
description: Message to hash
content:
text/plain:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/HashedMessage'
x-codegen-request-body-name: message
/utils/transactionSerialize:
post:
tags:
- utils
summary: Serialize transaction
description: Serialize transaction
operationId: serializeTx
requestBody:
description: >-
Transaction [data in
JSON](https://docs.waves.tech/en/blockchain/transaction/#json-representation)
including
[`type`](https://docs.waves.tech/en/blockchain/transaction-type/)
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- bytes
type: object
properties:
bytes:
type: array
items:
type: number
x-codegen-request-body-name: json
/wallet/seed:
get:
tags:
- wallet
summary: Seed
description: Export wallet seed
operationId: getSeed
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- seed
type: object
properties:
seed:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/alias/by-alias/{alias}':
get:
tags:
- alias
summary: Address by alias
description: >-
Get an address associated with a given alias. Alias should be plain text
without an 'alias' prefix and chain ID.
operationId: getAddressByAlias
parameters:
- name: alias
in: path
description: Alias
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
type: object
properties:
address:
type: string
'/alias/by-address/{address}':
get:
tags:
- alias
summary: Aliases by address
description: Get a list of aliases associated with a given address
operationId: getAliasesByAddress
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: Aliases
content:
application/json:
schema:
uniqueItems: true
type: array
items:
type: string
'/assets/balance/{address}':
get:
tags:
- assets
summary: Account balances in all assets
description: >-
Get account balances in all assets (excluding WAVES and NFTs) at a given
address
operationId: getAllAssetBalancesByAddress
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- balances
type: object
properties:
address:
type: string
balances:
type: array
items:
required:
- assetId
- balance
- issueTransaction
- minSponsoredAssetFee
- quantity
- reissuable
- sponsorBalance
type: object
properties:
assetId:
type: string
description: Asset ID base58 encoded
balance:
type: integer
format: int64
description: Account balance in the asset
reissuable:
type: boolean
description: Indicates if the asset is reissuable
minSponsoredAssetFee:
type: integer
format: int64
nullable: true
description: >-
For [sponsored
asset](https://docs.waves.tech/en/blockchain/waves-protocol/sponsored-fee)
only: the equivalent of 0.001 WAVES
sponsorBalance:
type: integer
format: int64
nullable: true
description: >-
For [sponsored
asset](https://docs.waves.tech/en/blockchain/waves-protocol/sponsored-fee)
only: the sponsor balance in WAVES
quantity:
type: integer
format: int64
description: Total supply of the asset
issueTransaction:
$ref: '#/components/schemas/IssueTransaction'
'/assets/details/{assetId}':
get:
tags:
- assets
summary: Information about asset
description: >-
Get detailed information about a given asset. See [fields
descriptions](https://docs.waves.tech/en/blockchain/token/#custom-token-parameters)
operationId: getAssetDetails
parameters:
- $ref: '#/components/parameters/assetId'
- name: full
in: query
description: 'false'
schema:
type: boolean
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AssetDetails'
/assets/details:
get:
tags:
- assets
summary: Information about multiple assets
description: >-
Get detailed information about given assets. See [fields
descriptions](https://docs.waves.tech/en/blockchain/token/#custom-token-parameters)
operationId: getMultipleAssetDetails
parameters:
- name: id
in: query
description: Asset ID base58 encoded
required: true
style: form
explode: true
schema:
type: array
items:
type: string
- name: full
in: query
description: 'false'
schema:
type: boolean
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetDetails'
'/assets/balance/{address}/{assetId}':
get:
tags:
- assets
summary: Account balance in asset
description: >-
Get the account balance in a given asset. 0 for non-existent asset (use
[GET /assets/details/{assetId}](#/assets/getAssetDetails) to check if
the asset exists)
operationId: getAssetBalanceByAddress
parameters:
- $ref: '#/components/parameters/address'
- $ref: '#/components/parameters/assetId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- assetId
- balance
type: object
properties:
address:
type: string
assetId:
type: string
balance:
type: integer
format: int64
'/assets/{assetId}/distribution':
get:
tags:
- assets
summary: Asset balance distribution
description: Get asset balance distribution by addresses
operationId: getAssetDistributionOld
parameters:
- $ref: '#/components/parameters/assetId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AssetDistribution'
deprecated: true
'/assets/{assetId}/distribution/{height}/limit/{limit}':
get:
tags:
- assets
summary: Asset balance distribution at height
description: >-
Get asset balance distribution by addresses at a given height. Max
number of addresses is set by
`waves.rest-api.distribution-address-limit`, 1000 by default. For
pagination, use the field {after}
operationId: getAssetDistribution
parameters:
- $ref: '#/components/parameters/assetId'
- name: height
in: path
description: >-
For balance at height requests. Max number of blocks back from the
current height is set by `waves.db.max-rollback-depth`, 2000 by
default
required: true
schema:
type: integer
- name: limit
in: path
description: Number of addresses to be returned
required: true
schema:
type: integer
- name: after
in: query
description: Address to paginate after
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AssetDistribution'
'/assets/nft/{address}/limit/{limit}':
get:
tags:
- assets
summary: Account NFTs
description: >-
Get a list of [non-fungible
tokens](https://docs.waves.tech/en/blockchain/token/non-fungible-token)
at a given address. Max for 1000 tokens. For pagination, use the field
{after}. See [fields
descriptions](https://docs.waves.tech/en/blockchain/token/#custom-token-parameters).
Since
activation of [feature
#15](https://docs.waves.tech/en/waves-node/features/) this method
returns only tokens that are issued as NFT (amount: 1, decimal places:
0, reissuable: false) after activation of feature #13. Before activation
of feature #15 the method returned all the assets that are issued as
NFT.
operationId: getNfts
parameters:
- $ref: '#/components/parameters/address'
- name: limit
in: path
description: Number of tokens to be returned
required: true
schema:
type: integer
- name: after
in: query
description: ID of the token to paginate after
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetDetails'
'/leasing/active/{address}':
get:
tags:
- leasing
summary: Active leases by address
description: Get all active leases involving a given address
operationId: getActiveLeases
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: Lease info
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LeaseInfo'
'/leasing/info/{id}':
get:
tags:
- leasing
summary: Lease info
description: Get lease info.
operationId: lease_info_get
parameters:
- name: id
in: path
description: Lease ID base58 encoded
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/LeaseInfo'
/leasing/info:
get:
tags:
- leasing
summary: Lease transactions
description: Get lease transactions info.
operationId: lease_infos_get
parameters:
- name: id
in: query
description: Transaction IDs base58 encoded
required: true
style: form
explode: true
schema:
type: array
items:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{32,44}$'
minItems: 1
maxItems: 1000
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LeaseInfo'
post:
tags:
- leasing
summary: Lease transactions
description: Get lease transactions info.
operationId: lease_infos_post
requestBody:
content:
application/json:
schema:
properties:
ids:
type: array
description: Lease IDs base58 encoded
items:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{32,44}$'
minItems: 1
maxItems: 1000
application/x-www-form-urlencoded:
schema:
type: object
properties:
id:
type: array
description: Lease IDs base58 encoded
items:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{32,44}$'
encoding:
id:
style: form
explode: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LeaseInfo'
x-codegen-request-body-name: ids
/activation/status:
get:
tags:
- activation
summary: Feature activation status
description: >-
Activation statuses of [blockchain
features](https://docs.waves.tech/en/waves-node/features/)
operationId: getFeatureStatuses
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- features
- height
- nextCheck
- votingInterval
- votingThreshold
type: object
properties:
height:
$ref: '#/components/schemas/Height'
description: Current blockchain height on the node
votingInterval:
type: integer
format: int32
description: Voting period length in blocks
votingThreshold:
type: integer
format: int32
description: Number of blocks that support a feature to approve it
nextCheck:
type: integer
format: int32
description: Next height to calculate feature statuses
features:
type: array
items:
required:
- blockchainStatus
- description
- id
- nodeStatus
type: object
properties:
id:
type: integer
format: int32
description: Feature ID
description:
type: string
blockchainStatus:
type: string
enum:
- VOTING
- APPROVED
- ACTIVATED
description: Feature status
nodeStatus:
type: string
enum:
- NOT_IMPLEMENTED
- IMPLEMENTED
- VOTED
description: Support for the feature on the node
activationHeight:
$ref: '#/components/schemas/Height'
supportingBlocks:
type: integer
format: int32
description: Number of blocks that support for the feature
/debug/print:
post:
tags:
- debug
summary: Print
description: 'Prints a string at DEBUG level, strips to 100 chars'
operationId: print
requestBody:
description: JSON with data
content:
application/json:
schema:
required:
- message
type: object
properties:
message:
type: string
required: true
responses:
'200':
description: Success
content: {}
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
x-codegen-request-body-name: body
/debug/state:
get:
tags:
- debug
summary: Regular address balance
description: Regular address balance at the current height
operationId: getWavesDistribution
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
description: map of address <-> balance
example:
addr1: 0
addr2: 100
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/debug/info:
get:
tags:
- debug
summary: State
description: All info you need to debug
operationId: getDebugInfo
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- extensionLoaderState
- historyReplierCacheSizes
- microBlockSynchronizerCacheSizes
- minerState
- scoreObserverStats
- stateHeight
type: object
properties:
stateHeight:
$ref: '#/components/schemas/Height'
extensionLoaderState:
type: string
historyReplierCacheSizes:
required:
- awaiting
- microBlockOwners
- nextInvs
- successfullyReceived
type: object
properties:
microBlockOwners:
type: integer
format: int64
nextInvs:
type: integer
format: int64
awaiting:
type: integer
format: int64
successfullyReceived:
type: integer
format: int64
microBlockSynchronizerCacheSizes:
required:
- awaiting
- microBlockOwners
- nextInvs
- successfullyReceived
type: object
properties:
microBlockOwners:
type: integer
format: int64
nextInvs:
type: integer
format: int64
awaiting:
type: integer
format: int64
successfullyReceived:
type: integer
format: int64
scoreObserverStats:
required:
- currentBestChannel
- localScore
- scoresCacheSize
type: object
properties:
localScore:
type: integer
format: int64
currentBestChannel:
type: string
scoresCacheSize:
type: integer
format: int64
minerState:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/debug/stateHash/{height}':
get:
tags:
- debug
summary: State hash
description: >-
Get state hash at height. Available only if node configuration contains
`waves.db.store-state-hashes = true` option
operationId: getStateHash
parameters:
- name: height
in: path
description: Target block height
required: true
schema:
type: integer
responses:
'200':
description: State hash
content:
application/json:
schema:
type: object
properties:
blockId:
type: string
wavesBalanceHash:
type: string
assetsBalanceHash:
type: string
dataEntryHash:
type: string
accountScriptHash:
type: string
assetScriptHash:
type: string
leaseBalanceHash:
type: string
leaseStatusHash:
type: string
sponsorshipHash:
type: string
aliasHash:
type: string
stateHash:
type: string
/debug/blacklist:
post:
tags:
- debug
summary: Ban peer
description: >-
Move a given peer to the ban list for the time specified in
`waves.network.black-list-residence-time`, 15 min by default. The
connection to the peer is immediately closed (if it was open)
operationId: banPeer
requestBody:
description: IP address of node
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: Success
content: {}
'403':
$ref: '#/components/responses/ApiKeyNotValid'
'404':
description: There are no peer with such address
content: {}
security:
- APIKey: []
x-codegen-request-body-name: address
'/debug/portfolios/{address}':
get:
tags:
- debug
summary: Portfolio
description: >-
Get current portfolio considering pessimistic transactions in the UTX
pool
operationId: getPortfolios
parameters:
- $ref: '#/components/parameters/address'
- name: considerUnspent
in: query
description: Taking into account pessimistic transactions from UTX pool
schema:
type: boolean
default: true
responses:
'200':
description: Json portfolio
content:
application/json:
schema:
required:
- assets
- balance
- lease
type: object
properties:
balance:
type: integer
format: int64
lease:
required:
- in
- out
type: object
properties:
in:
type: integer
format: int64
out:
type: integer
format: int64
assets:
type: object
additionalProperties:
type: integer
format: int64
description: map of assetId <-> balance
example:
assetId1: 0
assetId2: 100
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
'/debug/rollback-to/{id}':
delete:
tags:
- debug
summary: Block id
description: Rollback the state to the block with a given ID
operationId: rollbackToId
parameters:
- $ref: '#/components/parameters/blockId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- BlockId
type: object
properties:
BlockId:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/debug/validate:
post:
tags:
- debug
summary: Validate Transaction
description: >-
Validates a transaction and measures time spent in milliseconds. You
should use the JSON transaction format with proofs
operationId: validateTx
requestBody:
description: Signed transaction
content:
application/json:
schema:
type: string
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- trace
- valid
- validationTime
type: object
properties:
valid:
type: boolean
validationTime:
type: integer
format: int32
trace:
type: array
items:
type: string
x-codegen-request-body-name: transaction
'/debug/balances/history/{address}':
get:
tags:
- debug
summary: History of regular balance
description: >-
Get history of the regular balance at a given address. Max depth is set
by `waves.db.max-rollback-depth`, 2000 by default
operationId: getBalanceHistory
parameters:
- $ref: '#/components/parameters/address'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
required:
- balance
- height
type: object
properties:
height:
$ref: '#/components/schemas/Height'
balance:
type: integer
format: int64
'/debug/stateWaves/{height}':
get:
tags:
- debug
summary: Regular address balance at the height
description: >-
Regular address balance at the height. Max number of blocks back from
the current height is set by `waves.db.max-rollback-depth`, 2000 by
default
operationId: getWavesDistributionAtHeight
parameters:
- name: height
in: path
description: Height
required: true
schema:
type: integer
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int64
description: map of address <-> balance
example:
addr1: 0
addr2: 100
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/debug/rollback:
post:
tags:
- debug
summary: Rollback to height
description: >-
Removes all blocks after a given height. Max number of blocks back from
the current height is set by `waves.db.max-rollback-depth`, 2000 by
default
operationId: rollbackToHeight
requestBody:
description: JSON with data
content:
application/json:
schema:
required:
- returnTransactionsToUtx
- rollbackTo
type: object
properties:
rollbackTo:
type: integer
format: int32
returnTransactionsToUtx:
type: boolean
required: true
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- BlockId
type: object
properties:
BlockId:
type: string
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
x-codegen-request-body-name: body
/debug/minerInfo:
get:
tags:
- debug
summary: State
description: All miner info you need to debug
operationId: getGeneratingInfo
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- address
- miningBalance
- timestamp
type: object
properties:
address:
type: string
miningBalance:
type: integer
format: int64
timestamp:
type: integer
format: int64
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/debug/configInfo:
get:
tags:
- debug
summary: Config
description: Currently running node config
operationId: getConfig
parameters:
- name: full
in: query
description: Exposes full typesafe config
schema:
type: boolean
default: false
responses:
'200':
description: Json config
content: {}
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/node/stop:
post:
tags:
- node
summary: Stop
description: Stop the node
operationId: stopNode
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- stopped
type: object
properties:
stopped:
type: boolean
'403':
$ref: '#/components/responses/ApiKeyNotValid'
security:
- APIKey: []
/node/status:
get:
tags:
- node
summary: Status
description: Get status of the running core
operationId: getNodeStatus
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- blockchainHeight
- stateHeight
- updatedDate
- updatedTimestamp
type: object
properties:
blockchainHeight:
$ref: '#/components/schemas/Height'
stateHeight:
$ref: '#/components/schemas/Height'
updatedTimestamp:
$ref: '#/components/schemas/Timestamp'
updatedDate:
type: string
/node/version:
get:
tags:
- node
summary: Version
description: Get Waves node version
operationId: getNodeVersion
responses:
'200':
description: successful operation
content:
application/json:
schema:
required:
- version
type: object
properties:
version:
type: string
components:
schemas:
Timestamp:
type: integer
format: int64
minimum: 0
example: 1460678400000
Height:
type: integer
format: int32
minimum: 1
example: 1610000
Hash:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{32,44}$'
example: DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p
Signature:
type: string
Proof:
type: string
AssetId:
allOf:
- $ref: '#/components/schemas/Hash'
BlockId:
oneOf:
- $ref: '#/components/schemas/Signature'
- $ref: '#/components/schemas/Hash'
AssetName:
type: string
minLength: 4
maxLength: 16
AssetDescription:
type: string
maxLength: 1000
AssetDecimals:
type: integer
minimum: 0
maximum: 8
example: 2
LeaseId:
description: Lease ID
allOf:
- $ref: '#/components/schemas/Hash'
TransactionId:
allOf:
- $ref: '#/components/schemas/Hash'
Address:
type: string
pattern: '^[1-9A-HJ-NP-Za-km-z]{35}$'
example: 3P274YB5qseSE9DTTL3bpSjosZrYBPDpJ8k
Alias:
type: string
pattern: '^alias\:.:[\-\.0-9@_a-z]{4,30}$'
AddressOrAlias:
oneOf:
- $ref: '#/components/schemas/Address'
- $ref: '#/components/schemas/Alias'
PublicKey:
type: string
example: 2eEUvypDSivnzPiLrbYEW39SM8yMZ1aq4eJuiKfs4sEY
Amount:
type: integer
format: int64
minimum: 0
TransactionBase:
type: object
required: [id, timestamp, type, fee]
properties:
timestamp:
$ref: '#/components/schemas/Timestamp'
sender:
$ref: '#/components/schemas/Address'
readOnly: true
senderPublicKey:
$ref: '#/components/schemas/PublicKey'
id:
$ref: '#/components/schemas/TransactionId'
readOnly: true
applicationStatus:
$ref: '#/components/schemas/ApplicationStatus'
readOnly: true
version:
type: integer
minimum: 1
type:
type: integer
minimum: 1
proofs:
type: array
items:
$ref: '#/components/schemas/Proof'
signature:
$ref: '#/components/schemas/Signature'
fee:
$ref: '#/components/schemas/Amount'
feeAssetId:
$ref: '#/components/schemas/AssetId'
nullable: true
TransactionInfo:
allOf:
- $ref: '#/components/schemas/TransactionBase'
- type: object
required: [height, sender, senderPublicKey, proofs, signature]
ApiError:
required:
- error
- message
type: object
properties:
error:
type: integer
format: int32
message:
type: string
AssetDistribution:
required:
- hasNext
- last
- values
type: object
properties:
hasNext:
type: boolean
last:
$ref: '#/components/schemas/Address'
values:
additionalProperties:
type: integer
format: int64
description: map of assetId <-> balance
example:
2eEUvypDSivnzPiLrbYEW39SM8yMZ1aq4eJuiKfs4sEY: 15
3PPqZ623dAfbmxmnpTjwV6yD5GA5s3PJiUG: 25
AssetDetailsBase:
type: object
required:
- assetId
- name
- description
- quantity
- decimals
properties:
assetId:
$ref: '#/components/schemas/AssetId'
name:
$ref: '#/components/schemas/AssetName'
description:
$ref: '#/components/schemas/AssetDescription'
decimals:
$ref: '#/components/schemas/AssetDecimals'
AssetDetails:
allOf:
- $ref: '#/components/schemas/AssetDetailsBase'
- type: object
required:
- issueHeight
- issueTimestamp
- issuer
- minSponsoredAssetFee
- reissuable
- scriptDetails
- scripted
- originTransactionId
properties:
issueHeight:
$ref: '#/components/schemas/Height'
issueTimestamp:
$ref: '#/components/schemas/Timestamp'
issuer:
$ref: '#/components/schemas/Address'
issuerPublicKey:
$ref: '#/components/schemas/PublicKey'
reissuable:
type: boolean
scripted:
type: boolean
minSponsoredAssetFee:
type: integer
format: int64
originTransactionId:
type: string
scriptDetails:
type: object
required:
- script
- scriptComplexity
- scriptText
properties:
scriptComplexity:
type: integer
format: int32
script:
type: string
format: byte
scriptText:
type: string
Balance:
required:
- address
- balance
- confirmations
type: object
properties:
address:
type: string
confirmations:
type: integer
format: int32
balance:
type: integer
format: int64
BlockHeader:
required:
- blocksize
- generator
- generatorPublicKey
- height
- nxt-consensus
- reference
- signature
- timestamp
- totalFee
- transactionCount
- version
- VRF
- transactionsRoot
type: object
properties:
timestamp:
type: integer
format: int64
version:
type: integer
format: int32
height:
$ref: '#/components/schemas/Height'
totalFee:
type: integer
format: int64
reference:
type: string
generator:
$ref: '#/components/schemas/Address'
generatorPublicKey:
$ref: '#/components/schemas/PublicKey'
signature:
type: string
id:
type: string
nxt-consensus:
required:
- base-target
- generation-signature
type: object
properties:
base-target:
type: integer
format: int64
generation-signature:
type: string
blocksize:
type: integer
format: int32
transactionCount:
type: integer
format: int32
features:
type: array
items:
type: integer
format: int32
reward:
type: integer
format: int64
desiredReward:
type: integer
format: int64
VRF:
type: string
transactionsRoot:
type: string
Block:
allOf:
- $ref: '#/components/schemas/BlockHeader'
- type: object
required:
- transactions
properties:
transactions:
type: array
items:
$ref: '#/components/schemas/Transaction'
CompiledScript:
required:
- script
- complexity
- verifierComplexity
- callableComplexities
- extraFee
type: object
properties:
script:
type: string
format: byte
nullable: true
description: Compiled script in base64 representation
complexity:
type: integer
format: int64
description: The maximum of `callableComplexities` and `verifierComplexity`
verifierComplexity:
type: integer
format: int64
description: >-
[Complexity](https://docs.waves.tech/en/ride/base-concepts/complexity)
of an account or asset script or the verifier function of the dApp
script
callableComplexities:
type: object
description: >-
Complexity of callable functions of the dApp script. Empty for an
account script or asset script
extraFee:
type: integer
format: int64
description: >-
Extra fee for transactions sending on behalf of the dApp or smart
account or transactions involving the asset
ScriptMeta:
required:
- callableFuncTypes
- version
type: object
properties:
version:
type: string
isArrayArguments:
type: boolean
callableFuncTypes:
type: object
additionalProperties:
type: array
items:
required:
- name
- type
type: object
properties:
name:
type: string
type:
type: string
BinaryEntry:
required:
- key
- type
- value
type: object
properties:
key:
type: string
type:
type: string
enum:
- binary
value:
type: string
format: byte
BooleanEntry:
required:
- key
- type
- value
type: object
properties:
key:
type: string
type:
type: string
enum:
- boolean
value:
type: boolean
IntegerEntry:
required:
- key
- type
- value
type: object
properties:
key:
type: string
type:
type: string
enum:
- integer
value:
type: integer
format: int64
StringEntry:
required:
- key
- type
- value
type: object
properties:
key:
type: string
type:
type: string
enum:
- string
value:
type: string
DataEntry:
oneOf:
- $ref: '#/components/schemas/BinaryEntry'
- $ref: '#/components/schemas/BooleanEntry'
- $ref: '#/components/schemas/IntegerEntry'
- $ref: '#/components/schemas/StringEntry'
discriminator:
propertyName: type
mapping:
binary: '#/components/schemas/BinaryEntry'
boolean: '#/components/schemas/BooleanEntry'
integer: '#/components/schemas/IntegerEntry'
string: '#/components/schemas/StringEntry'
DeleteEntry:
required:
- key
- value
type: object
properties:
key:
type: string
value:
nullable: true
description: null for entry deletion
HashedMessage:
required:
- hash
- message
type: object
properties:
message:
type: string
hash:
$ref: '#/components/schemas/Hash'
Order:
type: object
properties:
version:
type: integer
format: int32
id:
type: string
sender:
$ref: '#/components/schemas/Address'
readOnly: true
senderPublicKey:
$ref: '#/components/schemas/PublicKey'
matcherPublicKey:
$ref: '#/components/schemas/PublicKey'
assetPair:
type: object
properties:
amountAsset:
type: string
nullable: true
priceAsset:
type: string
nullable: true
orderType:
type: string
enum:
- buy
- sell
amount:
$ref: '#/components/schemas/Amount'
price:
$ref: '#/components/schemas/Amount'
timestamp:
$ref: '#/components/schemas/Timestamp'
expiration:
$ref: '#/components/schemas/Timestamp'
matcherFee:
$ref: '#/components/schemas/Amount'
signature:
$ref: '#/components/schemas/Signature'
proofs:
type: array
items:
$ref: '#/components/schemas/Signature'
matcherFeeAssetId:
$ref: '#/components/schemas/AssetId'
RewardStatus:
required:
- currentReward
- height
- minIncrement
- nextCheck
- term
- totalWavesAmount
- votes
- votingInterval
- votingIntervalStart
- votingThreshold
type: object
properties:
height:
$ref: '#/components/schemas/Height'
totalWavesAmount:
$ref: '#/components/schemas/Amount'
currentReward:
$ref: '#/components/schemas/Amount'
minIncrement:
$ref: '#/components/schemas/Amount'
term:
type: integer
format: int32
nextCheck:
$ref: '#/components/schemas/Height'
votingIntervalStart:
$ref: '#/components/schemas/Height'
votingInterval:
type: integer
format: int32
votingThreshold:
type: integer
format: int32
votes:
type: object
required: [decrease, increase]
properties:
increase:
type: integer
format: int32
decrease:
type: integer
format: int32
Signed:
type: object
properties:
message:
type: string
description: plain text
publicKey:
$ref: '#/components/schemas/PublicKey'
signature:
$ref: '#/components/schemas/Signature'
NonGenesisTransaction:
required: [sender, senderPublicKey, applicationStatus, version, proofs, signature, feeAssetId]
allOf:
- $ref: '#/components/schemas/TransactionBase'
oneOf:
- $ref: '#/components/schemas/BurnTransaction'
- $ref: '#/components/schemas/CreateAliasTransaction'
- $ref: '#/components/schemas/DataTransaction'
- $ref: '#/components/schemas/ExchangeTransaction'
- $ref: '#/components/schemas/GenesisTransaction'
- $ref: '#/components/schemas/InvokeScriptTransaction'
- $ref: '#/components/schemas/IssueTransaction'
- $ref: '#/components/schemas/LeaseCancelTransaction'
- $ref: '#/components/schemas/LeaseTransaction'
- $ref: '#/components/schemas/MassTransferTransaction'
- $ref: '#/components/schemas/ReissueTransaction'
- $ref: '#/components/schemas/SetAssetScriptTransaction'
- $ref: '#/components/schemas/SetScriptTransaction'
- $ref: '#/components/schemas/SponsorFeeTransaction'
- $ref: '#/components/schemas/TransferTransaction'
- $ref: '#/components/schemas/UpdateAssetInfoTransaction'
Transaction:
oneOf:
- $ref: '#/components/schemas/GenesisTransaction'
- $ref: '#/components/schemas/NonGenesisTransaction'
ApplicationStatus:
type: string
enum:
- succeeded
- script_execution_failed
description: |
* `succeeded`: transaction is successful
* `script_execution_failed`: the dApp script or the asset script failed
See [Transaction Validation](https://docs.waves.tech/en/blockchain/transaction/transaction-validation) for details.
LeaseStatus:
type: string
enum:
- active
- canceled
- expired
description: |
* `active`: lease is active;
* `canceled`: lease was cancelled by transaction;
* `expired`: lease has expired
LeaseInfo:
required:
- id
- originTransactionId
- sender
- recipient
- amount
- height
- status
type: object
properties:
id:
$ref: '#/components/schemas/LeaseId'
originTransactionId:
$ref: '#/components/schemas/TransactionId'
sender:
$ref: '#/components/schemas/Address'
recipient:
$ref: '#/components/schemas/Address'
description: Lease recipient id
amount:
type: integer
format: int32
description: Leased Waves amount
height:
$ref: '#/components/schemas/Height'
description: >-
The sequential number of the block that contains the lease
transaction
status:
$ref: '#/components/schemas/LeaseStatus'
description: >-
active: lease is active; canceled: lease was cancelled by
transaction; expired: lease has expired
cancelHeight:
$ref: '#/components/schemas/Height'
description: >-
The sequential number of the block that contains the lease cancel
transaction
cancelTransactionId:
$ref: '#/components/schemas/TransactionId'
description: Lease cancel/invoke with cancellation transaction ID
TransactionStatus:
type: object
properties:
id:
$ref: '#/components/schemas/TransactionId'
status:
type: string
enum:
- confirmed
- unconfirmed
- not_found
description: |
* `not_found`: transaction is not found
* `unconfirmed`: transaction is in the UTX pool
* `confirmed`: transaction is added to the block or microblock
height:
$ref: '#/components/schemas/Height'
description: The sequential number of the block that contains the transaction
confirmations:
type: integer
format: int32
description: >-
Number of blocks added on top of the one that contains the
transaction
applicationStatus:
$ref: '#/components/schemas/ApplicationStatus'
TransactionMerkleProofs:
required:
- id
- merkleProof
- transactionIndex
type: object
properties:
id:
$ref: '#/components/schemas/TransactionId'
transactionIndex:
type: integer
format: int32
description: Sequential number of the transaction in the block
merkleProof:
type: array
description: 'Array of sibling hashes of the Merkle tree, bottom-to-top'
items:
$ref: '#/components/schemas/Hash'
BurnTransaction:
type: object
required: [assetId, amount]
properties:
assetId:
$ref: '#/components/schemas/AssetId'
amount:
$ref: '#/components/schemas/Amount'
CreateAliasTransaction:
type: object
required: [alias]
properties:
alias:
type: string
pattern: '^[\-\.0-9@_a-z]{4,30}$'
DataTransaction:
type: object
required: [data]
properties:
data:
type: array
items:
oneOf:
- $ref: '#/components/schemas/DataEntry'
- $ref: '#/components/schemas/DeleteEntry'
ExchangeTransaction:
type: object
required:
- order1
- order2
- amount
- price
- buyMatcherFee
- sellMatcherFee
properties:
order1:
$ref: '#/components/schemas/Order'
order2:
$ref: '#/components/schemas/Order'
amount:
$ref: '#/components/schemas/Amount'
price:
$ref: '#/components/schemas/Amount'
buyMatcherFee:
$ref: '#/components/schemas/Amount'
sellMatcherFee:
$ref: '#/components/schemas/Amount'
GenesisTransaction:
type: object
required:
- id
- fee
- timestamp
- signature
- recipient
- amount
properties:
id:
$ref: '#/components/schemas/Signature'
signature:
$ref: '#/components/schemas/Signature'
fee:
type: integer
format: int64
minimum: 0
maximum: 0
timestamp:
$ref: '#/components/schemas/Timestamp'
recipient:
$ref: '#/components/schemas/Address'
amount:
$ref: '#/components/schemas/Amount'
InvokeScriptTransaction:
type: object
required:
- dApp
- payment
- call
- stateChanges
properties:
dApp:
$ref: '#/components/schemas/AddressOrAlias'
payment:
type: array
items:
type: object
properties:
amount:
$ref: '#/components/schemas/Amount'
assetId:
$ref: '#/components/schemas/AssetId'
nullable: true
call:
type: object
properties:
function:
type: string
args:
type: array
items:
required:
- type
- value
type: object
properties:
type:
type: string
enum:
- binary
- boolean
- integer
- list
- string
value:
type: object
properties: {}
description: >-
binary/boolean/integer/string value or list of { type,
value } objects
stateChanges:
$ref: '#/components/schemas/StateChanges'
IssueTransaction:
type: object
required:
- assetId
- name
- quantity
- reissuable
- decimals
- description
- script
properties:
assetId:
$ref: '#/components/schemas/AssetId'
readOnly: true
name:
$ref: '#/components/schemas/AssetName'
quantity:
type: integer
format: int64
reissuable:
type: boolean
decimals:
$ref: '#/components/schemas/AssetDecimals'
description:
$ref: '#/components/schemas/AssetDescription'
script:
type: string
format: byte
LeaseCancelTransaction:
type: object
required:
- leaseId
- lease
properties:
leaseId:
$ref: '#/components/schemas/LeaseId'
lease:
$ref: '#/components/schemas/LeaseInfo'
LeaseTransaction:
type: object
required:
- amount
- recipient
properties:
amount:
$ref: '#/components/schemas/Amount'
recipient:
$ref: '#/components/schemas/AddressOrAlias'
MassTransferTransaction:
type: object
required:
- assetId
- attachment
- transfersCount
- totalAmount
- transfers
properties:
assetId:
type: string
nullable: true
attachment:
type: string
transferCount:
type: integer
format: int32
readOnly: true
totalAmount:
$ref: '#/components/schemas/Amount'
readOnly: true
transfers:
type: array
items:
type: object
properties:
recipient:
$ref: '#/components/schemas/AddressOrAlias'
amount:
$ref: '#/components/schemas/Amount'
ReissueTransaction:
type: object
required:
- assetId
- quantity
- reissuable
properties:
assetId:
$ref: '#/components/schemas/AssetId'
quantity:
$ref: '#/components/schemas/Amount'
reissuable:
type: boolean
SetAssetScriptTransaction:
type: object
required:
- assetId
- script
properties:
assetId:
$ref: '#/components/schemas/AssetId'
script:
type: string
format: byte
SetScriptTransaction:
type: object
required:
- script
properties:
script:
type: string
format: byte
SponsorFeeTransaction:
type: object
required:
- assetId
- minSponsoredAssetFee
properties:
assetId:
$ref: '#/components/schemas/AssetId'
minSponsoredAssetFee:
type: integer
format: int64
minimum: 1
TransferTransaction:
type: object
required:
- recipient
- assetId
- amount
- attachment
- feeAsset
properties:
recipient:
$ref: '#/components/schemas/AddressOrAlias'
assetId:
$ref: '#/components/schemas/AssetId'
nullable: true
feeAsset:
$ref: '#/components/schemas/AssetId'
nullable: true
amount:
$ref: '#/components/schemas/Amount'
attachment:
type: string
UpdateAssetInfoTransaction:
type: object
required:
- assetId
- name
- description
properties:
assetId:
$ref: '#/components/schemas/AssetId'
name:
$ref: '#/components/schemas/AssetName'
description:
$ref: '#/components/schemas/AssetDescription'
DataAction:
oneOf:
- $ref: '#/components/schemas/DataEntry'
- $ref: '#/components/schemas/DeleteEntry'
TransferAction:
type: object
required:
- address
- asset
- amount
properties:
address:
$ref: '#/components/schemas/Address'
asset:
$ref: '#/components/schemas/AssetId'
nullable: true
amount:
$ref: '#/components/schemas/Amount'
IssueAction:
allOf:
- $ref: '#/components/schemas/AssetDetailsBase'
- type: object
required:
- isReissuable
- compiledScript
properties:
isReissuable:
type: boolean
compiledScript:
type: string
ReissueAction:
type: object
required:
- assetId
- isReissuable
- quantity
properties:
assetId:
$ref: '#/components/schemas/AssetId'
isReissuable:
type: boolean
quantity:
type: integer
format: int64
BurnAction:
type: object
required:
- assetId
- quantity
properties: {}
SponsorFeeAction:
type: object
required:
- assetId
- minSponsoredAssetFee
properties: {}
LeaseAction:
allOf:
- $ref: '#/components/schemas/LeaseInfo'
LeaseCancelAction:
type: object
required:
- recipient
properties: {}
InvokeAction:
type: object
required:
- dApp
- payment
- call
- stateCahnges
properties:
error:
type: object
stateChanges:
$ref: '#/components/schemas/StateChanges'
StateChanges:
type: object
required:
- data
- transfers
- issues
- reissues
- burns
- sponsorFees
- leases
- leaseCancel
- invokes
properties:
data:
type: array
items:
$ref: '#/components/schemas/DataAction'
transfers:
type: array
items:
$ref: '#/components/schemas/TransferAction'
issues:
type: array
items:
$ref: '#/components/schemas/IssueAction'
reissues:
type: array
items:
$ref: '#/components/schemas/ReissueAction'
burns:
type: array
items:
$ref: '#/components/schemas/BurnAction'
sponsorFees:
type: array
items:
$ref: '#/components/schemas/SponsorFeeAction'
leases:
type: array
items:
$ref: '#/components/schemas/LeaseAction'
leaseCancel:
type: array
items:
$ref: '#/components/schemas/LeaseCancelAction'
invokes:
type: array
items:
$ref: '#/components/schemas/InvokeAction'
responses:
Height:
description: Block height
content:
application/json:
schema:
type: object
required: [height]
properties:
height:
$ref: '#/components/schemas/Height'
ApiKeyNotValid:
description: Provided API key is not correct
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
error: 2
message: Provided API key is not correct
BadRequest:
description: The request cannot be fulfilled due to bad syntax
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
address:
name: address
in: path
description: Address base58 encoded
required: true
schema:
$ref: '#/components/schemas/Address'
assetId:
name: assetId
in: path
description: Asset ID base58 encoded
required: true
schema:
$ref: '#/components/schemas/AssetId'
blockId:
name: id
in: path
description: Block ID base58 encoded
required: true
schema:
$ref: '#/components/schemas/BlockId'
txId:
name: id
in: path
description: Transaction ID base58 encoded
required: true
schema:
$ref: '#/components/schemas/TransactionId'
securitySchemes:
APIKey:
type: apiKey
name: X-API-Key
in: header