Thesettlementlayerforthemachineeconomy.

Developers

Standard Ethereum JSON-RPC on chain ID 125

Node EVM JSON-RPC namespaces

Nine namespaces over HTTP, four over WebSocket, and unimplemented methods that fail the same way every time.

Point Foundry, Hardhat, ethers or viem at port 8545 and use the eth, net, web3, txpool and debug methods you already know. Subscribe to newHeads and logs over WebSocket on 8546. Eleven registered methods return error -32000 with a fixed message, so a method the chain does not serve fails predictably instead of looking like a missing endpoint. Published block-range and log limits let you size indexer queries before a rejection. The legacy pax_* methods are deprecated.

What it does

A Paxeer chain node serves the ordinary Ethereum JSON-RPC, which is what lets standard EVM tooling work against chain ID 125. Over HTTP it registers nine namespaces: eth, pax, pax2, net, web3, txpool, debug, echo and test (only when explicitly enabled on a non-live chain id). Over WebSocket it registers four: echo, eth, net and web3. Eleven methods are registered but return a stable JSON-RPC error -32000 instead of a result, so clients get a documented failure rather than "method not found" (-32601). The pax_* and pax2_* namespaces, which also see Cosmos transactions carrying synthetic EVM receipts, are deprecated and gated by an operator allowlist.

Key capabilities

  • Standard eth, net, web3, txpool and debug methods on HTTP port 8545 by default.
  • WebSocket on port 8546 with eth_subscribe for newHeads and logs.
  • Eleven methods error with code -32000 and a fixed message, each with an integration fixture.
  • debug_trace* replays historical execution, including the real error and exact gas used.
  • Legacy pax_* and pax2_* methods read EVM plus Cosmos transactions, per-method allowlist.
  • Non-standard helpers: eth_estimateGasAfterCalls, eth_getNonce, eth_getVMError, debug_traceStateAccess.

Who it's for

EVM developers and node operators pointing Foundry, Hardhat, ethers or viem at chain ID 125.

Why it matters

Tooling that speaks Ethereum JSON-RPC works without a custom client, and the methods the chain does not implement fail the same predictable way every time instead of looking like a missing endpoint. Published block-range and log limits let indexers size their queries before they hit a rejection.

Differentiators

Methods the chain will not serve stay registered and return -32000 with a stable message, each covered by a dedicated not-supported.iox fixture under integration_test/evm_module/rpc_io_test/testdata/<method>/. A blocked legacy method returns -32601 with data set to "legacy_pax_deprecated" at HTTP 200, and a forwarded one carries a Pax-Legacy-RPC-Deprecation response header.

Outcomes

  • Run existing EVM tooling against the node with no custom client
  • Get error -32000 with a stable message for methods the chain declines
  • Size log queries to the 2,000-block range and 10,000-log caps

Technical notes

  • WebSocket carries no pax, pax2, debug, txpool or filter API. Subscription capacity is fixed at 100 and the WebSocket message read limit is 10 MiB.
  • Registered but erroring with -32000: eth_blobBaseFee, eth_syncing, eth_newPendingTransactionFilter, debug_getRawHeader, debug_getRawBlock, debug_getRawReceipts, debug_getRawTransaction, plus eth_accounts, eth_sign, eth_signTransaction and eth_sendTransaction. The last four work only under enable_unsafe_keyring_rpc, which the node refuses to start with on a live chain id, so on a live chain all eleven error.
  • Absent by design: uncle and trie methods, eth_mining, eth_hashrate, EIP-4844 blob transactions and any trace_ namespace. pending is accepted and treated as latest. txpool offers content only.
  • Log queries are capped at a 2,000-block range and 10,000 returned logs by default, and queries spanning more than 100 blocks share a 30-requests-per-second global limit.
  • The 36 pax_* and pax2_* methods are deprecated and gated by [evm].enabled_legacy_pax_apis in app.toml; the generated default enables only pax_getPaxAddress, pax_getEVMAddress and pax_getCosmosTx, and pax2_* is HTTP-only.
curl -s http://localhost:8545 -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_syncing","params":[]}'
# {"jsonrpc":"2.0","id":1,"error":{"code":-32000,
#   "message":"eth_syncing is not supported on Pax EVM RPC"}}

More in Developers

Build on Paxeer.

Give your agent a wallet, set its policy, and settle your first call on LayerX.