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

# Ethereum JSON-RPC endpoint

> Single endpoint for all standard Ethereum JSON-RPC 2.0 methods. Send a POST request with a JSON body specifying the `method` and `params`.

**Supported methods:** `eth_blockNumber`, `eth_getBalance`, `eth_getLogs`, `eth_gasPrice`, `eth_getTransactionByHash`, `eth_getTransactionReceipt`, `eth_chainId`, `eth_maxPriorityFeePerGas`, `eth_getTransactionCount`, `eth_getCode`, `eth_getStorageAt`, `eth_estimateGas`, `eth_getBlockByNumber`, `eth_getBlockByHash`, `eth_sendRawTransaction`, `eth_call`

**Example:**
```
curl -H "content-type: application/json" -X POST \
  --data '{"id":0,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}' \
  https://eth.blockscout.com/api/eth-rpc
```



## OpenAPI

````yaml /openapi-specs/jsonrpc-endpoints.yaml post /eth-rpc
openapi: 3.1.0
info:
  title: Blockscout RPC API
  version: 1.0.0
  description: >
    Blockscout is an open-source blockchain explorer for Ethereum-based
    networks.


    This API is provided for developers transitioning applications from
    Etherscan to Blockscout 

    and applications requiring general API and data support. It supports GET and
    POST requests.


    ## Authentication


    **API keys are OPTIONAL** for all RPC endpoints. The API works without
    authentication but has different rate limits:


    - **Without API key:** 5 requests per second (shared pool across all users)

    - **With API key:** 10 requests per second per key (dedicated limit)

    - **Free tier:** Up to 3 API keys per account at no cost


    To use an API key, add `apikey=YOUR_API_KEY` to the query string:

    ```

    https://eth.blockscout.com/api?module=account&action=balance&address=0x123...&apikey=YOUR_API_KEY

    ```


    ## Base URL Format

    URLs vary by instance. With typical installations, access the API by adding
    `/api` to the end 

    of the instance URL.


    **Example:** `https://eth-sepolia.blockscout.com/api`


    ## Query Format


    ### RPC API (Module/Action format)

    An example query includes a module and action(s)/parameters:

    ```

    https://eth-sepolia.blockscout.com/api?module=account&action=balance&address=0x123...

    ```


    ### ETH RPC API (JSON-RPC format)

    Standard Ethereum JSON-RPC methods use POST requests to `/api/eth-rpc`:

    ```

    POST https://eth.blockscout.com/api/eth-rpc

    Content-Type: application/json


    {"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}

    ```


    Note: API keys can also be used with ETH RPC endpoints by adding
    `?apikey=YOUR_API_KEY` to the URL.
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    name: Blockscout Community
    url: https://discord.gg/blockscout
servers:
  - url: https://eth.blockscout.com/api
    description: Ethereum Mainnet Explorer (RPC API)
  - url: https://eth-sepolia.blockscout.com/api
    description: Ethereum Sepolia Testnet Explorer (RPC API)
  - url: https://base.blockscout.com/api
    description: Base Mainnet Explorer (RPC API)
  - url: https://optimism.blockscout.com/api
    description: Optimism Mainnet Explorer (RPC API)
  - url: https://gnosis.blockscout.com/api
    description: Gnosis Chain Explorer (RPC API)
security:
  - {}
tags:
  - name: Account
    description: Account-related endpoints
  - name: Block
    description: Block-related endpoints
  - name: Contract
    description: Smart contract-related endpoints
  - name: Logs
    description: Event logs endpoints
  - name: Stats
    description: Network statistics endpoints
  - name: Token
    description: Token-related endpoints
  - name: Transaction
    description: Transaction-related endpoints
  - name: ETH RPC
    description: Ethereum JSON-RPC compatible endpoints
externalDocs:
  url: https://docs.blockscout.com/devs/apis/rpc
