Chainstack Ethereum Node API

Chainstack-managed Ethereum mainnet and testnet JSON-RPC nodes. 40+ documented eth_/net_/web3_ methods plus debug_/trace_ namespaces on archive nodes. Global, Dedicated, Unlimited, and Trader node archetypes supported.

OpenAPI Specification

chainstack-ethereum-node-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chainstack Ethereum Node API
  version: 1.0.0
  description: Chainstack-managed RPC node API for the Ethereum blockchain. Endpoints follow the canonical JSON-RPC over HTTPS
    interface for the network. Authenticate against your Chainstack node's per-node URL (e.g. https://nd-XXX-XXX-XXX.p2pify.com/<key>).
    Merged from the Chainstack Developer Portal per-method fragments at https://github.com/chainstack/dev-portal/tree/main/openapi/ethereum_node_api.
  contact:
    name: Chainstack API Support
    email: [email protected]
  license:
    name: Chainstack Terms
    url: https://chainstack.com/terms-of-service/
servers:
- url: https://{node_id}.p2pify.com/{api_key}
  description: Chainstack-managed node endpoint
  variables:
    node_id:
      default: nd-000-000-000
      description: Your Chainstack node identifier
    api_key:
      default: <api-key>
      description: Per-node access key
tags:
- name: Accounts Info
- name: Blocks Info
- name: Chain Info
- name: Client Info
- name: Debug And Trace
- name: Execute Transactions
- name: Filter Handling
- name: Gas Data
- name: Logs And Events
- name: Transaction Info
paths:
  /eth_getBalance:
    post:
      tags:
      - Accounts Info
      summary: eth_getBalance
      operationId: getBalance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getBalance
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Address
                      description: The address identifier.
                    - type: string
                      title: Block identifier
                      description: The block identifier.
                  default:
                  - '0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990'
                  - pending
      responses:
        '200':
          description: The account balance.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_getCode:
    post:
      tags:
      - Accounts Info
      summary: eth_getCode
      operationId: getCode
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getCode
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Smart contract address
                      description: The address identifier.
                    - type: string
                      title: Block identifier
                      description: The block identifier.
                  default:
                  - '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
                  - latest
      responses:
        '200':
          description: The smart contract code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_getProof:
    post:
      summary: eth_getProof
      operationId: getProof
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                id:
                  type: integer
                method:
                  type: string
                  default: eth_getProof
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  default:
                  - '0x548Da0F6b0AFD0094F735503D44e79a3769980Fd'
                  - - '0xf6e506a9cbe7546a796b187c40609a170ea8073e047129a3cae1c38e6d7559b7'
                  - latest
      responses:
        '200':
          description: The proof information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
      tags:
      - Accounts Info
  /eth_getStorageAt:
    post:
      tags:
      - Accounts Info
      summary: eth_getStorageAt
      operationId: getStorageAt
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                method:
                  type: string
                  default: eth_getStorageAt
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Smart contract address
                      description: The address of the contract to query.
                    - type: string
                      title: Slot index
                      description: The index of the storage position to query.
                    - type: string
                      title: Block ID
                      description: The block number or tag to use as a reference.
                  default:
                  - '0x271682DEB8C4E0901D1a1550aD2e64D568E69909'
                  - '0x0'
                  - latest
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
      responses:
        '200':
          description: The value stored at the specified position.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /eth_getTransactionCount:
    post:
      tags:
      - Accounts Info
      summary: eth_getTransactionCount
      operationId: getTransactionCount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getTransactionCount
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Address
                      description: The address to check
                    - type: string
                      title: Block identifier
                      description: The block identifier
                  default:
                  - '0x690B9A9E9aa1C9dB991C7721a92d351Db4FaC990'
                  - latest
      responses:
        '200':
          description: The address nonce
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_blockNumber:
    post:
      tags:
      - Blocks Info
      summary: eth_blockNumber
      operationId: eth_blockNumber
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_blockNumber
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: The latest block number.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_getBlockByHash:
    post:
      tags:
      - Blocks Info
      summary: eth_getBlockByHash
      operationId: getBlockByHash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  example: 1
                jsonrpc:
                  type: string
                  example: '2.0'
                method:
                  type: string
                  example: eth_getBlockByHash
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Block Hash
                      description: The hash identifying the block.
                    - type: boolean
                      title: Transaction selector
                      description: True for the full transactions, false for only the transaction hashes.
                  default:
                  - '0x633a90413361fe1889d1e5ab4cb222608d224c458b30289b8390496a3fab29d8'
                  - false
      responses:
        '200':
          description: The block information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_getBlockByNumber:
    post:
      tags:
      - Blocks Info
      summary: eth_getBlockByNumber
      operationId: getBlockByNumber
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getBlockByNumber
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Block identifier
                      description: The block number or tag.
                    - type: boolean
                      title: Transaction selector
                      description: True for the full transactions, false for only the transaction hashes.
                  default:
                  - latest
                  - false
      responses:
        '200':
          description: The block information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_getBlockTransactionCountByHash:
    post:
      tags:
      - Blocks Info
      summary: eth_getBlockTransactionCountByHash
      operationId: getBlockTransactionCountByHash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getBlockTransactionCountByHash
                params:
                  type: array
                  items:
                    type: string
                    title: Block hash
                    description: The block hash identifier.
                  default:
                  - '0x633a90413361fe1889d1e5ab4cb222608d224c458b30289b8390496a3fab29d8'
      responses:
        '200':
          description: The block information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /eth_getBlockTransactionCountByNumber:
    post:
      tags:
      - Blocks Info
      summary: eth_getBlockTransactionCountByNumber
      operationId: getBlockTransactionCountByNumber
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_getBlockTransactionCountByNumber
                params:
                  type: array
                  items:
                    type: string
                    title: Block identifier
                    description: The block number or tag.
                  default:
                  - latest
      responses:
        '200':
          description: The block transaction count information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /eth_newBlockFilter:
    post:
      summary: eth_newBlockFilter
      operationId: newBlockFilter
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_newBlockFilter
                params:
                  type: array
                  default: []
                id:
                  type: integer
                  default: 1
      responses:
        '200':
          description: The new filter ID.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: string
      tags:
      - Blocks Info
  /eth_chainId:
    post:
      tags:
      - Chain Info
      summary: eth_chainId
      operationId: getChainId
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_chainId
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: The network Chain ID
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /eth_syncing:
    post:
      tags:
      - Chain Info
      summary: Eth_Syncing
      operationId: syncing
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: eth_syncing
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Syncing information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /net_listening:
    post:
      tags:
      - Client Info
      summary: Net_Listening
      operationId: listening
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: net_listening
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: The boolean value that indicates whether or not a node is currently actively seeking peer connections.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /net_peerCount:
    post:
      tags:
      - Client Info
      summary: net_peerCount
      operationId: peerCount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: net_peerCount
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: The number of peers connected to the client.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /web3_clientVersion:
    post:
      tags:
      - Client Info
      summary: web3_clientVersion
      operationId: clientVersion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: web3_clientVersion
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: The client running on this node.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /custom_js_tracer:
    post:
      tags:
      - Debug And Trace
      summary: Custom JS tracer
      operationId: traceTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: debug_traceTransaction
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Transaction hash
                      description: The hash of the transaction to trace.
                    - type: object
                      title: The JS custom tracer object
                  default:
                  - '0x1e60e4b78c1097d01226dca6dad808f1de05efd705670a28ae8d57171c91d4aa'
                  - tracer: '{gasUsed: [], step: function(log) { this.gasUsed.push(log.getGas()); }, result: function() {
                      return this.gasUsed; }, fault: function() {}}'
      responses:
        '200':
          description: The transaction's trace
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /debug_traceBlockByHash:
    post:
      tags:
      - Debug And Trace
      summary: debug_traceBlockByHash
      operationId: traceBlockByHash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: debug_traceBlockByHash
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Block Hash
                      description: The block hash.
                    - type: object
                      title: Tracer type
                      properties:
                        tracer:
                          type: string
                      description: The type of tracer.
                  default:
                  - '0x66103840578be3bc9c865e0961c4a4de31b5df7a45dcd13ffe2679ff9c7315d8'
                  - tracer: 4byteTracer
      responses:
        '200':
          description: The block traces.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /debug_traceBlockByNumber:
    post:
      tags:
      - Debug And Trace
      summary: debug_traceBlockByNumber
      operationId: traceBlockByNumber
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: debug_traceBlockByNumber
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Block identifier
                      description: The block hash.
                    - type: object
                      title: Tracer type
                      properties:
                        tracer:
                          type: string
                      description: The type of tracer.
                  default:
                  - latest
                  - tracer: callTracer
      responses:
        '200':
          description: The block traces.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /debug_traceCall:
    post:
      tags:
      - Debug And Trace
      summary: debug_traceCall
      operationId: traceCall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: debug_traceCall
                params:
                  type: array
                  items:
                    anyOf:
                    - type: object
                      properties:
                        from:
                          type: string
                          default: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                        to:
                          type: string
                          default: '0x0000000000a39bb272e79075ade125fd351887ac'
                        gas:
                          type: string
                          default: '0x1E9EF'
                        gasPrice:
                          type: string
                          default: '0xBD32B2ABC'
                        data:
                          type: string
                          default: '0xd0e30db0'
                    - type: string
                      default: latest
                    - type: object
                      properties:
                        tracer:
                          type: string
                          default: callTracer
                  default:
                  - from: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                    to: '0x0000000000a39bb272e79075ade125fd351887ac'
                    gas: '0x1E9EF'
                    gasPrice: '0xBD32B2ABC'
                    data: '0xd0e30db0'
                  - latest
                  - tracer: callTracer
      responses:
        '200':
          description: The result of the debug trace call
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /debug_traceTransaction:
    post:
      tags:
      - Debug And Trace
      summary: debug_traceTransaction
      operationId: traceTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: debug_traceTransaction
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Transaction hash
                      description: The hash of the transaction to trace.
                    - type: object
                      title: Tracing options
                  default:
                  - '0x4fc2005859dccab5d9c73c543f533899fe50e25e8d6365c9c335f267d6d12541'
                  - tracer: unigramTracer
      responses:
        '200':
          description: The transaction's trace.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /trace_block:
    post:
      tags:
      - Debug And Trace
      summary: Trace_Block
      operationId: trace_block
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: trace_block
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Block identifier
                      description: The block number or tag.
                  default:
                  - latest
      responses:
        '200':
          description: The block's trace.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /trace_transaction:
    post:
      tags:
      - Debug And Trace
      summary: Trace_Transaction
      operationId: trace_transaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: trace_transaction
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      title: Transaction hash
                      description: The hash of the transaction to trace.
                  default:
                  - '0x4fc2005859dccab5d9c73c543f533899fe50e25e8d6365c9c335f267d6d12541'
      responses:
        '200':
          description: The transaction's trace.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /eth_call:
    post:
      tags:
      - Execute Transactions
      summary: Eth_Call
      operationId: ethCall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
 

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chainstack/refs/heads/main/openapi/chainstack-ethereum-node-api-openapi.yml