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