We are upgrading our Ethereum Sepolia infrastructure to Geth v1.17.6 and Erigon v3.7.0 on 2026-09-30. Both releases include required support for the Amsterdam (Glamsterdam) hard fork, scheduled on Sepolia for October 6, 2026. Geth v1.17.6 delivers performance improvements to block processing and initial sync. Erigon v3.7.0 brings broad RPC performance improvements, including faster eth_getLogs, eth_feeHistory, and eth_getProof responses, along with improved RPC correctness at the chain tip and closer alignment with Geth behavior.
Brief interruptions to RPC availability may occur.
RPC Changes (Geth): - eth_getLogs — Now rejects ranges where toBlock is before fromBlock; requests with invalid block ranges will return an error. - eth_getHeaderByNumber — Returns null for pending and unresolvable tags instead of attempting resolution. - eth_simulateV1 — Post-merge difficulty overrides are now treated as no-op; difficulty parameters no longer affect simulation outcomes. - eth_createAccessList — Removed per-authorization gas guard; gas accounting behavior has been simplified. - debug_traceCall — Block parameter is now optional; omitting it will use the latest block by default.
RPC Changes (Erigon): - All methods — A null value for a required positional argument now returns error -32602 instead of silently defaulting to zero, matching Geth. - eth_call, eth_createAccessList, eth_simulateV1, eth_getProof, debug tracing — Requests using the pending block tag are rejected where matching state is unavailable; use latest or an explicit block number. - eth_call, eth_estimateGas, eth_simulateV1, eth_createAccessList — Access lists are rejected before Berlin and blob hashes before Cancun; eth_createAccessList also rejects pre-Berlin blocks. - eth_getFilterLogs — Now queries the filter's stored criteria without draining eth_getFilterChanges or renewing the filter lifetime. Log filters and subscriptions with more than four topic positions return -32602. - eth_getFilterChanges, eth_subscribe("logs"), erigon_getLogsByHash — Logs now include blockTimestamp, matching eth_getLogs. - erigon_getLogs, erigon_getLatestLogs — The timestamp field has been renamed to blockTimestamp. - debug_traceTransaction, debug_traceBlock, debug_traceCallMany (callTracer with withLog) — Log indices are now block-wide for transaction and block traces, and bundle-wide for debug_traceCallMany, instead of transaction-local. - callTracer — Omits to for failed CREATE/CREATE2 calls instead of returning the zero address, matching Geth. - eth_getHeaderByHash, eth_getHeaderByNumber — New header-only query methods in the eth namespace. - eth_estimateGas — State overrides now apply to balance and code checks as well as execution; blob funds are reserved before calculating gas allowance, matching Geth. - eth_call — No longer charges the blob base fee when blob fields are supplied without a nonzero blob fee cap. - trace_callMany — Preserves earlier simulated calls' state regardless of trace type and no longer reads changes from the next block. - eth_sendRawTransaction — EIP-7702 delegated senders are limited to one in-flight transaction and cannot submit nonce-gapped transactions; same-nonce replacement remains supported. - eth_syncing, eth_subscribe("syncing") — Now report sync-state changes over WebSocket and show snapshot download progress.