Hedera contracts API

The contracts objects represents the information associated with contract entities.The contracts list endpoint is cached and not updated as frequently as the contract lookup by a specific ID endpoint.

Operations 12

POST /api/v1/contracts/call Invoke a smart contract #
GET /api/v1/contracts List contract entities on network #
GET /api/v1/contracts/{contractIdOrAddress} Get contract by id #
GET /api/v1/contracts/{contractIdOrAddress}/results List contract results from a contract on the network #
GET /api/v1/contracts/{contractIdOrAddress}/state The contract state from a contract on the network #
GET /api/v1/contracts/{contractIdOrAddress}/results/{timestamp} Get the contract result from a contract on the network executed at a given timestamp #
GET /api/v1/contracts/results List contract results from all contracts on the network #
GET /api/v1/contracts/results/{transactionIdOrHash} Get the contract result from a contract on the network for a given transactionId or ethereum transaction hash #
GET /api/v1/contracts/results/{transactionIdOrHash}/actions Get the contract actions from a contract on the network for a given transactionId or ethereum transaction hash #
GET /api/v1/contracts/results/{transactionIdOrHash}/opcodes Get the opcode traces for a historical transaction on the network with the given transaction ID or hash #
GET /api/v1/contracts/{contractIdOrAddress}/results/logs List contract logs from a contract on the network #
GET /api/v1/contracts/results/logs List contracts logs across many contracts on the network #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hedera-contracts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hedera-contracts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mirror Node REST accounts Contracts API
  version: 0.156.0
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  description: 'The REST API offers the ability to query transactions and entity information from a mirror node.


    Base url: [/api/v1](/api/v1)


    OpenAPI Spec: [/api/v1/docs/openapi.yml](/api/v1/docs/openapi.yml)'
  contact:
    name: Mirror Node Team
    email: mirrornode@hedera.com
    url: https://github.com/hiero-ledger/hiero-mirror-node
servers:
- description: The current REST API server
  url: ''
- description: The production REST API servers
  url: '{scheme}://{network}.mirrornode.hedera.com'
  variables:
    scheme:
      default: https
      description: The URI scheme
      enum:
      - http
      - https
    network:
      default: testnet
      description: The Hedera network in use
      enum:
      - mainnet-public
      - mainnet
      - previewnet
      - testnet
tags:
- name: contracts
  description: The contracts objects represents the information associated with contract entities.The contracts list endpoint is cached and not updated as frequently as the contract lookup by a specific ID endpoint.
