> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metalntwx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Call a contract (read-only)

> Executes a call against the selected block's state without creating a transaction. Use this for MIP20 `balanceOf` and other view functions. `value` must be `0` — Metal has no native asset.



## OpenAPI

````yaml /reference/json-rpc/json-rpc.json post /eth_call
openapi: 3.1.0
info:
  title: Metal JSON-RPC
  version: 1.0.0
  description: Interactive playground for Metal's public JSON-RPC endpoints.
servers:
  - url: https://rpc-testnet.metalntwx.com/v1/{endpointId}
    variables:
      endpointId:
        default: YOUR_ENDPOINT_ID
        description: >-
          Your endpoint ID from the Metal console. It is a credential, so keep
          it private. Paste it once, and the playground remembers it in this
          browser.
    description: Testnet
  - url: https://rpc-devnet.metalntwx.com
    description: Devnet
security: []
tags:
  - name: Chain
    description: Identify the chain and its head.
  - name: Consensus
    description: Simplex finality, node build, and gas-token metadata.
  - name: Blocks
    description: Read blocks with Metal's millisecond timestamps and proposer.
  - name: State
    description: Read accounts, contracts, and storage.
  - name: Gas
    description: Quote gas in MIP20 gas-token base units.
  - name: Transactions
    description: Submit and inspect transactions.
  - name: Logs
    description: Query event logs.
  - name: MIP20
    description: Gas-token pricing detail standard Ethereum responses cannot represent.
paths:
  /eth_call:
    post:
      tags:
        - State
      summary: Call a contract (read-only)
      description: >-
        Executes a call against the selected block's state without creating a
        transaction. Use this for MIP20 `balanceOf` and other view functions.
        `value` must be `0` — Metal has no native asset.
      operationId: eth_call
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  default: '2.0'
                  description: JSON-RPC protocol version. Always `2.0`.
                id:
                  type: integer
                  default: 1
                  description: Request identifier echoed back in the response.
                method:
                  type: string
                  enum:
                    - eth_call
                  default: eth_call
                  description: JSON-RPC method name.
                params:
                  type: array
                  prefixItems:
                    - type: object
                      description: The call to execute.
                      properties:
                        from:
                          type: string
                          description: Sender address.
                        to:
                          type: string
                          description: Target contract or account address.
                        data:
                          type: string
                          description: Call data, ABI-encoded.
                        gas:
                          type: string
                          description: Gas limit as a hex quantity.
                      default:
                        to: '0x0000000000000000000000000000000000000000'
                        data: 0x
                    - type: string
                      default: latest
                      description: >-
                        Block selector: `"latest"`, `"pending"`, `"safe"`,
                        `"finalized"`, `"earliest"`, or a hex block number such
                        as `"0x1cf741"`.
                  items: false
                  minItems: 2
                  maxItems: 2
                  default:
                    - to: '0x0000000000000000000000000000000000000000'
                      data: 0x
                    - latest
                  description: '`[callObject, blockSelector]`.'
                  x-default:
                    - to: '0x0000000000000000000000000000000000000000'
                      data: 0x
                    - latest
            example:
              jsonrpc: '2.0'
              id: 1
              method: eth_call
              params:
                - to: '0x0000000000000000000000000000000000000000'
                  data: 0x
                - latest
      responses:
        '200':
          description: >-
            JSON-RPC 2.0 response. Errors are reported in-band via an `error`
            object with `code` and `message` in place of `result`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: integer
                  result:
                    type: string
                    description: Return data of the call as hex data.
              example:
                jsonrpc: '2.0'
                id: 1
                result: 0x

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.