Elysium limits
Snapshot 2026-11-08, checked through Triport production (D2). Transaction submission has a separate send budget; read RPS below does not define send RPS. Raw transactions are limited to 128 KB. The DAS products use their own pagination limits, scope elysium:das and their own rate category.
Endpoint and plans: Elysium RPC endpoint.
JSON-RPC batch
JSON-RPC 2.0 batches are accepted. Use a distinct id for each request and correlate responses by id. Do not rely on response-array position or execution order.
Rate accounting: each element of a batch counts as one request against your plan's RPS budget (D2, 2026-11-08: a 5-element batch consumed 5 requests of the elysium_read_rpc budget). A batch larger than the plan's burst capacity is rejected entirely with HTTP 429 rate_limited; on Free (5 RPS, burst capacity 10) a batch of more than 10 elements never succeeds. Keep batches within your plan's burst capacity.
BE1 confirms a node-side maximum of 100 batch items (2026-11-08); D2 could not reach it with a Free key because of the burst capacity above. BE3 limits both each response and the entire batch response to 8 MB (8,388,608 bytes). A batch exceeding that aggregate ceiling returns one -32005 response-size error for the entire response; do not interpret it as a successful partial batch.
Per-element errors stay per element: an element with invalid params returns its own -32602 while the others succeed. A batch that contains a method outside the Elysium method set is rejected entirely with HTTP 403 method_unknown. An empty batch returns -32600.
Batch body:
[
{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]},
{"jsonrpc":"2.0","id":2,"method":"eth_blockNumber","params":[]}
]Correlated batch response measured through Triport on 2026-11-08 (the head number changes between calls):
[
{"jsonrpc":"2.0","id":1,"result":"0x1863d"},
{"jsonrpc":"2.0","id":2,"result":"0x2a224b"}
]eth_getLogs range
BE3 product limits, verified through Triport on 2026-11-08: at most 10,000 blocks per request, counting both endpoints (toBlock - fromBlock + 1). A 10,000-block range succeeded; a 10,001-block range returned -32602 with the message "eth_getLogs is limited to 10000 blocks per request on Elysium; split the range". It is rejected, not silently truncated. A response, including a combined getLogs result, is limited to 8 MB (8,388,608 bytes). Exceeding the response-size ceiling returns -32005; narrow the block range or add address/topics filters. The same size ceiling applies to the entire batch.
Use a bounded fromBlock/toBlock range and address/topics filters. A blockHash selector is an alternative to a range; combining them returns -32602 ("Use blockHash or block range"). Persist the last completed range, split a rejected range, and deduplicate events by (blockHash, transactionHash, logIndex). Do not treat an error as an empty successful range.
RPS by tier
BE5 capacity and tariff snapshot, 2026-11-08. Sustained requests per second:
| Category | Free | Basic | Pro | Business | Enterprise |
|---|---|---|---|---|---|
| Ordinary reads | 5 | 10 | 25 | 40 | 40 |
| eth_getLogs | 1 | 2 | 5 | 10 | 10 |
| eth_sendRawTransaction | 3 | 5 | 30 | 80 | 80 |
| DAS REST: batch list, address history, status | 10 | 25 | 60 | 120 | 120 |
| DAS REST: one batch (/v1/elysium/batches/{seq}) | 2 | 4 | 8 | 15 | 15 |
| DAS batch stream (new connections per second) | — | — | 1 | 2 | 5 |
The Free values were confirmed on 2026-11-08 by the X-Ratelimit-Category / X-Ratelimit-Limit response headers (elysium_read_rpc 5, elysium_read_rpc_heavy 1, elysium_send_tx 3). The DAS rows are the BE12 tariff of 2026-11-08, confirmed on production with a Business key by the same headers (elysium_das 120, elysium_das_batch 15): the DAS index allows up to 3× the ordinary-read RPS of the same plan. A single batch is the heavy DAS request and has its own category, elysium_das_batch. The batch stream is not available on Free and Basic; each PoP accepts at most 200 concurrent streams. The plan gate allows a short burst above the sustained rate: Free has burst capacity 10 for ordinary reads, and 8 requests per second for 2 seconds passed without HTTP 429. Enterprise has finite Elysium limits. These client budgets are not a throughput or availability guarantee. See Rate Limits & Tiers.
Two different 429 answers exist. Your plan limit returns HTTP 429 with the plain body rate_limited. The Elysium node pool at capacity returns HTTP 429 with JSON-RPC -32005 rate limit reached; retry later, even below your plan limit. Back off on both and honor Retry-After. See network errors.
History and finality
BE1 confirms full history including historical state from block 1 on both measured nodes (2026-11-08): block retrieval and eth_getBalance/eth_getCode/eth_call answer at block 1 and sampled historical heights. Through Triport, an individual historical-state read can still return -32000 missing trie node … is not available (D2, 2026-11-08); retry it with backoff. This observation does not establish a settlement-finality guarantee. A complete eth_getProof example was captured at a recent block by D1C on 2026-11-08; it does not establish proof availability at every historical height. Preserve selectors; do not replace safe/finalized/pending with latest to manufacture a successful response.