paths:
  /api/v1/contracts/call:
    post:
      summary: Invoke a smart contract
      description: Returns a result from EVM execution such as cost-free execution of read-only smart contract queries, gas estimation, and transient simulation of read-write operations. If the `estimate` field is set to true gas estimation is executed. This API can process calls against the `latest` block or specific historical blocks when a hexadecimal or decimal block number is provided in the `block` field.
      operationId: contractCall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractCallRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractCallResponse'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported media type error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Generic error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Not implemented error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - contracts
  /api/v1/contracts:
    get:
      summary: List contract entities on network
      description: Returns a list of all contract entity items on the network.
      operationId: getContracts
      parameters:
      - $ref: '#/components/parameters/contractIdQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParamDesc'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
  /api/v1/contracts/{contractIdOrAddress}:
    get:
      summary: Get contract by id
      description: Return the contract information given an id
      operationId: getContract
      parameters:
      - $ref: '#/components/parameters/contractIdOrAddressPathParam'
      - $ref: '#/components/parameters/timestampQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
      - contracts
  /api/v1/contracts/{contractIdOrAddress}/results:
    get:
      summary: List contract results from a contract on the network
      description: Returns a list of all ContractResults for a contract's function executions.
      operationId: getContractResultsByContractId
      parameters:
      - $ref: '#/components/parameters/contractIdOrAddressPathParam'
      - $ref: '#/components/parameters/blockHashQueryParam'
      - $ref: '#/components/parameters/contractsBlockNumberQueryParam'
      - $ref: '#/components/parameters/fromQueryParam'
      - $ref: '#/components/parameters/internalQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParamDesc'
      - $ref: '#/components/parameters/timestampQueryParam'
      - $ref: '#/components/parameters/transactionIndexQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
  /api/v1/contracts/{contractIdOrAddress}/state:
    get:
      summary: The contract state from a contract on the network
      description: Returns a list of all contract's slots. If no timestamp is provided, returns the current state.
      operationId: getContractState
      parameters:
      - $ref: '#/components/parameters/contractIdOrAddressPathParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParam'
      - $ref: '#/components/parameters/slotQueryParam'
      - $ref: '#/components/parameters/stateTimestampQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractStateResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
  /api/v1/contracts/{contractIdOrAddress}/results/{timestamp}:
    get:
      summary: Get the contract result from a contract on the network executed at a given timestamp
      description: Returns a single ContractResult for a contract's function executions at a specific timestamp.
      operationId: getContractResultByIdAndTimestamp
      parameters:
      - $ref: '#/components/parameters/contractIdOrAddressPathParam'
      - $ref: '#/components/parameters/hbarQueryParam'
      - $ref: '#/components/parameters/timestampPathParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultDetails'
        '206':
          description: Partial Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultDetails'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
      - contracts
  /api/v1/contracts/results:
    get:
      summary: List contract results from all contracts on the network
      description: Returns a list of all ContractResults for all contract's function executions.
      operationId: getContractsResults
      parameters:
      - $ref: '#/components/parameters/fromQueryParam'
      - $ref: '#/components/parameters/blockHashQueryParam'
      - $ref: '#/components/parameters/contractsBlockNumberQueryParam'
      - $ref: '#/components/parameters/hbarQueryParam'
      - $ref: '#/components/parameters/internalQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParamDesc'
      - $ref: '#/components/parameters/timestampQueryParam'
      - $ref: '#/components/parameters/transactionIndexQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
  /api/v1/contracts/results/{transactionIdOrHash}:
    get:
      summary: Get the contract result from a contract on the network for a given transactionId or ethereum transaction hash
      description: Returns a single ContractResult for a contract's function executions for a given transactionId or ethereum transaction hash.
      operationId: getContractResultByTransactionIdOrHash
      parameters:
      - $ref: '#/components/parameters/transactionIdOrEthHashPathParam'
      - $ref: '#/components/parameters/hbarQueryParam'
      - $ref: '#/components/parameters/nonceQueryParamWithDefault'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultDetails'
        '206':
          description: Partial Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResultDetails'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
      - contracts
  /api/v1/contracts/results/{transactionIdOrHash}/actions:
    get:
      summary: Get the contract actions from a contract on the network for a given transactionId or ethereum transaction hash
      description: Returns a list of ContractActions for a contract's function executions for a given transactionId or ethereum transaction hash.
      operationId: getContractActions
      parameters:
      - $ref: '#/components/parameters/transactionIdOrEthHashPathParam'
      - $ref: '#/components/parameters/contractActionsIndexQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractActionsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
      - contracts
  /api/v1/contracts/results/{transactionIdOrHash}/opcodes:
    get:
      summary: Get the opcode traces for a historical transaction on the network with the given transaction ID or hash
      description: 'Re-executes a transaction and returns a result containing detailed information for the execution,

        including all values from the {@code stack}, {@code memory} and {@code storage}

        and the entire trace of opcodes that were executed during the replay.


        Note that to provide the output, the transaction needs to be re-executed on the EVM,

        which may take a significant amount of time to complete if stack and memory information is requested.

        '
      operationId: getContractOpcodes
      parameters:
      - $ref: '#/components/parameters/transactionIdOrEthHashPathParam'
      - $ref: '#/components/parameters/stack'
      - $ref: '#/components/parameters/memory'
      - $ref: '#/components/parameters/storage'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpcodesResponse'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Transaction or record file not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - contracts
  /api/v1/contracts/{contractIdOrAddress}/results/logs:
    get:
      summary: List contract logs from a contract on the network
      description: 'Search the logs of a specific contract across multiple contract calls. Chained logs are not

        included but can be found by calling `/api/v1/contracts/{contractId}/results/{timestamp}`

        or `/api/v1/contracts/results/{transactionId}`. When searching by topic a timestamp parameter must be supplied

        and span a time range of at most seven days.


        ## Ordering

        The order is governed by the combination of timestamp and index values. If the index param is omitted, the order is determined by the timestamp only.


        Note: The default order for this API is currently DESC


        ## Filtering

        When filtering there are some restrictions enforced to ensure correctness and scalability.


        **The table below defines the restrictions and support for the endpoint**


        | Query Param   | Comparison Operator | Support | Description           | Example |

        | ------------- | ------------------- | ------- | --------------------- | ------- |

        | index         | eq                  | Y       | Single occurrence only. Requires the presence of timestamp | ?index=X |

        |               | ne                  | N       | | |

        |               | lt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=lte:X |

        |               | gt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=gte:X |

        | timestamp     | eq                  | Y       | Single occurrence only. | ?timestamp=Y

        |               | ne                  | N       | | |

        |               | lt(e)               | Y       | Single occurrence only. Optional second timestamp **gt(e)** | ?timestamp=lte:Y

        |               | gt(e)               | Y       | Single occurrence only. Optional second timestamp **lt(e)** | ?timestamp=gte:Y



        Both filters must be a single occurrence of **gt(e)** or **lt(e)** which provide a lower and or upper boundary for search.

        '
      operationId: getContractLogsByContractId
      parameters:
      - $ref: '#/components/parameters/contractIdOrAddressPathParam'
      - $ref: '#/components/parameters/logIndexQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParamDesc'
      - $ref: '#/components/parameters/timestampQueryParam'
      - $ref: '#/components/parameters/logTopic0QueryParam'
      - $ref: '#/components/parameters/logTopic1QueryParam'
      - $ref: '#/components/parameters/logTopic2QueryParam'
      - $ref: '#/components/parameters/logTopic3QueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractLogsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
  /api/v1/contracts/results/logs:
    get:
      summary: List contracts logs across many contracts on the network
      description: 'Search the logs across many contracts with multiple contract calls. Chained logs are not

        included but can be found by calling `/api/v1/contracts/{contractId}/results/{timestamp}`

        or `/api/v1/contracts/results/{transactionId}`. When searching by topic a timestamp parameter must be supplied

        and span a time range of at most seven days.


        ## Ordering

        The order is governed by the combination of timestamp and index values. If the index param is omitted, the order is determined by the timestamp only.


        Note: The default order for this API is currently DESC


        ## Filtering

        When filtering there are some restrictions enforced to ensure correctness and scalability.


        **The table below defines the restrictions and support for the endpoint**


        | Query Param   | Comparison Operator | Support | Description           | Example |

        | ------------- | ------------------- | ------- | --------------------- | ------- |

        | index         | eq                  | Y       | Single occurrence only. Requires the presence of timestamp | ?index=X |

        |               | ne                  | N       | | |

        |               | lt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=lte:X |

        |               | gt(e)               | Y       | Single occurrence only. Requires the presence of timestamp | ?index=gte:X |

        | timestamp     | eq                  | Y       | Single occurrence only. | ?timestamp=Y

        |               | ne                  | N       | | |

        |               | lt(e)               | Y       | Single occurrence only. Optional second timestamp **gt(e)** | ?timestamp=lte:Y

        |               | gt(e)               | Y       | Single occurrence only. Optional second timestamp **lt(e)** | ?timestamp=gte:Y



        Both filters must be a single occurrence of **gt(e)** or **lt(e)** which provide a lower and or upper boundary for search.

        '
      operationId: getContractsLogs
      parameters:
      - $ref: '#/components/parameters/logIndexQueryParam'
      - $ref: '#/components/parameters/limitQueryParam'
      - $ref: '#/components/parameters/orderQueryParamDesc'
      - $ref: '#/components/parameters/timestampQueryParam'
      - $ref: '#/components/parameters/logTopic0QueryParam'
      - $ref: '#/components/parameters/logTopic1QueryParam'
      - $ref: '#/components/parameters/logTopic2QueryParam'
      - $ref: '#/components/parameters/logTopic3QueryParam'
      - $ref: '#/components/parameters/transactionHashQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractLogsResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
      tags:
      - contracts
