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: {}