NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #25 by repository stars
Last release today
22 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
13922 releases · first in 2013
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This is a bug fix release and is recommended for all users. It resolves a regression in snap sync, as well as several security issues.
This is a bug fix release and is recommended for all users. It resolves a regression in snap sync, as well as several security issues.
--metrics.influxdb.interval flag allows changing the metrics reporting interval. (#33767)inspect-trie subcommand that prints information about node counts at all state trie depths (#28892)eth_estimateGas now honors the user-supplied access list (#33849)eth_getStorageValues (#32591)testing_buildBlockV1 (#33656)For a full rundown of the changes please consult the Geth 1.17.1 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go (use "stable" tag).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Specifically, this release fixes CVE-2026-26313 , CVE-2026-26314 , CVE-2026-26315 .
This is a feature release, with all accumulated development from the last 3 months. See below for the highlights.
Note that this release contains multiple critical security fixes, as well as many bug fixes, and is recommended for all users. However, if you are cautious about upgrades, you can also install v1.16.9 which has just the critical security fixes. Specifically, this release fixes CVE-2026-26313, CVE-2026-26314, CVE-2026-26315.
We recommend recreating your p2p node key after installing this update, which you can do by removing the DATADIR/geth/nodekey file before restarting geth. Note this will cause a change in the p2p node ID, which may break static peering setups.
The path-based archive node can now serve proofs (via eth_getProof) for the state of older blocks.
You can configure the block range that supports proving independently from other archive state availability. Specifically, you can use the --history.trienode command-line flag to set the amount of blocks for which tree nodes will be tracked.
This feature is disabled by default. Note that state history cannot easily be recovered once deleted, as it can only be generated by processing blocks. However, you can enable trienode history (and/or state history) at any time to turn a full node into a partial archive node, keeping state from that point in time onwards.
#32727, #32621, #33551, #32981, #33399, #32913, #33303, #33584, #33329, #33681, #33103, #33098, #33515, #32247
Geth now suports the EraE file format, an archival format for post-merge chain history.
OpenTelemetry tracing is now supported by the RPC server, including support for distributed tracing.
We have also added some tracing spans for block processing via the engine API, i.e. engine_newPayload.
#33599, #33452, #33780, #33521
geth version-check subcommand has been removed. This command checked the geth website for signed vulnerability notices, and would tell if updates are necessary (#33498)--miner.maxblobs command-line flag to set a limit on blobs included in built blocks (#33129, #33302)geth --dev mode was fixed (#33146)--rpc.rangelimit flag configures the maximum block range for eth_getLogs (#33163)geth --exitwhensynced will now set the finalized and safe block (#33038)geth --ethstats now reports the newPayload processing time to the stats server (#33395)evm blocktest command can now read filenames from stdin when no path is provided (#32824)OnStateUpdate hook, which is called after all state of a block has been committed. This gives access to the changeset of the block. (#33490)setHead operation now unsets the finalized block, in cases where the rolled-back block range extends before it. (#33486)SignatureValues method of types.Signer now reports an error for invalid signature sizes (#33647)SignTextWithPassphrase now works correctly with all supported hardware wallets (#33138)bitutil.XORBytes function has been deprecated in favor of stdlib package crypto/subtle (#33331)eth_getTransactionByHash now returns the blockTimestamp as part of the transaction object (#33709)eth_simulateV1, eth_getLogs, eth_getStorageAt have been improved to better comply with the execution RPC spec (#33007, #33320, #33282)eth_simulateV1 now selects the correct set of precompiles for the simulated header (#33363)eth_sendTransaction and eth_fillTransaction now default to EIP-1559 (#33058)gasPrice is now retrievable for transaction types 0x3 and 0x4 (#33542)ethclient (#33693, #33242, #33464)gethclient has a new wrapper of the callTracer (#31510)callTracer, reported logs now contain an index field which is the index of the log within the transaction (#33629)setHead operations during sync (#33481)For a full rundown of the changes please consult the Geth 1.17.0 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go (use "stable" tag).This is a security hot-fix release. Specifically, this release fixes CVE-2026-26314 , CVE-2026-26315 .
This is a security hot-fix release. Specifically, this release fixes CVE-2026-26314, CVE-2026-26315.
We recommend recreating your p2p node key after installing this update, which you can do by removing the DATADIR/geth/nodekey file before restarting geth. Note this will cause a change in the p2p node ID, which may break static peering setups.
As with all our previous releases, you can find the:
ethereum/client-go (use "stable" tag).Nothing published for this version
Nothing published for this version
This is a security fix release and is recommended for all users. It resolves two p2p vulnerabilities reported through the Ethereum Foundation bug boun…
This is a security fix release and is recommended for all users. It resolves two p2p
vulnerabilities reported through the Ethereum Foundation bug bounty program.
As with all our previous releases, you can find the:
ethereum/client-go (use "stable" tag).Fix for a cryptographic vulnerability in c-kzg-4844 . This is only exploitable post-Fusaka.
This is a re-roll of v1.16.6, including an important fix in the KZG cryptography library.
This release enables the Fusaka hardfork on Ethereum mainnet.
The Fusaka fork is scheduled to occur at 2025-12-03 21:49:11 UTC.
Please upgrade your node to v1.16.7 in time for the fork.
This release also enables two blob-parameter-only (BPO) upgrades.
These upgrades change protocol parameters to increase the available blob capacity.
2025-12-092026-01-07eth_sendRawTransactionSync which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes. (#32830, #32930, #32929)eth_simulateV1 in ethclient (#32856)debug_traceCall (#33015)geth --genesis flag as an alternative to running geth init genesis.json (#32844)eth_getProof request with the new path-based archive node. (#32907, #32914, #32937)For a full rundown of the changes please consult the Geth 1.16.6 and 1.16.7 release milestones.
As with all our previous releases, you can find the:
ethereum/client-go (use "stable" tag).⚠️ Do not use v1.16.6 for the Fusaka upgrade! Please use v1.16.7, which contains an important security fix. ⚠️
⚠️ Do not use v1.16.6 for the Fusaka upgrade! Please use v1.16.7, which contains an important security fix. ⚠️
This release enables the Fusaka hardfork on Ethereum mainnet
The fork is scheduled to occur at 2025-12-03 21:49:11 UTC.
This release also enables the BPO1 and BPO2 forks for mainnet at 2025-12-09 and 2026-01-07 respectively.
eth_sendRawTransactionSync which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes. (#32830, #32930, #32929)eth_simulateV1 in ethclient (#32856)debug_traceCall (#33015)geth --genesis flag as an alternative to running geth init genesis.json (#32844)eth_getProof request with the new path-based archive node. (#32907, #32914, #32937)For a full rundown of the changes please consult the Geth 1.16.6 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →