Blockscout Tokens API

The Tokens API from Blockscout — 11 operation(s) for tokens.

OpenAPI Specification

blockscout-tokens-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: API for BlockScout web app
  version: 1.0.0
  title: BlockScout Addresses Tokens API
  contact:
    email: support@blockscout.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://eth.blockscout.com/api/v2/
  description: Ethereum mainnet
- url: https://optimism.blockscout.com/api/v2/
  description: Optimism mainnet
- url: https://base.blockscout.com/api/v2/
  description: Base mainnet
- url: https://eth-sepolia.blockscout.com/api/v2/
  description: Ethereum testnet
tags:
- name: Tokens
paths:
  /tokens:
    get:
      summary: get tokens list
      operationId: get_tokens_list
      parameters:
      - in: query
        name: q
        schema:
          type: string
          example: USDT
      - in: query
        name: type
        schema:
          type: string
          example: ERC-20,ERC-721,ERC-1155
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TokenInfo'
                  next_page_params:
                    type: object
                    example:
                      contract_address_hash: '0x68749665ff8d2d112fa859aa293f07a622782f38'
                      holders_count: 1011
                      is_name_null: false
                      items_count: 50
                      market_cap: '482534473.2170469'
                      name: Tether Gold
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}:
    get:
      summary: get token info
      operationId: get_token
      parameters:
      - $ref: '#/components/parameters/addressHash'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfo'
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/transfers:
    get:
      summary: get token token transfers
      operationId: get_token_token_transfers
      parameters:
      - $ref: '#/components/parameters/addressHash'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TokenTransfer'
                  next_page_params:
                    type: object
                    example:
                      block_number: 27736955
                      index: 61
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/holders:
    get:
      summary: get token holders
      operationId: get_token_holders
      parameters:
      - $ref: '#/components/parameters/addressHash'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Holder'
                  next_page_params:
                    type: object
                    example:
                      items_count: 2
                      value: 789999999999999970440
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/counters:
    get:
      summary: get token holders
      operationId: get_token_counters
      parameters:
      - $ref: '#/components/parameters/addressHash'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenCounters'
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances:
    get:
      summary: get NFT instances
      operationId: get_nft_instances
      parameters:
      - $ref: '#/components/parameters/addressHash'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/NFTInstance'
                  next_page_params:
                    type: object
                    example:
                      unique_token: 97464
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances/{id}:
    get:
      summary: get NFT instance by id
      operationId: get_nft_instance
      parameters:
      - $ref: '#/components/parameters/addressHash'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NFTInstance'
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances/{id}/transfers:
    get:
      summary: get transfers of NFT instance
      operationId: get_nft_instance_transfers
      parameters:
      - $ref: '#/components/parameters/addressHash'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TokenTransfer'
                  next_page_params:
                    type: object
                    example:
                      block_number: 27736955
                      index: 61
                      token_id: 50
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances/{id}/holders:
    get:
      summary: get token instance holders
      operationId: get_token_instance_holders
      parameters:
      - $ref: '#/components/parameters/addressHash'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Holder'
                  next_page_params:
                    type: object
                    example:
                      value: 789999999999999970440
                      token_id: '953848'
                      items_count: 50
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances/{id}/transfers-count:
    get:
      summary: get transfers count of NFT instance
      operationId: get_nft_instance_transfers_count
      parameters:
      - $ref: '#/components/parameters/addressHash'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: token
          content:
            application/json:
              schema:
                type: object
                required:
                - transfers_count
                properties:
                  transfers_count:
                    type: integer
                    example: 10
        '400':
          description: bad input parameter
      tags:
      - Tokens
  /tokens/{address_hash}/instances/{id}/refetch-metadata:
    patch:
      summary: re-fetch token instance metadata
      operationId: refetch_token_instance_metadata
      parameters:
      - $ref: '#/components/parameters/addressHash'
      - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecaptchaBody'
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  message:
                    type: string
                    example: OK
        '403':
          description: Invalid reCAPTCHA response
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - next_page_params
                properties:
                  message:
                    type: string
                    example: Invalid reCAPTCHA response
      tags:
      - Tokens
components:
  schemas:
    WatchlistName:
      type: object
      required:
      - display_name
      - label
      properties:
        display_name:
          type: string
          example: name to show
        label:
          type: string
          example: label
    TotalERC20:
      required:
      - decimals
      - value
      properties:
        decimals:
          type: string
          example: '18'
        value:
          type: string
          example: '1000'
    TokenInfo:
      type: object
      required:
      - address
      - circulating_market_cap
      - icon_url
      - symbol
      - name
      - decimals
      - type
      - holders
      - exchange_rate
      - total_supply
      properties:
        circulating_market_cap:
          type: string
          example: '83606435600.3635'
        icon_url:
          type: string
          example: https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png
        name:
          type: string
          example: Tether USD
        decimals:
          type: string
          example: '6'
        symbol:
          type: string
          example: USDT
        address_hash:
          type: string
          example: '0x394c399dbA25B99Ab7708EdB505d755B3aa29997'
        type:
          type: string
          example: ERC-20
        holders_count:
          type: string
          example: '837494234523'
        exchange_rate:
          type: string
          example: '0.99'
        total_supply:
          type: string
          example: '10000000'
    AddressTag:
      type: object
      required:
      - address_hash
      - display_name
      - label
      properties:
        address_hash:
          type: string
          example: '0xEb533ee5687044E622C69c58B1B12329F56eD9ad'
        display_name:
          type: string
          example: name to show
        label:
          type: string
          example: label
    RecaptchaBody:
      required:
      - recaptcha_response
      properties:
        recaptcha_response:
          type: string
          example: '123'
    Holder:
      required:
      - address
      - value
      - token
      properties:
        address_hash:
          $ref: '#/components/schemas/AddressParam'
        value:
          type: string
          example: '10000'
        token_id:
          type: string
          example: '10000'
    TokenCounters:
      required:
      - token_holders_count
      - transfers_count
      properties:
        token_holders_count:
          type: string
          example: '100'
        transfers_count:
          type: string
          example: '1000'
    TotalERC721:
      required:
      - token_id
      properties:
        token_id:
          type: string
          example: '1'
        token_instance:
          $ref: '#/components/schemas/NFTInstance'
    NFTInstance:
      required:
      - is_unique
      - id
      - token
      - owner
      properties:
        is_unique:
          type: boolean
        id:
          type: string
          example: '431'
        holder_address_hash:
          type: string
          example: '0x394c399dbA25B99Ab7708EdB505d755B3aa29997'
        image_url:
          type: string
          example: example.com/picture.png
        animation_url:
          type: string
          example: example.com/video.mp4
        external_app_url:
          type: string
          example: d-app.com
        metadata:
          type: object
          example:
            year: 2023
            tags:
            - poap
            - event
            name: 'Social Listening Committee #2 Attendees'
            image_url: https://assets.poap.xyz/chanel-poap-4c-2023-logo-1675083420470.png
            home_url: https://app.poap.xyz/token/6292128
            external_url: https://api.poap.tech/metadata/99010/6292128
            description: This is the POAP for attendees of the second Social Listening Committee.
            attributes:
            - value: 01-Feb-2023
              trait_type: startDate
            - value: 01-Feb-2023
              trait_type: endDate
            - value: 'false'
              trait_type: virtualEvent
            - value: Paris
              trait_type: city
            - value: France
              trait_type: country
            - value: https://www.chanel.com
              trait_type: eventURL
        owner:
          $ref: '#/components/schemas/AddressParam'
        token:
          $ref: '#/components/schemas/TokenInfo'
    AddressParam:
      type: object
      required:
      - hash
      - implementation_name
      - is_contract
      - is_verified
      - name
      - private_tags
      - public_tags
      - watchlist_names
      properties:
        hash:
          type: string
          example: '0xEb533ee5687044E622C69c58B1B12329F56eD9ad'
        implementation_name:
          type: string
          example: implementationName
        name:
          type: string
          example: contractName
        ens_domain_name:
          type: string
          example: domain.eth
        metadata:
          type: object
          example:
            slug: tag_slug
            name: Tag name
            tagType: name
            ordinal: 0
            meta: {}
        is_contract:
          type: boolean
        private_tags:
          type: array
          items:
            $ref: '#/components/schemas/AddressTag'
        watchlist_names:
          type: array
          items:
            $ref: '#/components/schemas/WatchlistName'
        public_tags:
          type: array
          items:
            $ref: '#/components/schemas/AddressTag'
        is_verified:
          type: boolean
    TotalERC1155:
      required:
      - token_id
      - decimals
      - value
      properties:
        token_id:
          type: string
          example: '1'
        decimals:
          type: string
          example: null
        value:
          type: string
          example: '1000'
        token_instance:
          $ref: '#/components/schemas/NFTInstance'
    TokenTransfer:
      type: object
      required:
      - block_hash
      - from
      - log_index
      - to
      - token
      - total
      - transaction_hash
      - type
      properties:
        block_hash:
          type: string
          example: '0xf569ec751152b2f814001fc730f7797aa155e4bc3ba9cb6ba24bc2c8c9468c1a'
        from:
          $ref: '#/components/schemas/AddressParam'
        log_index:
          type: integer
          example: 16
        method:
          type: string
          example: transfer
        timestamp:
          type: string
          example: '2023-07-03T20:09:59.000000Z'
        to:
          $ref: '#/components/schemas/AddressParam'
        token:
          $ref: '#/components/schemas/TokenInfo'
        total:
          oneOf:
          - $ref: '#/components/schemas/TotalERC20'
          - $ref: '#/components/schemas/TotalERC721'
          - $ref: '#/components/schemas/TotalERC1155'
        transaction_hash:
          type: string
          example: '0x6662ad1ad2ea899e9e27832dc202fd2ef915a5d2816c1142e6933cff93f7c592'
        type:
          type: string
          example: token_transfer
  parameters:
    id:
      name: id
      schema:
        type: integer
      in: path
      required: true
      description: integer id
    addressHash:
      name: address_hash
      in: path
      description: Address hash
      required: true
      schema:
        type: string
        pattern: ^0x([A-Fa-f0-9]{40})$