paths:
  /eth-rpc:
    post:
      tags:
        - ETH RPC
      summary: Ethereum JSON-RPC endpoint
      description: >-
        Single endpoint for all standard Ethereum JSON-RPC 2.0 methods. Send a
        POST request with a JSON body specifying the `method` and `params`.


        **Supported methods:** `eth_blockNumber`, `eth_getBalance`,
        `eth_getLogs`, `eth_gasPrice`, `eth_getTransactionByHash`,
        `eth_getTransactionReceipt`, `eth_chainId`, `eth_maxPriorityFeePerGas`,
        `eth_getTransactionCount`, `eth_getCode`, `eth_getStorageAt`,
        `eth_estimateGas`, `eth_getBlockByNumber`, `eth_getBlockByHash`,
        `eth_sendRawTransaction`, `eth_call`


        **Example:**

        ```

        curl -H "content-type: application/json" -X POST \
          --data '{"id":0,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}' \
          https://eth.blockscout.com/api/eth-rpc
        ```
      operationId: eth-rpc-post
      parameters:
        - $ref: '#/components/parameters/ApiKeyQuery'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - title: eth_blockNumber
                  description: >-
                    Returns the latest block number in the chain in hexadecimal
                    format.


                    **JSON-RPC Method:** `eth_blockNumber`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_blockNumber
                      example: eth_blockNumber
                      description: Must be "eth_blockNumber"
                    params:
                      type: array
                      description: No parameters required
                      maxItems: 0
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_blockNumber
                    params: []
                    id: 1
                - title: eth_getBalance
                  description: >-
                    Returns the balance of an account at a given address in wei
                    (hexadecimal).


                    **JSON-RPC Method:** `eth_getBalance`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getBalance
                      example: eth_getBalance
                      description: Must be "eth_getBalance"
                    params:
                      type: array
                      description: 'Parameters: [address, blockTag]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{40}$
                          description: >-
                            Ethereum address (20 bytes, hex-encoded with 0x
                            prefix)
                          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getBalance
                    params:
                      - '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                      - latest
                    id: 1
                - title: eth_getLogs
                  description: >-
                    Returns an array of logs matching a specified filter object.
                    Maximum 1000 logs per request. Use pagination for more
                    results.


                    **JSON-RPC Method:** `eth_getLogs`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getLogs
                      example: eth_getLogs
                      description: Must be "eth_getLogs"
                    params:
                      type: array
                      description: 'Parameters: [filterObject]'
                      minItems: 1
                      maxItems: 1
                      prefixItems:
                        - type: object
                          description: Filter object for log queries
                          properties:
                            address:
                              oneOf:
                                - type: string
                                  pattern: ^0x[a-fA-F0-9]{40}$
                                - type: array
                                  items:
                                    type: string
                                    pattern: ^0x[a-fA-F0-9]{40}$
                              description: >-
                                Contract address or list of addresses to filter
                                logs from
                            fromBlock:
                              type: string
                              description: Start block (hex number or tag)
                              example: '0x1234567'
                            toBlock:
                              type: string
                              description: End block (hex number or tag)
                              example: latest
                            topics:
                              type: array
                              description: >-
                                Array of 32-byte topics for filtering. Use null
                                for wildcard positions.
                              items:
                                oneOf:
                                  - type: string
                                    pattern: ^0x[a-fA-F0-9]{64}$
                                  - type: array
                                    items:
                                      type: string
                                      pattern: ^0x[a-fA-F0-9]{64}$
                                  - type: 'null'
                            blockHash:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{64}$
                              description: >-
                                Filter logs from a specific block hash (mutually
                                exclusive with fromBlock/toBlock)
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getLogs
                    params:
                      - address: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
                        fromBlock: '0x1234567'
                        toBlock: latest
                        topics:
                          - >-
                            0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
                    id: 1
                - title: eth_gasPrice
                  description: >-
                    Returns the current gas price in wei (hexadecimal).


                    **JSON-RPC Method:** `eth_gasPrice`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_gasPrice
                      example: eth_gasPrice
                      description: Must be "eth_gasPrice"
                    params:
                      type: array
                      description: No parameters required
                      maxItems: 0
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_gasPrice
                    params: []
                    id: 1
                - title: eth_getTransactionByHash
                  description: >-
                    Returns information about a transaction requested by
                    transaction hash.


                    **JSON-RPC Method:** `eth_getTransactionByHash`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getTransactionByHash
                      example: eth_getTransactionByHash
                      description: Must be "eth_getTransactionByHash"
                    params:
                      type: array
                      description: 'Parameters: [transactionHash]'
                      minItems: 1
                      maxItems: 1
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{64}$
                          description: >-
                            Transaction hash (32 bytes, hex-encoded with 0x
                            prefix)
                          example: >-
                            0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getTransactionByHash
                    params:
                      - >-
                        0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b
                    id: 1
                - title: eth_getTransactionReceipt
                  description: >-
                    Returns the receipt of a transaction by transaction hash,
                    including logs and status.


                    **JSON-RPC Method:** `eth_getTransactionReceipt`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getTransactionReceipt
                      example: eth_getTransactionReceipt
                      description: Must be "eth_getTransactionReceipt"
                    params:
                      type: array
                      description: 'Parameters: [transactionHash]'
                      minItems: 1
                      maxItems: 1
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{64}$
                          description: >-
                            Transaction hash (32 bytes, hex-encoded with 0x
                            prefix)
                          example: >-
                            0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getTransactionReceipt
                    params:
                      - >-
                        0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b
                    id: 1
                - title: eth_chainId
                  description: >-
                    Returns the current chain ID used for signing
                    replay-protected transactions.


                    **JSON-RPC Method:** `eth_chainId`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_chainId
                      example: eth_chainId
                      description: Must be "eth_chainId"
                    params:
                      type: array
                      description: No parameters required
                      maxItems: 0
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_chainId
                    params: []
                    id: 1
                - title: eth_maxPriorityFeePerGas
                  description: >-
                    Returns the current max priority fee per gas in wei
                    (hexadecimal) for EIP-1559 transactions.


                    **JSON-RPC Method:** `eth_maxPriorityFeePerGas`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_maxPriorityFeePerGas
                      example: eth_maxPriorityFeePerGas
                      description: Must be "eth_maxPriorityFeePerGas"
                    params:
                      type: array
                      description: No parameters required
                      maxItems: 0
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_maxPriorityFeePerGas
                    params: []
                    id: 1
                - title: eth_getTransactionCount
                  description: >-
                    Returns the number of transactions sent from an address
                    (nonce).


                    **JSON-RPC Method:** `eth_getTransactionCount`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getTransactionCount
                      example: eth_getTransactionCount
                      description: Must be "eth_getTransactionCount"
                    params:
                      type: array
                      description: 'Parameters: [address, blockTag]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{40}$
                          description: >-
                            Ethereum address (20 bytes, hex-encoded with 0x
                            prefix)
                          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getTransactionCount
                    params:
                      - '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                      - latest
                    id: 1
                - title: eth_getCode
                  description: >-
                    Returns the bytecode at a given address (smart contract
                    code).


                    **JSON-RPC Method:** `eth_getCode`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getCode
                      example: eth_getCode
                      description: Must be "eth_getCode"
                    params:
                      type: array
                      description: 'Parameters: [address, blockTag]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{40}$
                          description: >-
                            Ethereum address (20 bytes, hex-encoded with 0x
                            prefix)
                          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getCode
                    params:
                      - '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b'
                      - latest
                    id: 1
                - title: eth_getStorageAt
                  description: >-
                    Returns the value from a storage position at a given
                    address.


                    **JSON-RPC Method:** `eth_getStorageAt`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getStorageAt
                      example: eth_getStorageAt
                      description: Must be "eth_getStorageAt"
                    params:
                      type: array
                      description: 'Parameters: [address, storagePosition, blockTag]'
                      minItems: 3
                      maxItems: 3
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{40}$
                          description: >-
                            Ethereum address (20 bytes, hex-encoded with 0x
                            prefix)
                          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                        - type: string
                          pattern: ^0x[a-fA-F0-9]*$
                          description: Storage position as hex string
                          example: '0x0'
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getStorageAt
                    params:
                      - '0x295a70b2de5e3953354a6a8344e616ed314d7251'
                      - '0x0'
                      - latest
                    id: 1
                - title: eth_estimateGas
                  description: >-
                    Generates and returns an estimate of how much gas is
                    necessary to allow the transaction to complete.


                    **JSON-RPC Method:** `eth_estimateGas`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_estimateGas
                      example: eth_estimateGas
                      description: Must be "eth_estimateGas"
                    params:
                      type: array
                      description: 'Parameters: [transactionObject, blockTag (optional)]'
                      minItems: 1
                      maxItems: 2
                      prefixItems:
                        - type: object
                          description: Transaction object for gas estimation
                          required:
                            - to
                          properties:
                            from:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{40}$
                              description: Sender address
                            to:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{40}$
                              description: Recipient or contract address
                            gas:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Gas limit as hex
                            gasPrice:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Gas price in wei as hex
                            value:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Value in wei as hex
                            data:
                              type: string
                              pattern: ^0x[a-fA-F0-9]*$
                              description: Contract call data as hex
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_estimateGas
                    params:
                      - from: '0x8D97689C9818892B700e27F316cc3E41e17fBeb9'
                        to: '0xd3CdA913deB6f67967B99D67aCDFa1712C293601'
                        value: '0x186a0'
                      - latest
                    id: 1
                - title: eth_getBlockByNumber
                  description: >-
                    Returns information about a block by block number.


                    **JSON-RPC Method:** `eth_getBlockByNumber`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getBlockByNumber
                      example: eth_getBlockByNumber
                      description: Must be "eth_getBlockByNumber"
                    params:
                      type: array
                      description: 'Parameters: [blockNumber, fullTransactions]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]+$
                          description: Block number as hex string
                          example: '0x1234567'
                        - type: boolean
                          description: >-
                            If true, returns full transaction objects; if false,
                            returns only transaction hashes
                          example: false
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getBlockByNumber
                    params:
                      - '0x1234567'
                      - false
                    id: 1
                - title: eth_getBlockByHash
                  description: >-
                    Returns information about a block by block hash.


                    **JSON-RPC Method:** `eth_getBlockByHash`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_getBlockByHash
                      example: eth_getBlockByHash
                      description: Must be "eth_getBlockByHash"
                    params:
                      type: array
                      description: 'Parameters: [blockHash, fullTransactions]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]{64}$
                          description: Block hash (32 bytes, hex-encoded with 0x prefix)
                          example: >-
                            0x9b83c12c69edb74f6c8dd5d052765c1adf940e320bd1291696e6fa07829eee71
                        - type: boolean
                          description: >-
                            If true, returns full transaction objects; if false,
                            returns only transaction hashes
                          example: false
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_getBlockByHash
                    params:
                      - >-
                        0x9b83c12c69edb74f6c8dd5d052765c1adf940e320bd1291696e6fa07829eee71
                      - false
                    id: 1
                - title: eth_sendRawTransaction
                  description: >-
                    Submits a pre-signed transaction for broadcast to the
                    Ethereum network.


                    **JSON-RPC Method:** `eth_sendRawTransaction`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_sendRawTransaction
                      example: eth_sendRawTransaction
                      description: Must be "eth_sendRawTransaction"
                    params:
                      type: array
                      description: 'Parameters: [signedTransactionData]'
                      minItems: 1
                      maxItems: 1
                      prefixItems:
                        - type: string
                          pattern: ^0x[a-fA-F0-9]+$
                          description: Signed transaction data as RLP-encoded hex string
                          example: >-
                            0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_sendRawTransaction
                    params:
                      - >-
                        0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83
                    id: 1
                - title: eth_call
                  description: >-
                    Executes a new message call immediately without creating a
                    transaction on the blockchain. Used for reading contract
                    state.


                    **JSON-RPC Method:** `eth_call`


                    This endpoint uses the standard Ethereum JSON-RPC 2.0
                    format.
                  type: object
                  required:
                    - jsonrpc
                    - method
                    - id
                    - params
                  properties:
                    jsonrpc:
                      type: string
                      example: '2.0'
                      description: JSON-RPC version
                      default: '2.0'
                    method:
                      type: string
                      enum:
                        - eth_call
                      example: eth_call
                      description: Must be "eth_call"
                    params:
                      type: array
                      description: 'Parameters: [callObject, blockTag]'
                      minItems: 2
                      maxItems: 2
                      prefixItems:
                        - type: object
                          description: Transaction call object
                          properties:
                            from:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{40}$
                              description: Sender address (optional)
                            to:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{40}$
                              description: Target contract address
                            gas:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Gas limit as hex (optional)
                            gasPrice:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Gas price in wei as hex (optional)
                            value:
                              type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Value to send in wei as hex (optional)
                            data:
                              type: string
                              pattern: ^0x[a-fA-F0-9]*$
                              description: Encoded contract method call data
                        - oneOf:
                            - type: string
                              enum:
                                - latest
                                - earliest
                                - pending
                                - safe
                                - finalized
                              description: Named block tag
                            - type: string
                              pattern: ^0x[a-fA-F0-9]+$
                              description: Block number as hex string
                          description: 'Block parameter: tag name or hex block number'
                          example: latest
                    id:
                      oneOf:
                        - type: integer
                        - type: string
                      example: 1
                      description: >-
                        A client-defined identifier for this request. The server
                        echoes it back unchanged

                        in the response, so you can match responses to requests.
                        This is especially useful

                        when sending multiple calls in a batch. For single
                        requests any value works — use

                        any integer (e.g. 1) or string (e.g. "my-request"). Set
                        to null if you do not need

                        to correlate the response.
                  example:
                    jsonrpc: '2.0'
                    method: eth_call
                    params:
                      - to: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
                        data: >-
                          0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE
                      - latest
                    id: 1
              discriminator:
                propertyName: method
                mapping:
                  eth_blockNumber: '#/components/schemas/EthRpc_eth_blockNumber'
                  eth_getBalance: '#/components/schemas/EthRpc_eth_getBalance'
                  eth_getLogs: '#/components/schemas/EthRpc_eth_getLogs'
                  eth_gasPrice: '#/components/schemas/EthRpc_eth_gasPrice'
                  eth_getTransactionByHash: '#/components/schemas/EthRpc_eth_getTransactionByHash'
                  eth_getTransactionReceipt: '#/components/schemas/EthRpc_eth_getTransactionReceipt'
                  eth_chainId: '#/components/schemas/EthRpc_eth_chainId'
                  eth_maxPriorityFeePerGas: '#/components/schemas/EthRpc_eth_maxPriorityFeePerGas'
                  eth_getTransactionCount: '#/components/schemas/EthRpc_eth_getTransactionCount'
                  eth_getCode: '#/components/schemas/EthRpc_eth_getCode'
                  eth_getStorageAt: '#/components/schemas/EthRpc_eth_getStorageAt'
                  eth_estimateGas: '#/components/schemas/EthRpc_eth_estimateGas'
                  eth_getBlockByNumber: '#/components/schemas/EthRpc_eth_getBlockByNumber'
                  eth_getBlockByHash: '#/components/schemas/EthRpc_eth_getBlockByHash'
                  eth_sendRawTransaction: '#/components/schemas/EthRpc_eth_sendRawTransaction'
                  eth_call: '#/components/schemas/EthRpc_eth_call'
            example:
              jsonrpc: '2.0'
              method: eth_blockNumber
              params: []
              id: 1
      responses:
        '200':
          description: Successful JSON-RPC 2.0 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    example: '2.0'
                  result:
                    description: Method result (type varies by method)
                  error:
                    type: object
                    description: Present only on error
                    properties:
                      code:
                        type: integer
                        example: -32602
                      message:
                        type: string
                        example: Invalid params
                  id:
                    oneOf:
                      - type: integer
                      - type: string
                    example: 1
              examples:
                eth_blockNumber:
                  summary: eth_blockNumber response
                  value:
                    jsonrpc: '2.0'
                    result: '0x1234567'
                    id: 1
                eth_getBalance:
                  summary: eth_getBalance response
                  value:
                    jsonrpc: '2.0'
                    result: '0x0234c8a3397aab58'
                    id: 1
                error:
                  summary: Error response
                  value:
                    jsonrpc: '2.0'
                    error:
                      code: -32602
                      message: Invalid params
                    id: 1
      security:
        - {}
      externalDocs:
        url: https://docs.blockscout.com/devs/apis/rpc/eth-rpc
components:
  parameters:
    ApiKeyQuery:
      name: apikey
      in: query
      required: false
      description: >-
        Optional API key for increased rate limits. Without a key: 5 req/s
        shared. With a key: 10 req/s dedicated.
      schema:
        type: string
        example: your_api_key_here

````