> ## Documentation Index
> Fetch the complete documentation index at: https://hedera-0c6e0218-mintlify-bc559771.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Invoke a smart contract

> 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.



## OpenAPI

````yaml /openapi.yaml post /api/v1/contracts/call
openapi: 3.0.3
info:
  title: Mirror Node REST API
  version: 0.154.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
security: []
tags:
  - name: accounts
    description: >-
      The accounts object represents the information associated with an account
      entity and returns a list of account information.The accounts list
      endpoint is cached and not updated as frequently as the account lookup by
      a specific ID endpoint.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#accounts
  - name: balances
    description: >-
      The balance object represents the balance of accounts on the Hedera
      network.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#balances
  - 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.
  - name: schedules
    description: >-
      The schedules object represents the information associated with a schedule
      entity.The schedules list endpoints is cached and not updated as
      frequently as the schedule lookup by a specific ID endpoint.
  - name: transactions
    description: >-
      The transaction object represents the transactions processed on the Hedera
      network.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#transactions
  - name: topics
    description: >-
      The topics object represents the information associated with a topic
      entity and returns topic messages information.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#topic-messages
  - name: tokens
    description: >-
      The tokens object represents the information associated with a token
      entity and returns a list of token information.The tokens list endpoint is
      cached and not updated as frequently as the token lookup by a specific ID.
externalDocs:
  description: REST API Docs
  url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api
paths:
  /api/v1/contracts/call:
    post:
      tags:
        - contracts
      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'
components:
  schemas:
    ContractCallRequest:
      type: object
      properties:
        block:
          description: >-
            Hexadecimal block number or the string "latest", "pending",
            "earliest". Defaults to "latest".
          example: latest
          nullable: true
          pattern: ^((0x)?[0-9a-fA-F]+|(earliest|pending|latest))$
          type: string
        data:
          description: >-
            Hexadecimal method signature and encoded parameters. Up to 131072
            bytes as at most 262146 hexadecimal digits including optional
            leading 0x.
          example: '0x47f1aae7'
          format: binary
          maxLength: 262146
          nullable: true
          pattern: ^(0x)?[0-9a-fA-F]+$
          type: string
        estimate:
          description: Whether gas estimation is called. Defaults to false.
          example: true
          nullable: true
          type: boolean
        from:
          description: The 20-byte hexadecimal EVM address the transaction is sent from.
          example: '00000000000000000000000000000000000004e2'
          format: binary
          maxLength: 42
          minLength: 40
          nullable: true
          pattern: ^(0x)?[A-Fa-f0-9]{40}$
          type: string
        gas:
          description: Gas provided for the transaction execution. Defaults to 15000000.
          example: 15000000
          format: int64
          minimum: 0
          nullable: true
          type: integer
        gasPrice:
          description: Gas price used for each paid gas.
          example: 100000000
          format: int64
          minimum: 0
          nullable: true
          type: integer
        to:
          description: The 20-byte hexadecimal EVM address the transaction is directed to.
          example: '0xd9d0c5c0ff85758bdf05a7636f8036d4d065f5b6'
          format: binary
          maxLength: 42
          minLength: 40
          nullable: false
          pattern: ^(0x)?[A-Fa-f0-9]{40}$
          type: string
        value:
          description: Value sent with this transaction. Defaults to 0.
          example: 0
          format: int64
          minimum: 0
          nullable: true
          type: integer
      required:
        - to
    ContractCallResponse:
      type: object
      properties:
        result:
          description: Result in hexadecimal from executed contract call.
          example: '0x0000000000006d8d'
          format: binary
          nullable: false
          pattern: ^0x[0-9a-fA-F]+$
          type: string
    Error:
      type: object
      properties:
        _status:
          type: object
          properties:
            messages:
              type: array
              items:
                type: object
                properties:
                  data:
                    description: Error message in hexadecimal
                    example: '0x3000'
                    format: binary
                    nullable: true
                    pattern: ^0x[0-9a-fA-F]+$
                    type: string
                  detail:
                    description: Detailed error message
                    example: Generic detailed error message
                    nullable: true
                    type: string
                  message:
                    description: Error message
                    example: Generic error message
                    nullable: false
                    type: string

````