Newer
Older
title: Substrate API Sidecar
description: Substrate API Sidecar is a REST service that makes it easy to
interact with blockchain nodes built using Substrate's FRAME framework.
contact:
url: https://github.com/paritytech/substrate-api-sidecar
name: GPL-3.0-or-later
url: https://github.com/paritytech/substrate-api-sidecar/blob/master/LICENSE
tags:
- name: accounts
- name: blocks
- name: node
description: node connected to sidecar
- name: pallets
description: pallets employed in the runtime
- name: runtime
- name: transaction
/accounts/{accountId}/asset-balances:
get:
tags:
- accounts
summary: Get an array of asset-balances for an account.
description: Returns information about an account's asset-balances. This is
specific to the assets pallet for parachains. If no `assets` query parameter
is provided, all asset-balances for the given account will be returned.
operationId: getAssetBalances
parameters:
- name: accountId
in: path
description: SS58 address of the account.
required: true
schema:
type: string
format: SS58
- name: at
in: query
description: Block at which to query asset-balance info for the
specified account.
required: false
schema:
type: string
description: Block height (as a positive integer) or hash
(as a hex string).
format: unsignedInteger or $hex
- name: assets
in: query
description: An array of AssetId's to be queried. If not supplied, defaults to providing
all asset balances associated with the `accountId` will be returned. The array query param
format follows Express 4.x API. ex:`?assets[]=1&assets[]=2&assets[]=3`.
required: false
schema:
type: array
type: string
description: An array of assetId numbers represented as strings
format: Array of unsignedInteger's
responses:
description: successfull operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountAssetsBalances'
"400":
description: Invalid Address
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/asset-approvals:
get:
tags:
- accounts
summary: Get an asset approval for an account.
description: Returns information about an account's asset approval transaction.
It is required to pass in a delegate and an assetId as query parameters.
operationId: getAssetApprovals
parameters:
- name: accountId
in: path
description: SS58 address of the account.
required: true
schema:
type: string
format: SS58
- name: at
in: query
description: Block at which to query asset approval info for the
specified account.
required: false
schema:
type: string
description: Block height (as a non-negative integer) or hash
(as a hex string).
format: unsignedInteger or $hex
- name: assetId
in: query
description: The `assetId` associated with the asset-approval.
required: true
schema:
type: string
description: An assetId represented as an unsignedInteger.
format: unsignedInteger
- name: delegate
in: query
description: The delegate's `accountId` associated with an asset-approval.
required: true
schema:
type: string
format: SS58
responses:
description: successfull operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountAssetsApproval'
"400":
description: Invalid Address
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/balance-info:
get:
tags:
- accounts
summary: Get balance information for an account.
description: Returns information about an account's balance.
Replaces `/balance/{address}` from versions < v1.0.0.
operationId: getAccountBalanceInfo
parameters:
- name: accountId
in: path
description: SS58 address of the account.
required: true
schema:
type: string
- name: at
in: query
description: Block at which to query balance info for the
specified account.
required: false
schema:
type: string
description: Block height (as a non-negative integer) or hash
(as a hex string).
format: unsignedInteger or $hex
- name: token
in: query
description: 'Token to query the balance of. If not specified it will query
the chains native token (e.g. DOT for Polkadot). Note: this is only relevant
for chains that support multiple tokens through the ORML tokens pallet.'
required: false
schema:
type: string
description: Token symbol
- name: denominated
in: query
description: When set to `true` it will denominate any balance's given atomic value
using the chains given decimal value.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBalanceInfo'
"400":
description: Invalid Address
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
/accounts/{accountId}/convert:
get:
tags:
- accounts
summary: Convert a given AccountId to an SS58 address.
description: Returns the SS58 prefix, the network address format, the SS58 address, and the AccountId
that was given as input parameter, the scheme that was used and if it is a public key or not (boolean).
operationId: accountConvert
parameters:
- name: accountId
in: path
description: AccountId or Public Key (hex).
required: true
schema:
format: AccountId or Hex
type: string
- name: scheme
in: query
description: The cryptographic scheme to be used in order to convert the AccountId to
an SS58 address. It can take one of three values [sr25519, ed25519, ecdsa].
The default scheme that is used is `sr25519` (if it is not set in the query parameter).
required: false
schema:
type: string
format: string
default: 'sr25519'
- name: prefix
in: query
description: The address prefix which can be one of the values found in the SS58-registry.
required: false
schema:
type: string
format: number
default: 42
- name: publicKey
in: query
description: Defines if the given value in the path parameter is a Public Key (hex)
or not (hence AccountId).
required: false
schema:
type: string
format: boolean
default: true
responses:
"200":
description: successfully converted the AccountId and retrieved the address info.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountConvert'
"400":
description: Invalid AccountId
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: AccountId not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/staking-info:
get:
tags:
- staking
summary: Get staking information for a _Stash_ account.
description: Returns information about a _Stash_ account's staking activity.
Replaces `/staking/{address}` from versions < v1.0.0.
operationId: getStakingSummaryByAccountId
parameters:
- name: accountId
in: path
description: SS58 address of the account. Must be a _Stash_ account.
required: true
schema:
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
type: string
- name: at
in: query
description: Block at which to query the staking info for the
specified account.
required: false
schema:
type: string
description: Block identifier, as the block height or block hash.
format: unsignedInteger or $hex
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountStakingInfo'
"400":
description: invalid blockId supplied for at query param
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/staking-payouts:
get:
tags:
- staking
summary: Get payout information for a _Stash_ account.
description: Returns payout information for the last specified eras. If
specifying both the depth and era query params, this endpoint will
return information for (era - depth) through era. (i.e. if depth=5 and
era=20 information will be returned for eras 16 through 20). N.B. You
cannot query eras less then `current_era - HISTORY_DEPTH`. N.B. The
`nominator*` fields correspond to the address being queried, even if it
is a validator's _Stash_ address. This is because a validator is technically
nominating itself.
operationId: getStakingPayoutsByAccountId
parameters:
- name: accountId
in: path
description: SS58 address of the account. Must be a _Stash_ account.
required: true
schema:
type: string
- name: depth
in: query
description: The number of eras to query for payouts of. Must be less
than or equal to `HISTORY_DEPTH`. In cases where `era - (depth -1)` is
less than 0, the first era queried will be 0.
required: false
schema:
type: string
format: unsignedInteger
default: 1
- name: era
description: The era to query at.
required: false
schema:
type: string
format: unsignedInteger
default: '`active_era - 1`'
- name: unclaimedOnly
in: query
description: Only return unclaimed rewards.
required: false
schema:
type: string
format: boolean
default: true
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountStakingPayouts'
"400":
description: invalid blockId supplied for at query param
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/vesting-info:
get:
tags:
- accounts
summary: Get vesting information for an account.
description: Returns the vesting schedule for an account.
Replaces `/vesting/{address}` from versions < v1.0.0.
operationId: getVestingSummaryByAccountId
parameters:
- name: accountId
in: path
description: SS58 address of the account.
required: true
schema:
type: string
- name: at
in: query
description: Block at which to query the vesting info for the
specified account.
required: false
schema:
type: string
description: Block identifier, as the block height or block hash.
format: unsignedInteger or $hex
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AccountVestingInfo'
"400":
description: Invalid Address
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: account not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Dominique
committed
/accounts/{address}/validate:
get:
tags:
- accounts
summary: Validate a given address.
Dominique
committed
description: Returns whether the given address is valid ss58 format, the ss58 prefix if the address has one,
the network address format, and what the account ID is for this address.
operationId: getValidationByAccountId
Dominique
committed
- name: address
in: path
description: SS58 or Hex address of the account.
required: true
schema:
format: SS58 or Hex
description: successfully retrieved address info
content:
application/json:
schema:
$ref: '#/components/schemas/AccountValidation'
/blocks:
get:
tags:
- blocks
summary: Get a range of blocks by their height.
description: Given a range query parameter return an array of all the blocks within that range.
operationId: getBlock
parameters:
- name: range
in: query
description: A range of integers. There is a max limit of 500 blocks per request.
required: true
example: 0-499
schema:
type: string
Tarik Gul
committed
- name: eventDocs
in: query
description: When set to `true`, every event will have an extra `docs`
property with a string of the events documentation.
required: false
schema:
type: boolean
default: false
- name: extrinsicDocs
in: query
description: When set to `true`, every extrinsic will have an extra `docs`
property with a string of the extrinsics documentation.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Blocks'
"400":
description: invalid Block identifier supplied
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/blocks/{blockId}:
get:
tags:
- blocks
summary: Get a block by its height or hash.
description: Returns a single block. BlockId can either be a block hash or a
block height. Replaces `/block/{number}` from versions < v1.0.0.
operationId: getBlockById
parameters:
- name: blockId
in: path
description: Block identifier, as the block height or block hash.
required: true
schema:
pattern: 'a-km-zA-HJ-NP-Z1-9{8,64}'
type: string
- name: eventDocs
in: query
description: When set to `true`, every event will have an extra `docs`
property with a string of the events documentation.
required: false
schema:
type: boolean
default: false
- name: extrinsicDocs
in: query
description: When set to `true`, every extrinsic will have an extra `docs`
property with a string of the extrinsics documentation.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Block'
"400":
description: invalid Block identifier supplied
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
/blocks/{blockId}/header:
get:
tags:
- blocks
summary: Get a block's header by its height or hash.
description: Returns a single block's header. BlockId can either be a block hash or a
block height.
operationId: getBlockHeaderById
parameters:
- name: blockId
in: path
description: Block identifier, as the block height or block hash.
required: true
schema:
pattern: 'a-km-zA-HJ-NP-Z1-9{8,64}'
type: string
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BlockHeader'
"400":
description: invalid Block identifier supplied
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/blocks/{blockId}/extrinsics/{extrinsicIndex}:
get:
tags:
- blocks
summary: Get an extrinsic by its extrinsicIndex and block height or hash.
The pair blockId, extrinsicIndex is sometimes referred to as a Timepoint.
description: Returns a single extrinsic.
operationId: getExtrinsicByTimepoint
parameters:
- name: blockId
in: path
description: Block identifier, as the block height or block hash.
required: true
schema:
pattern: a-km-zA-HJ-NP-Z1-9{8,64}
type: string
- name: extrinsicIndex
in: path
description: The extrinsic's index within the block's body.
required: true
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
type: string
- name: eventDocs
in: query
description: When set to `true`, every event will have an extra `docs`
property with a string of the events documentation.
required: false
schema:
type: boolean
default: false
- name: extrinsicDocs
in: query
description: When set to `true`, every extrinsic will have an extra `docs`
property with a string of the extrinsics documentation.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ExtrinsicIndex'
"400":
description: Requested `extrinsicIndex` does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/blocks/head:
get:
tags:
- blocks
summary: Get the most recently finalized block.
description: Returns the most recently finalized block. Replaces `/block`
from versions < v1.0.0.
operationId: getHeadBlock
parameters:
- name: finalized
in: query
description: Boolean representing whether or not to get the finalized head.
If it is not set the value defaults to true. When set to false it will attempt
to get the newest known block, which may not be finalized.
required: false
schema:
type: boolean
default: true
- name: eventDocs
in: query
description: When set to `true`, every event will have an extra `docs`
property with a string of the events documentation.
required: false
schema:
type: boolean
default: false
- name: extrinsicDocs
in: query
description: When set to `true`, every extrinsic will have an extra `docs`
property with a string of the extrinsics documentation.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Block'
/blocks/head/header:
get:
tags:
- blocks
summary: Get information about the header of the most recent finalized block.
description: Returns the most recently finalized block's header.
operationId: getLatestBlockHeader
parameters:
- name: finalized
in: query
description: Boolean representing whether or not to get the finalized head.
If it is not set the value defaults to true. When set to false it will attempt
to get the newest known block, which may not be finalized.
required: false
schema:
type: boolean
default: true
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BlockHeader'
"400":
description: invalid Block identifier supplied
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
/contracts/ink/{address}/query:
post:
tags:
- contracts
summary: Query an !Ink contract with a given message (method).
description: Will return a valid or invalid result.
operationId: callContractQuery
requestBody:
$ref: '#/components/requestBodies/ContractMetadata'
parameters:
- name: address
in: path
description: SS58 or Hex address of the account associated with the contract.
required: true
schema:
pattern: a-km-zA-HJ-NP-Z1-9{8,64}
type: string
- name: method
in: query
description: The message or method used to query.
required: false
schema:
type: string
default: 'get'
- name: gasLimit
in: query
description: The gas limit to be used as an option for the queried message.
required: false
schema:
default: -1
type: number
- name: storageDepositLimit
in: query
description: The storage deposit limit to be used as an option for the queried message.
required: false
schema:
type: number
- name: args
in: query
description: Abi params used as args specified in the metadata to be passed into a query.
The format to use this query param is ?args[]=1&args[]=2&args[]=3.
required: false
schema:
type: array
items:
type: string
description: An array of Abi params.
responses:
"200":
description: succesful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContractsInkQuery'
"400":
description: Invalid Method
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/node/network:
get:
tags:
- node
summary: Get information about the Substrate node's activity in the peer-to-peer network.
description: Returns network related information of the node.
operationId: getNodeNetworking
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/NodeNetwork'
/node/transaction-pool:
get:
tags:
- node
summary: Get pending extrinsics from the Substrate node.
description: Returns the extrinsics that the node knows of that have not
been included in a block.
operationId: getNodeTransactionPool
- name: includeFee
in: query
description: Boolean representing whether or not to include tips, partialFee, and priority in each extrinsic.
required: false
schema:
type: boolean
default: false
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionPool'
/node/version:
get:
tags:
- node
summary: Get information about the Substrates node's implementation and versioning.
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
description: Returns versioning information of the node.
operationId: getNodeVersion
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/NodeVersion'
/transaction:
post:
tags:
- transaction
summary: Submit a transaction to the node's transaction pool.
description: Accepts a valid signed extrinsic. Replaces `/tx` from versions
< v1.0.0.
operationId: submitTransaction
requestBody:
$ref: '#/components/requestBodies/Transaction'
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionSuccess'
"400":
description: failed to parse or submit transaction
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionFailure'
/transaction/dry-run:
post:
tags:
- transaction
summary: Dry run an extrinsic.
description: Use the dryrun call to practice submission of a transaction.
operationId: dryrunTransaction
requestBody:
$ref: '#/components/requestBodies/Transaction'
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionDryRun'
"500":
description: failed to dry-run transaction
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionFailure'
/transaction/fee-estimate:
post:
tags:
- transaction
summary: Receive a fee estimate for a transaction.
description: >-
Send a serialized transaction and receive back a naive fee estimate.
Note: `partialFee` does not include any tips that you may add to increase
a transaction's priority. See the reference on `compute_fee`.
Replaces `/tx/fee-estimate` from versions < v1.0.0.
Substrate Reference:
- `RuntimeDispatchInfo`: https://crates.parity.io/pallet_transaction_payment_rpc_runtime_api/struct.RuntimeDispatchInfo.html
- `query_info`: https://crates.parity.io/pallet_transaction_payment/struct.Module.html#method.query_info
- `compute_fee`: https://crates.parity.io/pallet_transaction_payment/struct.Module.html#method.compute_fee
operationId: feeEstimateTransaction
requestBody:
$ref: '#/components/requestBodies/Transaction'
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionFeeEstimate'
"500":
description: fee estimation failure
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionFeeEstimateFailure'
/transaction/material:
get:
tags:
- transaction
summary: Get all the network information needed to construct a transaction offline.
description: Returns the material that is universal to constructing any
signed transaction offline. Replaces `/tx/artifacts` from versions < v1.0.0.
operationId: getTransactionMaterial
parameters:
- name: at
in: query
description: Block at which to retrieve the transaction construction
material.
required: false
schema:
type: string
description: Block identifier, as the block height or block hash.
format: unsignedInteger or $hex
- name: noMeta
in: query
schema:
type: boolean
description: DEPRECATED! This is no longer supported
- name: metadata
in: query
schema:
type: string
description: Specifies the format of the metadata to be returned. Accepted values are
'json', and 'scale'. 'json' being the decoded metadata, and 'scale' being the SCALE encoded metadata.
When `metadata` is not inputted, the `metadata` field will be absent.
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionMaterial'
"400":
description: invalid blockId supplied for at query param
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pallets/assets/{assetId}/asset-info:
get:
tags:
- pallets
summary: Get information and metadata associated with an asset.
description: Returns information associated with an asset which includes
operationId: getAssetById
parameters:
- name: assetId
in: path
required: true
schema:
type: string
format: unsignedInteger
- name: at
in: query
description: Block at which to retrieve the assetInfo.
required: false
schema:
type: string
description: Block identifier, as the block height or block hash.
format: unsignedInteger or $hex
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/PalletsAssetsInfo'
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/pallets/{palletId}/consts:
get:
tags:
- pallets
summary: Get a list of constants for a pallet.
description: Returns a list of const item metadata for constant items of the
specified palletId.
parameters:
- name: palletId
in: path
description: 'Name or index of the pallet to read constant metadata for. Note: the pallet name must match what is
specified in the runtime metadata.'
required: true
schema:
type: string
- name: onlyIds
in: query
description: Only return the names (IDs) of the const items instead of every constant's metadata.
required: false
schema:
type: boolean
- name: at
in: query
description: Block at which to retrieve a list of
the pallet's constant items.
required: false
schema:
type: string
description: Block identifier, as the block height or block hash.
format: unsignedInteger or $hex
responses:
"200":
description: successful operation
content:
application/json:
schema:
type: array
description: Pallet info and Array of constantItemIds.
items:
$ref: '#/components/schemas/PalletConstants'
"400":
description: invalid blockId supplied for at query param
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
"404":
description: could not find pallet with palletId
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pallets/{palletId}/consts/{constantItemId}:
get:
tags:
- pallets
summary: Get the value of a constant item.
description: Returns the value stored under the constantItemId.
parameters:
- name: palletId
in: path
description: 'Name or index of the pallet to read constant metadata for. Note: the pallet name must match what is
specified in the runtime metadata.'
required: true
schema:
type: string