Skip to main content
Our pricing is simple: 1 RU per full request, 2 RUs per archive. For which EVM methods are full vs archive, see Request units — EVM methods affected by block age. Stable is an EVM-compatible layer 1. Chain ID is 988. Chainstack nodes run the stabled client, which is built on the Cosmos SDK and serves an Ethereum-compatible JSON-RPC surface on top of it. The availability below is verified against Chainstack Stable nodes.

The trace namespace is not served

Stable serves debug_* but not trace_*. All nine Parity-style trace methods return -32601: trace_block, trace_transaction, trace_call, trace_callMany, trace_filter, trace_get, trace_rawTransaction, trace_replayBlockTransactions, and trace_replayTransaction.If you are porting code from Ethereum, Arc, or World Chain, swap the calls before you deploy:
rpc_modules is available on Stable and reports the served namespaces accurately: debug, eth, net, rpc, txpool, and web3. The available tracing methods are debug_traceTransaction, debug_traceBlockByNumber, debug_traceBlockByHash, and debug_traceCall, all of which need a paid plan — see Debug and trace APIs. The native tracers callTracer, prestateTracer, 4byteTracer, and noopTracer are enabled; flatCallTracer and muxTracer are not — see Available native tracers.

Pending transactions are accepted but never delivered

The txpool_* methods respond on Stable, so txpool_status, txpool_content, txpool_contentFrom, and txpool_inspect all return successfully. They always report an empty pool. Across 30 samples taken every 4 seconds over two minutes, txpool_status returned pending: 0x0, queued: 0x0 every time, while 52 transactions confirmed in new blocks over the same window. The pool is not exposed through the EVM JSON-RPC layer. eth_newPendingTransactionFilter and eth_subscribe("newPendingTransactions") both hand back an ID and then deliver nothing. Do not build a pending-transaction feed on Stable. See What gives you mempool access.

Filters on a load-balanced endpoint

A Global Node endpoint is load balanced across backends, and a filter created by eth_newFilter or eth_newBlockFilter lives on the single backend that created it. A follow-up eth_getFilterChanges that lands on a different backend returns -32000 filter not found. Poll with eth_getLogs over an explicit block range instead, or use a WSS subscription, which holds one connection to one backend for its lifetime.

Cosmos SDK behavior to expect

The Cosmos SDK foundation shows through in three places:
  • eth_getProof returns a Cosmos IAVL proof, not an Ethereum Merkle-Patricia proof, so it is not a drop-in for Ethereum state-proof verification. It also needs an explicit block number — passing latest returns -32000 proof queries at height <= 2 are not supported.
  • debug_printBlock and debug_intermediateRoots return -32000 profiling disabled in the debug namespace.
  • eth_createAccessList returns -32603 method handler crashed for every request shape tested. Since Stable charges a flat base fee, an access list buys you nothing here anyway.
eth_simulateV1 is not implemented. eth_blobBaseFee is not either — Stable takes no blob transactions.

Block time and archive billing

Stable produces a block roughly every 0.7 seconds. The standard EVM rule — 127 or more blocks behind the tip bills as archive — therefore covers only about 90 seconds of history, against roughly 25 minutes on Ethereum. On Stable, expect most historical queries to bill as archive.

Method availability

Last modified on August 5, 2026