Polkadot EVM API

The EVM API from Polkadot — 22 operation(s) for evm.

OpenAPI Specification

polkadot-evm-api-openapi.yml Raw ↑
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