openapi: 3.1.0 info: title: Polkadot REST Account EVM API description: High-performance Rust REST API for Substrate/Polkadot blockchain data. Drop-in replacement for substrate-api-sidecar. contact: url: https://github.com/paritytech/polkadot-rest-api license: name: GPL-3.0-or-later version: 0.1.3 servers: - url: http://localhost:8080/v1 description: Localhost tags: - name: EVM paths: /api/scan/evm/abi: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmAbiSearchParams' produces: - application/json responses: '200': description: OK schema: {} summary: ABI by method id or event topic tags: - EVM x-synonyms: - abi - method - id - event - topic - evm - scan - log - on-chain event - ethereum - smart contract - frontier /api/scan/evm/account/tokens: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EVMAccountTokensParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM account tokens tags: - EVM x-synonyms: - evm - account - tokens - scan - ethereum - smart contract - frontier - wallet - address - user /api/scan/evm/block: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EVMBlockParam' produces: - application/json responses: '200': description: OK schema: {} summary: Evm block by block number tags: - EVM x-synonyms: - evm - block - number - scan - ethereum - smart contract - frontier - block height - block number /api/scan/evm/blocks: post: consumes: - application/json description: Returns paginated EVM blocks. This API only supports networks with EVM pallet(frontier or revive). parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmBlocksParams' produces: - application/json responses: '200': description: OK schema: {} summary: List EVM blocks tags: - EVM x-synonyms: - evm - blocks - scan - ethereum - smart contract - frontier - block list - block heights /api/scan/evm/contract: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmContractParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM contract detail tags: - EVM x-synonyms: - evm - contract - scan - ethereum - smart contract - frontier - wasm contract - evm contract /api/scan/evm/contract/list: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmContractListParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM contract list tags: - EVM x-synonyms: - evm - contract - scan - ethereum - smart contract - frontier - wasm contract - evm contract /api/scan/evm/contract/solcs: post: consumes: - application/json description: This API only supports networks with EVM pallet(revive) produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/subscan_internal_plugin_share.J' - properties: data: items: type: string type: array type: object summary: Polkadot pvm resolc versions tags: - EVM x-synonyms: - polkadot - pvm - resolc - versions - evm - scan - contract - solcs - ethereum - smart contract - frontier - wasm contract - evm contract /api/scan/evm/erc721/collectible: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmErc1155CollectibleParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM erc721 collectible detail tags: - EVM x-synonyms: - evm - erc721 - collectible - scan - ethereum - smart contract - frontier - nft - non-fungible token /api/scan/evm/erc721/collectibles: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmNFT721CollectiblesParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM ERC721 collectibles tags: - EVM x-synonyms: - evm - erc721 - collectibles - scan - ethereum - smart contract - frontier - nft - collectible - non-fungible token /api/scan/evm/erc1155/collectible: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmErc1155CollectibleParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM erc1155 collectible detail tags: - EVM x-synonyms: - evm - erc1155 - collectible - scan - ethereum - smart contract - frontier - nft - multi token - multi-token - erc721 /api/scan/evm/erc1155/collectible/holders: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmErc1155HoldersParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM erc1155 token holders tags: - EVM x-synonyms: - evm - erc1155 - token - holders - scan - collectible - ethereum - smart contract - frontier - nft - multi token - multi-token - asset - coin /api/scan/evm/erc1155/collectibles: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmNFT1155CollectiblesParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM ERC1155 collectibles tags: - EVM x-synonyms: - evm - erc1155 - collectibles - scan - ethereum - smart contract - frontier - nft - multi token - multi-token - erc721 - collectible /api/scan/evm/etherscan: get: description: 'We provide a subset of Etherscan-like API for EVM-compatible chains. Please refer to the official Etherscan API documentation for details on parameters and responses. Official Etherscan API Documentation: https://docs.etherscan.io/api-endpoints Below are the API Endpoints we already support. - Account Module: balance, balancehistory, txlist, tokentx, tokennfttx, txlistinternal - Block Module: getblocknobytime - Contract Module: getabi, getsourcecode, getcontractcreation, verifysourcecode, checkverifystatus - Logs Module: getLogs - Transaction Module: getstatus, gettxreceiptstatus - Token Module: tokensupply, tokenbalance, tokenbalancehistory, tokensupplyhistory, topholders, tokenholderlist, tokenholdercount, tokeninfo, addresstokenbalance, addresstokennftbalance, addresstokennftinventory' responses: '200': description: OK schema: $ref: '#/definitions/internal_plugin_evm_http.EtherscanResponse' summary: Etherscan-like API tags: - EVM x-synonyms: - etherscan-like - evm - scan - etherscan - ethereum - smart contract - frontier /api/scan/evm/logs: post: consumes: - application/json description: 'EVM event Logs,returns the event logs from an address. The current maximum limit for the number of results returned through pagination is 10,000. If you require more, please adjust the block_range parameter. This API only supports networks with EVM pallet(frontier or revive)' parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmEventLogsParams' produces: - application/json responses: '200': description: OK schema: {} summary: EVM event Logs tags: - EVM x-synonyms: - evm - event - logs - scan - ethereum - smart contract - frontier - log - on-chain event /api/scan/evm/meta: post: description: This API only supports networks with EVM pallet(frontier or revive) produces: - application/json responses: '200': description: OK schema: {} summary: Evm meta tags: - EVM x-synonyms: - evm - meta - scan - ethereum - smart contract - frontier /api/scan/evm/token: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmTokenParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM erc20/erc721/erc1155 token tags: - EVM x-synonyms: - evm - erc20/erc721 - erc1155 - token - scan - ethereum - smart contract - frontier - nft - multi token - multi-token - asset - coin - erc721 /api/scan/evm/token/holders: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmTokenHoldersParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM token holders tags: - EVM x-synonyms: - evm - token - holders - scan - ethereum - smart contract - frontier - asset - coin - owners - token holders /api/scan/evm/token/transfer: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmTokenTransferParam' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/subscan_internal_plugin_share.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_plugin_evm_db.TokenTransferJson' type: array total: $ref: '#/definitions/subscan_internal_model.TransferHistoryTotal' type: object type: object summary: EVM token transfer tags: - EVM x-synonyms: - evm - token - transfer - scan - ethereum - smart contract - frontier - asset - coin - send - asset movement /api/scan/evm/tokens: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmTokensParam' produces: - application/json responses: '200': description: OK schema: {} summary: EVM erc20/erc721/erc1155 tokens tags: - EVM x-synonyms: - evm - erc20/erc721 - erc1155 - tokens - scan - ethereum - smart contract - frontier - nft - multi token - multi-token - erc721 - collectible /api/scan/evm/transaction: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EVMTransactionParam' produces: - application/json responses: '200': description: OK schema: $ref: '#/definitions/subscan_internal_plugin_share.J' summary: EVM transaction info tags: - EVM x-synonyms: - evm - transaction - scan - ethereum - smart contract - frontier - extrinsic - tx /api/scan/evm/transaction/internalTx: post: consumes: - application/json description: This API is only available for the PEAQ network parameters: - description: param in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmInternalTxParam' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/subscan_internal_plugin_share.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_plugin_evm_db.TraceJson' type: array type: object type: object summary: EVM internal Tx tags: - EVM x-synonyms: - evm - internal - tx - scan - transaction - internaltx - ethereum - smart contract - frontier - extrinsic /api/scan/evm/v2/transactions: post: consumes: - application/json description: This API only supports networks with EVM pallet(frontier or revive) parameters: - description: body in: body name: param required: true schema: $ref: '#/definitions/internal_plugin_evm_http.EvmTransactionsParam' produces: - application/json responses: '200': description: OK schema: {} summary: Evm transactions tags: - EVM x-synonyms: - evm - transactions - scan - ethereum - smart contract - frontier definitions: subscan_internal_plugin_evm_db.TokenTransferJson: properties: category: type: string contract: type: string create_at: type: integer decimals: type: integer from: type: string from_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' hash: type: string id: type: integer index: type: integer name: type: string price: type: string pvm: type: boolean storage_url: type: string symbol: type: string to: type: string to_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' token_id: type: string value: $ref: '#/definitions/subscan_internal_plugin_evm_db.EvmBalance' type: object subscan_internal_model.AccountParentJson: properties: address: type: string display: type: string identity: type: boolean sub_symbol: type: string type: object internal_plugin_evm_http.EVMBlockParam: properties: block_num: minimum: 1 type: integer type: object internal_plugin_evm_http.EvmEventLogsParams: properties: address: example: 442172007806579794521170102470079356214135847138 type: string block_range: example: 400000-400001 type: string hash: type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer type: object internal_plugin_evm_http.EVMAccountTokensParam: properties: address: type: string required: - address type: object internal_plugin_evm_http.EvmErc1155CollectibleParam: properties: contract: type: string token_id: type: string required: - token_id type: object internal_plugin_evm_http.EvmTransactionsParam: properties: address: type: string after_id: type: integer block_num: minimum: 1 type: integer block_range: type: string contract: type: string direction: default: from enum: - from - to - all type: string page: minimum: 0 type: integer receiver: type: string row: maximum: 100 minimum: 1 type: integer sender: type: string success: type: boolean type: object internal_plugin_evm_http.EvmInternalTxParam: properties: address: type: string after_id: description: example:"[response.id]" type: integer hash: type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer type: object internal_plugin_evm_http.EVMTransactionParam: properties: extrinsic_index: description: Optional, ExtrinsicIndex, such as 4780334-2 example: 4780334-2 type: string hash: description: Optional, Also known as Transaction ID (TxID). example: 4403810828170396786290491371397686440048847949327459862756503144457611133612 type: string type: object subscan_internal_model.AccountDisplay: properties: account_index: type: string address: description: Current network account type: string display: type: string evm_address: type: string evm_contract: $ref: '#/definitions/subscan_internal_model.EvmAccountDisplay' identity: type: boolean judgements: items: $ref: '#/definitions/subscan_internal_model.RegistrationJudgementJson' type: array merkle: $ref: '#/definitions/subscan_internal_model.MerkleTag' parent: allOf: - $ref: '#/definitions/subscan_internal_model.AccountParentJson' description: Parent account people: $ref: '#/definitions/subscan_internal_model.SampleIdentity' type: object subscan_internal_model.MerkleTag: properties: address_type: type: string tag_name: type: string tag_subtype: type: string tag_type: type: string type: object subscan_internal_model.SampleIdentity: properties: display: type: string identity: type: boolean judgements: items: $ref: '#/definitions/subscan_internal_model.RegistrationJudgementJson' type: array parent: $ref: '#/definitions/subscan_internal_model.AccountParentJson' type: object internal_plugin_evm_http.EvmTokenParam: properties: contract: type: string type: object subscan_internal_plugin_evm_db.TraceJson: properties: block_num: type: integer create_at: type: integer from_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' hash: type: string id: type: integer to_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' value: type: string type: object internal_plugin_evm_http.EvmAbiSearchParams: properties: id: items: type: string type: array required: - id type: object internal_plugin_evm_http.EvmNFT1155CollectiblesParam: properties: address: type: string after_id: type: integer contract: type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer token_id: type: string type: object subscan_internal_plugin_share.J: properties: code: example: 0 type: integer data: {} generated_at: example: 1699600641 type: integer message: example: Success type: string type: object internal_plugin_evm_http.EvmNFT721CollectiblesParam: properties: address: type: string contract: type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer token_id: type: string type: object subscan_internal_model.EvmAccountDisplay: properties: contract_name: type: string verify_source: type: string type: object internal_plugin_evm_http.EvmBlocksParams: properties: page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer type: object internal_plugin_evm_http.EvmContractListParam: properties: contract_type: description: contract type filter, only available in assethub network enum: - evm - pvm type: string contracts: items: type: string type: array order: enum: - desc - asc type: string order_field: enum: - verify_time - transaction_count type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer search: maxLength: 256 minLength: 1 type: string verified: type: boolean type: object internal_plugin_evm_http.EtherscanResponse: properties: message: description: '"OK" for success, error message for failure' type: string result: description: Actual data or error description status: description: '"1" for success, "0" for error' type: string type: object subscan_internal_plugin_evm_db.EvmBalance: properties: decimal.Decimal: type: string type: object internal_plugin_evm_http.EvmContractParam: properties: address: type: string required: - address type: object subscan_internal_model.TransferHistoryTotal: properties: received: type: string sent: type: string total: type: string type: object internal_plugin_evm_http.EvmTokenHoldersParam: properties: contract: type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer type: object internal_plugin_evm_http.EvmTokenTransferParam: properties: address: type: string after_id: description: example:"[response.id]" type: integer category: enum: - erc20 - erc721 - nft type: string contract: type: string hash: type: string include_pvm: type: boolean include_total: type: boolean page: minimum: 0 type: integer receiver: type: string row: maximum: 100 minimum: 1 type: integer sender: type: string token_id: type: string type: object internal_plugin_evm_http.EvmTokensParam: properties: category: enum: - erc20 - erc721 - erc1155 - nft type: string contracts: items: type: string type: array order: enum: - desc - asc type: string order_field: enum: - holders - transfer_count - symbol type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer search: maxLength: 256 minLength: 1 type: string type: object subscan_internal_model.RegistrationJudgementJson: properties: index: type: integer judgement: type: string type: object internal_plugin_evm_http.EvmErc1155HoldersParam: properties: contract: type: string order: enum: - desc - asc type: string order_field: enum: - balance type: string page: minimum: 0 type: integer row: maximum: 100 minimum: 1 type: integer token_id: type: string required: - token_id type: object