Monad Monad JSON RPC API API
The Monad JSON RPC API API from Monad — 1 operation(s) for monad json rpc api.
The Monad JSON RPC API API from Monad — 1 operation(s) for monad json rpc api.
openapi: 3.1.0
info:
title: Monad JSON-RPC Monad JSON RPC API API
version: 2026-05
description: 'Ethereum-compatible JSON-RPC API for the Monad blockchain. Mainnet (chain
ID 143, native token MON) is reachable at `https://rpc.monad.xyz`; the
public testnet is reachable at `https://testnet-rpc.monad.xyz`. WebSocket
variants of each endpoint are available via the `wss://` scheme.
All JSON-RPC requests are made by `POST`ing a JSON body to the RPC URL.
Public endpoints are unauthenticated and rate limited (mainnet default is
25 requests per second on `rpc.monad.xyz`).
'
contact:
name: Monad
url: https://docs.monad.xyz
servers:
- url: https://rpc.monad.xyz
description: Monad mainnet (QuickNode public RPC, 25 rps)
- url: https://rpc1.monad.xyz
description: Monad mainnet (Alchemy public RPC, 15 rps; debug_*/trace_* disabled)
- url: https://rpc2.monad.xyz
description: Monad mainnet (Goldsky Edge, 300 per 10s)
- url: https://rpc3.monad.xyz
description: Monad mainnet (Ankr, 300 per 10s; debug_* disabled)
- url: https://testnet-rpc.monad.xyz
description: Monad public testnet
tags:
- name: Monad JSON RPC API
paths:
/:
post:
operationId: jsonRpcCall
summary: JSON-RPC call
description: 'Invoke a JSON-RPC method against the Monad node. Supported methods
include Ethereum-standard `eth_*`, `net_*`, `web3_*`, plus
Monad-specific extensions and `debug_*`/`trace_*` methods (subject to
endpoint-specific availability — Alchemy disables `debug_`/`trace_`,
Ankr disables `debug_`).
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
eth_blockNumber:
summary: Latest block number
value:
jsonrpc: '2.0'
id: 1
method: eth_blockNumber
params: []
eth_chainId:
summary: Chain ID
value:
jsonrpc: '2.0'
id: 1
method: eth_chainId
params: []
eth_getBalance:
summary: Account balance at latest block
value:
jsonrpc: '2.0'
id: 1
method: eth_getBalance
params:
- '0x0000000000000000000000000000000000000000'
- latest
eth_call:
summary: Read-only contract call
value:
jsonrpc: '2.0'
id: 1
method: eth_call
params:
- to: '0x0000000000000000000000000000000000000000'
data: 0x
- latest
eth_getLogs:
summary: Query event logs
value:
jsonrpc: '2.0'
id: 1
method: eth_getLogs
params:
- fromBlock: latest
toBlock: latest
address: '0x0000000000000000000000000000000000000000'
eth_sendRawTransaction:
summary: Submit a signed transaction
value:
jsonrpc: '2.0'
id: 1
method: eth_sendRawTransaction
params:
- 0x...
eth_getTransactionByHash:
summary: Fetch a transaction by hash
value:
jsonrpc: '2.0'
id: 1
method: eth_getTransactionByHash
params:
- '0x0000000000000000000000000000000000000000000000000000000000000000'
eth_getBlockByNumber:
summary: Fetch a block by number
value:
jsonrpc: '2.0'
id: 1
method: eth_getBlockByNumber
params:
- latest
- false
eth_estimateGas:
summary: Estimate gas for a call
value:
jsonrpc: '2.0'
id: 1
method: eth_estimateGas
params:
- to: '0x0000000000000000000000000000000000000000'
data: 0x
eth_feeHistory:
summary: Recent fee history
value:
jsonrpc: '2.0'
id: 1
method: eth_feeHistory
params:
- 4
- latest
- - 25
- 50
- 75
net_version:
summary: Network ID
value:
jsonrpc: '2.0'
id: 1
method: net_version
params: []
web3_clientVersion:
summary: Client version string
value:
jsonrpc: '2.0'
id: 1
method: web3_clientVersion
params: []
debug_traceTransaction:
summary: Trace a transaction (where supported)
value:
jsonrpc: '2.0'
id: 1
method: debug_traceTransaction
params:
- '0x0000000000000000000000000000000000000000000000000000000000000000'
- tracer: callTracer
responses:
'200':
description: JSON-RPC response (success or JSON-RPC error)
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcResponse'
'429':
description: Rate limit exceeded
tags:
- Monad JSON RPC API
components:
schemas:
JsonRpcResponse:
type: object
required:
- jsonrpc
- id
properties:
jsonrpc:
type: string
const: '2.0'
id:
oneOf:
- type: integer
- type: string
- type: 'null'
result: {}
error:
type: object
properties:
code:
type: integer
message:
type: string
data: {}
JsonRpcRequest:
type: object
required:
- jsonrpc
- method
- id
properties:
jsonrpc:
type: string
const: '2.0'
method:
type: string
description: 'Supported methods include `eth_blockNumber`, `eth_chainId`,
`eth_getBalance`, `eth_getCode`, `eth_getStorageAt`,
`eth_getTransactionCount`, `eth_call`, `eth_estimateGas`,
`eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`,
`eth_getBlockByHash`, `eth_getBlockByNumber`,
`eth_getBlockReceipts`, `eth_getTransactionByHash`,
`eth_getTransactionReceipt`, `eth_getLogs`,
`eth_sendRawTransaction`, `eth_sendRawTransactionSync`,
`eth_createAccessList`, `net_version`, `web3_clientVersion`,
`debug_traceTransaction`, `debug_traceCall`,
`debug_traceBlockByHash`, `txpool_statusByAddress`,
`txpool_statusByHash`, and `admin_ethCallStatistics`.
'
params:
type: array
items: {}
id:
oneOf:
- type: integer
- type: string