Arbitrum JSON-RPC API
Ethereum-compatible JSON-RPC 2.0 endpoint
Ethereum-compatible JSON-RPC 2.0 endpoint
openapi: 3.1.0
info:
title: Arbitrum JSON-RPC API
version: 1.0.0
summary: Best-effort OpenAPI for the public Arbitrum JSON-RPC endpoints.
description: 'Public JSON-RPC endpoints for the Arbitrum One, Arbitrum Nova, and Arbitrum
Sepolia chains. The Arbitrum chains implement the standard Ethereum JSON-RPC
interface (eth_*, net_*, web3_*) and add Arbitrum-specific precompiles and
extended methods (arb_*, arbtrace_*, debug_*).
All requests are POST with a JSON body following the JSON-RPC 2.0 envelope.
Public RPC endpoints do not support WebSockets and IPv6 is not supported.
Sequencer-only endpoints accept only eth_sendRawTransaction and
eth_sendRawTransactionConditional.
This spec is a best-effort generation from public docs. See
https://docs.arbitrum.io/build-decentralized-apps/reference/node-providers
for the source list.
'
contact:
name: Offchain Labs / Arbitrum Foundation
url: https://docs.arbitrum.io/
servers:
- url: https://arb1.arbitrum.io/rpc
description: Arbitrum One mainnet (chain ID 42161)
- url: https://nova.arbitrum.io/rpc
description: Arbitrum Nova mainnet (chain ID 42170)
- url: https://sepolia-rollup.arbitrum.io/rpc
description: Arbitrum Sepolia testnet (chain ID 421614)
security: []
tags:
- name: JSON-RPC
description: Ethereum-compatible JSON-RPC 2.0 endpoint
paths:
/:
post:
tags:
- JSON-RPC
summary: Invoke a JSON-RPC method
description: 'Single entry point for all JSON-RPC calls. The HTTP body is a JSON-RPC 2.0
request object (or a batch array). Common Ethereum methods include
eth_blockNumber, eth_chainId, eth_getBalance, eth_getTransactionByHash,
eth_getTransactionReceipt, eth_call, eth_estimateGas,
eth_sendRawTransaction, eth_getLogs. Arbitrum-specific methods include
arb_getL1Confirmations and various nodeinterface precompile calls.
'
operationId: jsonRpcCall
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/JsonRpcRequest'
- type: array
items:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
blockNumber:
summary: eth_blockNumber
value:
jsonrpc: '2.0'
id: 1
method: eth_blockNumber
params: []
chainId:
summary: eth_chainId
value:
jsonrpc: '2.0'
id: 1
method: eth_chainId
params: []
getBalance:
summary: eth_getBalance
value:
jsonrpc: '2.0'
id: 1
method: eth_getBalance
params:
- '0x0000000000000000000000000000000000000000'
- latest
responses:
'200':
description: JSON-RPC response (or batch)
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/JsonRpcResponse'
- type: array
items:
$ref: '#/components/schemas/JsonRpcResponse'
'400':
description: Malformed JSON-RPC request
'429':
description: Rate limited by the public RPC endpoint
'500':
description: Internal RPC error
components:
schemas:
JsonRpcResponse:
type: object
required:
- jsonrpc
properties:
jsonrpc:
type: string
const: '2.0'
id:
oneOf:
- type: integer
- type: string
- type: 'null'
result: {}
error:
$ref: '#/components/schemas/JsonRpcError'
JsonRpcError:
type: object
required:
- code
- message
properties:
code:
type: integer
message:
type: string
data: {}
JsonRpcRequest:
type: object
required:
- jsonrpc
- method
properties:
jsonrpc:
type: string
const: '2.0'
id:
oneOf:
- type: integer
- type: string
- type: 'null'
method:
type: string
examples:
- eth_blockNumber
- eth_chainId
- eth_getBalance
- eth_call
- eth_sendRawTransaction
params:
type: array
items: {}