components:
  parameters:
    blockHashQueryParam:
      name: block.hash
      in: query
      description: The block's hash. If multiple values are provided the last value will be the only value used.
      examples:
        noValue:
          summary: --
          value: ''
        32ByteNoOperator:
          summary: Example of 32 byte block.hash equals with no operator
          value: ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
        48ByteNoOperator:
          summary: Example of 48 byte block.hash equals with no operator
          value: 1eaf1abbd64bbcac7f473f0272671c66d3d1d64f584112b11cd4d2063e736305312fcb305804a48baa41571e71c39c61
        32ByteEqOperator:
          summary: Example of 32 byte block.hash with equals operator
          value: eq:ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
        48ByteEqOperator:
          summary: Example of 48 byte block.hash with equals operator
          value: eq:1eaf1abbd64bbcac7f473f0272671c66d3d1d64f584112b11cd4d2063e736305312fcb305804a48baa41571e71c39c61
        32Byte0xPrefixNoOperator:
          summary: Example of 32 byte block.hash equals with 0x prefix and no operator
          value: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
        48Byte0xPrefixNoOperator:
          summary: Example of 48 byte block.hash equals with 0x prefix and no operator
          value: '0x1eaf1abbd64bbcac7f473f0272671c66d3d1d64f584112b11cd4d2063e736305312fcb305804a48baa41571e71c39c61'
        32Byte0xPrefixEqOperator:
          summary: Example of 32 byte block.hash with 0x prefix and equals operator
          value: eq:0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
        48Byte0xPrefixEqOperator:
          summary: Example of 48 byte block.hash with 0x prefix and equals operator
          value: eq:0x1eaf1abbd64bbcac7f473f0272671c66d3d1d64f584112b11cd4d2063e736305312fcb305804a48baa41571e71c39c61
      schema:
        type: string
        pattern: ^(eq:)?(0x)?([0-9A-Fa-f]{64}|[0-9A-Fa-f]{96})$
    logTopic1QueryParam:
      name: topic1
      in: query
      description: The second topic associated with a contract log. Requires a timestamp range also be populated.
      schema:
        $ref: '#/components/schemas/LogTopicQueryParam'
    contractIdOrAddressPathParam:
      name: contractIdOrAddress
      in: path
      required: true
      description: Contract or account identifier in format shard.realm.num, realm.num, num or a 20-byte EVM address (with or without 0x prefix).
      schema:
        pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
        type: string
    logTopic3QueryParam:
      name: topic3
      in: query
      description: The fourth topic associated with a contract log. Requires a timestamp range also be populated.
      schema:
        $ref: '#/components/schemas/LogTopicQueryParam'
    limitQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return
      example: 2
      schema:
        format: int32
        type: integer
        default: 25
        minimum: 1
        maximum: 100
    internalQueryParam:
      name: internal
      in: query
      description: Whether to include child transactions or not
      example: true
      schema:
        type: boolean
        default: false
    fromQueryParam:
      name: from
      in: query
      description: Account ID or EVM address executing the contract
      schema:
        pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}|(0x)?[A-Fa-f0-9]{40}$
        type: string
    logTopic2QueryParam:
      name: topic2
      in: query
      description: The third topic associated with a contract log. Requires a timestamp range also be populated.
      schema:
        $ref: '#/components/schemas/LogTopicQueryParam'
    stack:
      name: stack
      description: If provided and set to false, stack information will not be included in the response
      in: query
      example: true
      schema:
        type: boolean
        default: true
    contractIdQueryParam:
      name: contract.id
      description: The ID of the smart contract
      in: query
      examples:
        noValue:
          summary: --
          value: ''
        entityNumNoOperator:
          summary: Example of entityNum equals with no operator
          value: 100
        idNoOperator:
          summary: Example of id equals with no operator
          value: 0.0.100
        evmAddressNoOperator:
          summary: A hex encoded EVM address with no operator.
          value: 0.0.1d8bfdc5d46dc4f61d6b6115972536ebe6a8854c
        entityNumEqOperator:
          summary: Example of entityNum equals operator
          value: eq:200
        idEqOperator:
          summary: Example of id equals operator
          value: eq:0.0.200
        entityNumNeOperator:
          summary: Example of entityNum not equals operator
          value: ne:300
        idNeOperator:
          summary: Example of id not equals operator
          value: ne:0.0.300
        entityNumGtOperator:
          summary: Example of entityNum greater than operator
          value: gt:400
        idGtOperator:
          summary: Example of id greater than operator
          value: gt:0.0.400
        entityNumGteOperator:
          summary: Example of entityNum greater than or equals operator
          value: gte:500
        idGteOperator:
          summary: Example of id greater than or equals operator
          value: gte:0.0.500
        entityNumLtOperator:
          summary: Example of entityNum less than operator
          value: lt:600
        idLtOperator:
          summary: Example of id less than operator
          value: lt:0.0.600
        entityNumLteOperator:
          summary: Example of entityNum less than or equals operator
          value: lte:700
        idLteOperator:
          summary: Example of id less than or equals operator
          value: lte:0.0.700
      schema:
        pattern: ^((gte?|lte?|eq|ne)\:)?(\d{1,10}\.\d{1,10}\.)?\d{1,10}|(\d{1,10}\.){0,2}[A-Fa-f0-9]{40}$
        type: string
    storage:
      name: storage
      description: If provided and set to true, storage information will be included in the response
      in: query
      example: false
      schema:
        type: boolean
        default: false
    contractActionsIndexQueryParam:
      name: index
      in: query
      description: The index of a contract action
      explode: true
      examples:
        noValue:
          summary: --
          value: ''
        noOperator:
          summary: Example of equals with no operator
          value: 1
        eqOperator:
          summary: Example of equals operator
          value: eq:2
        gtOperator:
          summary: Example of greater than operator
          value: gt:4
        gteOperator:
          summary: Example of greater than or equals operator
          value: gte:5
        ltOperator:
          summary: Example of less than operator
          value: lt:6
        lteOperator:
          summary: Example of less than or equals operator
          value: lte:7
      schema:
        type: string
        pattern: ^((gte?|lte?|eq|ne)\:)?\d{1,10}$
    orderQueryParam:
      name: order
      in: query
      description: The order in which items are listed
      example: desc
      schema:
        enum:
        - asc
        - desc
        default: asc
    logIndexQueryParam:
      name: index
      in: query
      description: Contract log index
      schema:
        type: string
        pattern: ^((eq|gt|gte|lt|lte):)?\d{1,10}$
      examples:
        noValue:
          summary: --
          value: ''
        indexNoOperator:
          summary: Example of index equals with no operator
          value: 2
        indexEqOperator:
          summary: Example of index equals with operator
          value: eq:2
        indexGtOperator:
          summary: Example of index greater than operator
          value: gt:2
        indexGteOperator:
          summary: Example of index greater than or equals operator
          value: gte:2
        indexLtOperator:
          summary: Example of index less than operator
          value: lt:2
        indexLteOperator:
          summary: Example of index less than or equals operator
          value: lte:2
    stateTimestampQueryParam:
      description: The consensus timestamp of the contract state as a Unix timestamp in seconds.nanoseconds format with an optional comparison operator. See [unixtimestamp.com](https://www.unixtimestamp.com/) for a simple way to convert a date to the 'seconds' part of the Unix time.
      name: timestamp
      in: query
      explode: true
      examples:
        noValue:
          summary: --
          value: ''
        secondsNoOperator:
          summary: Example of seconds equals with no operator
          value: 1234567890
        timestampNoOperator:
          summary: Example of timestamp equals with no operator
          value: 1234567890
        secondsEqOperator:
          summary: Example of seconds equals with operator
          value: eq:1234567890
        timestampEqOperator:
          summary: Example of timestamp equals with operator
          value: eq:1234567890.000000200
        secondsGtOperator:
          summary: Example of seconds greater than operator
          value: gt:1234567890
        timestampGtOperator:
          summary: Example of timestamp greater than operator
          value: gt:1234567890.000000400
        secondsGteOperator:
          summary: Example of seconds greater than or equals operator
          value: gte:1234567890
        timestampGteOperator:
          summary: Example of timestamp greater than or equals operator
          value: gte:1234567890.000000500
        secondsLtOperator:
          summary: Example of seconds less than operator
          value: lt:1234567890
        timestampLtOperator:
          summary: Example of timestamp less than operator
          value: lt:1234567890.000000600
        secondsLteOperator:
          summary: Example of seconds less than or equals operator
          value: lte:1234567890
        timestampLteOperator:
          summary: Example of timestamp less than or equals operator
          value: lte:1234567890.000000700
      schema:
        type: array
        items:
          type: string
          pattern: ^((eq|gt|gte|lt|lte):)?\d{1,10}(\.\d{1,9})?$
    timestampQueryParam:
      description: The consensus timestamp as a Unix timestamp in seconds.nanoseconds format with an optional comparison operator. See [unixtimestamp.com](https://www.unixtimestamp.com/) for a simple way to convert a date to the 'seconds' part of the Unix time.
      name: timestamp
      in: query
      explode: true
      examples:
        noValue:
          summary: --
          value: ''
        secondsNoOperator:
          summary: Example of seconds equals with no operator
          value: 1234567890
        timestampNoOperator:
          summary: Example of timestamp equals with no operator
          value: 1234567890
        secondsEqOperator:
          summary: Example of seconds equals with operator
          value: eq:1234567890
        timestampEqOperator:
          summary: Example of timestamp equals with operator
          value: eq:1234567890.000000200
        secondsNeOperator:
          summary: Example of seconds not equals operator
          value: ne:1234567890
        timestampNeOperator:
          summary: Example of timestamp not equals operator
          value: ne:1234567890.000000300
        secondsGtOperator:
          summary: Example of seconds greater than operator
          value: gt:1234567890
        timestampGtOperator:
          summary: Example of timestamp greater than operator
          value: gt:1234567890.000000400
        secondsGteOperator:
          summary: Example of seconds greater than or equals operator
          value: gte:1234567890
        timestampGteOperator:
          summary: Example of timestamp greater than or equals operator
          value: gte:1234567890.000000500
        secondsLtOperator:
          summary: Example of seconds less than operator
          value: lt:1234567890
        timestampLtOperator:
          summary: Example of timestamp less than operator
          value: lt:1234567890.000000600
        secondsLteOperator:
          summary: Example of seconds less than or equals operator
          value: lte:1234567890
        timestampLteOperator:
          summary: Example of timestamp less than or equals operator
          value: lte:1234567890.000000700
      schema:
        type: array
        items:
          type: string
          pattern: ^((eq|gt|gte|lt|lte|ne):)?\d{1,10}(\.\d{1,9})?$
    nonceQueryParamWithDefault:
      name: nonce
      in: query
      description: Filter the query result by the nonce of the transaction. A zero nonce represents user submitted transactions while a non-zero nonce is generated by main nodes. The filter honors the last value. Default is 0 when not specified.
      example: 1
      schema:
        format: int32
        type: integer
        default: 0
        minimum: 0
    transactionIdOrEthHashPathParam:
      name: transactionIdOrHash
      in: path
      schema:
        pattern: ^(0x)?[A-Fa-f0-9]{64}|(\d{1,10})\.(\d{1,10})\.(\d{1,10})-(\d{1,19})-(\d{1,9})$
        type: string
      required: true
      description: Transaction Id or a 32 byte hash with optional 0x prefix
      examples:
        transactionId:
          value: 0.0.10-1234567890-000000000
        transactionHash:
          value: ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
        transactionHashWith0xPrefix:
          value: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
    c

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hedera/refs/heads/main/openapi/hedera-contracts-api-openapi.yml