Releases: NethermindEth/nethermind
v1.36.2
Release Notes
Note
This release is only required for Gnosis Chain node operators. All other networks are unaffected.
Overview
This release enables the Osaka hard fork on the Gnosis Chain.
Fork Details
- Epoch: 1714688
- Timestamp: 1776168380 Tue Apr 14 2026 12:06:20 UTC
What's Changed
- Gnosis Osaka by @Marchhill in #10906
Full Changelog
Build signatures
The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E
v1.36.1
Release Notes
Note
This release is only required for Chiado testnet (Gnosis Chain) node operators. All other networks are unaffected.
Overview
This patch release enables the Osaka hard fork on the Chiado testnet, allowing operators and developers to test Osaka fork behavior on Chiado before Gnosis mainnet activation.
Fork Details
- Slot: 21651456
- Timestamp: 1773653580 (March 16, 2026 09:33:00 UTC)
What's Changed
- Enable Osaka on Chiado by @Marchhill in #10727
Full Changelog
v1.37.0-alpha
Release notes
Important
This is an alpha pre-release. It is intended for testing and early feedback only. Some features may be incomplete, unstable, or subject to change before the final 1.37.0 release. Do not run this in production.
Breaking changes
eth66 and eth67 protocol support dropped; eth69 added as default
The deprecated eth/66 and eth/67 devp2p protocol versions have been removed. eth/69 is now enabled as a default protocol. Peers that only support eth66/eth67 will no longer be able to connect. (#9938)
Highlights
Performance
- Optimized transaction processing via encoded-tx trie root and fast block re-encode (#10435)
KeccakCacheoptimized; public-key-to-address recovery now cached (#10391, #10003)SeqlockCacheadded for hot-path caching (#10415)- Improved
FastHashquality (#10082) - EVM:
EXPstays inUInt256domain (#10060),MODshort-circuits on zero (#10061), skip cache for identity precompile (#10366) - Pruning: default cache +512MB (#10247), skip GC during pruning (#10230), inline prunes (#10112), schedule largest storage changes first (#10236)
- JSON requests parsed in chunks (#10207), hex parsing optimized (#10389),
eth_gasPricekth algorithm (#10100) - Numerous allocation reductions across
RetryCache, nibble keys,ConcurrentDict,CREATE/EOFCREATE,DbOnTheRocksiterators,ColumnDb.MultiGet, and more
State management & storage
- World state backend refactor enabling pluggable storage backends (#9089)
- RocksDB snapshot support including column DB snapshots (#10080, #10262)
- Discv5 nodes moved to a separate database (#10027)
EVM extensibility
- Policy-based gas tracking in the VM for custom gas metering (#9846)
- External tracer registration and VM inheritance (#10228)
- Extensible block processing statistics and metrics (#10420, #10429, #10076)
RPC & correctness
eth_estimateGasfurther adjusted for correctness (#10559)eth_getBlockByNumberenforces canonical block retrieval (#10024)eth_getLogsperformance improved (#9923)engine_getBlobsV3added (#9942)engine_getPayloadV4adapted for Optimism (#10328)debug_calls support overriding block fields (#10405)- Hardened RPC transaction validations (#10395)
Networking
- Faster protocol handshake parsing; Ethrex added as recognized client (#9935)
- Discovery v5 optimized (#10081)
What's Changed
- Disable publishing to Downloads by @stdevMac in #9910
- Fix hive getLogs by @deffrian in #9889
- fix: remove duplicate gRPC host validation in GrpcClient by @VolodymyrBg in #9922
- Move ExecutionEnvironment to Rentable sealed class by @LukaszRozmej in #9916
- fix: align BlockHashes dictionary to use nullable Hash256 by @aso20455 in #9900
- Only pool pure Transaction objects, not subclasses by @tanishqjasoria in #9884
- Adjust JOC testnet Bootnodes according to recent changes by @anhnhx131 in #9940
- fix: Remove redundant BlockHeader field reassignments in StatelessExecution by @anim001k in #9928
- test: add Eip2565Transition check for posdao chain spec by @PivasDesant in #9920
- Fixes #9606: DebugTracerTests thread synchronization issue by @igladun in #9875
- Faster protocol parsing, add Ethrex by @benaadams in #9935
- Precompiles names fix by @svlachakis in #9944
- Update packages by @rubo in #9907
- Fix hanging scenario if persisted node not able to be pruned by @asdacap in #9931
- Separate wrong nonce errors by @flcl42 in #9941
- Add engine_getBlobsV3 by @flcl42 in #9942
- fix: only touch coinbase after successful transaction in state tests by @bshastry in #9865
- Gnosis Balancer permanent changes by @Marchhill in #9946
- Sign release builds by @rubo in #9937
- Increase default rlp collection limit to 4MB by @LukaszRozmej in #9957
- Fix/limit get proof by @LukaszRozmej in #9967
- feat(merkle): remove unused RootOfNull to avoid dead code and startup allocation by @Forostovec in #9898
- Fix/rlp decode array checks by @LukaszRozmej in #9968
- fix: dispose IEraStore when EraImporter.Import fails early by @phrwlk in #9978
- Remove rpc from hive workflow by @deffrian in #9971
- Elevate access for ABI decode override more easily by @damian-orzechowski in #9977
- Run all tests on master by @deffrian in #9979
- Remove parsing Uint256 from statics by @LukaszRozmej in #9980
- perf: Remove redundant ToArray() allocation in TrieStore warning log by @0xxFloki in #9969
- Optimise MemDb for ZK by @LukaszRozmej in #9952
- feat(evm): generify VirtualMachine with policy-based gas tracking by @AnkushinDaniil in #9846
- refactor: Remove redundant try-catch in SszProperty.StaticLength by @Aleksandr1732 in #9976
- fix: correct NSubstitute argument types in AuraWithdrawalProcessorTests by @hawkadrian in #9966
- perf: avoid LINQ allocations in GetStorageRangesMessageSerializer by @VolodymyrBg in #9951
- refactor: cache blob and proof counts in BlobProofsManagerV1 by @marukai67 in #9983
- fix: replace unused mock logger with LimboTraceLogger in EnrDiscoveryTests by @CreeptoGengar in #9993
- fix: replace empty exception with informative BlockchainException in ExtractSigners by @mattvaux in #9986
- perf(tests): Remove redundant ToList() calls in PatriciaTreeBulkSetterTests by @0xxFloki in #9981
- Use correct HardwareAcceleration checks for Vector by @benaadams in #10007
- Optimize ColumnDb MultiGet allocations by @0xxFloki in #9908
- fix: correct type name in TimeoutDecoder error message by @reallesee in #9948
- perf: reduce allocations in TypeExtensions by @0xxFloki in #9994
- refactor(trie): remove redundant condition check in IsValidWithOneNodeLess by @0xlupin in #9982
- fix: return correct count when no peer was dropped in DropWorstPeer by @Fallengirl in #10001
- Consider type boundaries by @flcl42 in #10000
- Taiko Shasta Changes - II by @dipkakwani in #9998
- Set release target commit explicitly by @rubo in #10009
- Fix/json converters exception type by @Galoretka in #9984
- refactor(tests): Remove unused variables in Enode exception tests by @marukai67 in #9991
- test: replace Task.Delay with After() in ContractDataStoreTests by @forkfury in #9985
- fix: delegate raw converters read to base converters by @ANtutov in #10006
- fix: remove duplicate HasSignedRecently checks in sealer clique by @Bashmunta in #10011
- Make Nethermind UI SSE endpoint relative by @rubo in #10008
- fix: use IHttpClient from DI in MergePlugin instead of creating HttpClient directly by @PivasDesant in #9995
- Validate blobs lengths by @flcl42 in #9999
- refactor(AuRa): remove redundant Create override by @kurahin in #10014
- Feature/Worldstate backend by @asdacap in #9089
- fix: use ArgumentNullException for null logManager in EthStatsClient by @PivasDesant in #10018
- fix: correct BlobTxMissingBlobs error message by @eeemmmmmm in #10015
- Change KzgPolynomialCommitments.BlsModulus to new instead of parse by @LukaszRozmej in #10032
- Fix/isStorageEmpty check does not get reflected until after commit by @asdacap in https://git...
v1.36.0
Release notes
This release brings over 416 improvements across 1821 files; focusing on operator ergonomics, and RPC / execution correctness hardening, plus a steady stream of performance improvements. It also includes a couple of intentional breaking changes via the removal of obsolete configs/modules.
Breaking changes
Config migrations removed (obsolete config cleanup)
The old config-migration path was removed as part of an “obsolete config” cleanup (#9435):
Config.IsMiningConfig.StoreReceiptsConfig.ReceiptsMigrationMining.TargetBlockGasLimitMining.MinGasPriceMining.RandomizedBlocksMining.ExtraDataMining.BlocksConfig
Nethermind.Analytics removed
The obsolete Nethermind.Analytics component was removed (#9683)
Highlights
Build & release engineering
.NET 10 migration
This version of Nethermind runs on .NET 10. If you build it from source, you need to update your build configuration accordingly (#9391)
Safer failure mode on database corruption
A node crash path was adjusted from Environment.FailFast to Environment.Exit when encountering DB corruption scenarios, to avoid “hard failfast” behavior (#9365)
Execution, RPC & correctness hardening
estimateGas compatibility adjustments
eth_estimateGas behavior was adjusted to better match Geth response patterns.
What's Changed
- XDC : QuorumCertificate Manager by @Demuirgos in #9294
- Reset code filter per block by @benaadams in #9415
- Update Surge Hoodi Chainspec by @dipkakwani in #9420
- Refactor RPC comparison workflow for clarity and efficiency by @kamilchodola in #9418
- Add timestamp to simulate logs & blob gas & remove total difficulty by @deffrian in #9406
- Remove quick fail when running Hive tests by @deffrian in #9426
- Enable Osaka on Chiado by @Marchhill in #9395
- Add interval for history pruning by @Marchhill in #9424
- Use proper blob proofs version by @flcl42 in #9423
- Update OP Superchain chains by @emlautarom1 in #9422
- Fix excess blob gas by @deffrian in #9429
- Make builds reproducible by @rubo in #9365
- Fix/Era import by @asdacap in #9431
- Fix bulkset edge case by @asdacap in #9430
- Xdc TimeoutCertificateManager - Timeout Certificate Validation by @cicr99 in #9381
- Feature/sorted key value store by @asdacap in #9434
- Remove Config migrations by @LukaszRozmej in #9435
- Fix logs in eth_simulate by @deffrian in #9437
- Rename
Nethermind.Era.TesttoNethermind.Era1.Testby @rubo in #9444 - Update OP Superchain chains by @core-repository-dispatch-app[bot] in #9446
- Fix concurrent tree read by @asdacap in #9447
- Should correctly broadcast light transactions by @LukaszRozmej in #9448
- Set Ethereum mainnet default gaslimit to 60M by @benaadams in #9132
- Adjusting execution reverted code. Fixes #9329 by @mrzeszutko in #9428
- Remove redundant
-lock-file-pathoption by @rubo in #9455 - Kute code quality cleanup by @emlautarom1 in #9317
- Add ChainId to legacy transactions in RPC responses derived from signature by @Copilot in #9453
- Better message when eth_getFilterChanges is out of bounds by @LukaszRozmej in #9451
- Add Blocktest Tracing Support to nethtest Tool by @LukaszRozmej in #9432
- Update Dockerfiles automatically by @rubo in #9445
- Disable IIS assets by @rubo in #9464
- Change Environment.FailFast -> Environment.Exit for db corruption by @LukaszRozmej in #9469
- Fix/hunting flaky tests by @LukaszRozmej in #9470
- Place access list deserialization guards by @LukaszRozmej in #9466
- Adding [CLAUDE.md](http://claude.md/) based on [copilot-instructions.md](http://copilot-instructions.md/) by @mrzeszutko in #9468
- Update Dockerfiles by @github-actions[bot] in #9467
- Fix/more flaky tests by @LukaszRozmej in #9474
- Update packages by @rubo in #9478
- Try fixing leak in ProtocolsManager._sessions by @LukaszRozmej in #9410
- Move Claude instructions by @rubo in #9480
- Update System.CommandLine package by @rubo in #9479
- Use RawTrieStore in StatelessEnv by @asdacap in #9471
- Fix MovePrecompile in eth_simulate by @deffrian in #9452
- Revert "Move Claude instructions (#9480)" by @mrzeszutko in #9482
- Harden RLP limits on allocations by @LukaszRozmej in #9465
- Adjusting estimateGas response to match geth responses for execution … by @mrzeszutko in #9485
- Check bytes left before checking the limit by @LukaszRozmej in #9483
- Fix: do not decompress keys in CompressingDb.GetAllKeys by @phrwlk in #9487
- Fix genesis post processor have no allocations by @asdacap in #9488
- feat: implement proper block validation in BlockchainTestBase to mimic sync manager behavior by @DeVikingMark in #9438
- Fix delegation in eth_simulate by @deffrian in #9490
- Remove passing eth_getBlockByNumber hive tests by @MarekM25 in #9462
- fix: Use correct Docker Hub secrets across workflows by @derrix060 in #9495
- Fix batched trie visitor missed storage by @asdacap in #9496
- Move static/trusted nodes file to the data dir by @rubo in #9477
- Update Dockerfiles by @github-actions[bot] in #9497
- Fix: Blocktest exception handling logic by @LukaszRozmej in #9491
- Update OP Superchain chains by @core-repository-dispatch-app[bot] in #9500
- Improve Hive RPC compat. by @smartprogrammer93 in #9489
- Update send blobs tool by @flcl42 in #9472
- Make AuthorizationListForRpc.JsonConverter public for attribute-based activation by @Galoretka in #9506
- Add CancelAfter to Maintain_correct_pointers_for_beacon_sync_in_archi… by @LukaszRozmej in #9507
- Disable osaka chiado hardfork by @Marchhill in #9486
- Feature/xdc block sealer by @ak88 in #9505
- Use correct Bmi2 intrinsic support check by @benaadams in #9510
- Fix nonce handling in eth_simulate by @deffrian in #9499
- Replace GitHub token by @rubo in #9515
- Fix fast sync settings workflow by @rubo in #9519
- Auto-update fast sync settings by @core-repository-dispatch-app[bot] in #9522
- fix/crypto-random-secure-rng by @sashaodessa in #9513
- Slight logging change by @asdacap in #9520
- Remove overseer tests by @rubo in #9527
- fix: CompositeTxTracer aggregates IsTracingLogs and gates ReportLog correctly by @Forostovec in #9511
- Log index (preparation) by @alexb5dh in #9481
- Persist genesis state after genesis loader to prevent unclean shutdown i...
v1.35.8
Release Notes
Overview
- Optimized
getProofsRPC endpoints for better performance and efficiency. - Added build-time signing of release artifacts to improve release security and authenticity.
Full Changelog
https://github.com/NethermindEth/nethermind/compare/1.35.7…1.35.8
What's Changed
- Fix/limit get proof by @LukaszRozmej in #9967
- Sign release builds by @rubo in #9937
Build signatures
The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E
For verification instructions, see the docs.
v1.35.7
Release notes
Important
This release is intended only for Gnosis Operators. No actions for other chains.
Overview
- Upcoming Balancer Hardfork - Spec (https://github.com/gnosischain/specs/pull/87/files)
- This hard fork aims to recover hacked funds following an exploit that affected Balancer-managed contracts on Gnosis Chain.
- Removes temporary freeze on hackers' accounts.
Full Changelog
https://github.com/NethermindEth/nethermind/compare/1.35.4…1.35.7
v1.35.4
Release notes
Important
Update required for OP Stack operators. It's not needed for other chains.
Overview
This release fixes some issues detected on OP-Stack-based chains after the Jovian fork.
What's Changed
- Fix Jovian fork id by @LukaszRozmej in #9877
Full Changelog
https://github.com/NethermindEth/nethermind/compare/1.35.3…1.35.4
v1.35.3
Release notes
Important
Update required for OP Stack operators ahead of the Jovian fork. It's not needed for other chains.
Overview
This release activates the Jovian hard fork on selected OP-Stack-based chains.
What's Changed
Full Changelog
https://github.com/NethermindEth/nethermind/compare/1.35.2…1.35.3
v1.35.2
Release notes
Important
This release replaces v1.35.1 and is mandatory for all node operators.
It includes the Ethereum Mainnet Fusaka hard fork configuration (Osaka, BPO1, and BPO2 upgrades).
All nodes must upgrade to this version before the Fusaka hard fork activation on December 3, 2025 at 9:49:11 PM to stay in sync.
Overview
This release activates the Ethereum Mainnet Fusaka hard fork, which introduces the Osaka, BPO1, and BPO2 upgrades.
What's Changed
- Mainnet Osaka, BPO1, BPO2 forks by @Marchhill in #9615
Full Changelog
https://github.com/NethermindEth/nethermind/compare/1.35.1…1.35.2
v1.35.1
Caution
This release has block production and sync issues. Use v1.35.2 instead.
Release notes
Important
This release is mandatory for all node operators.
It includes the Ethereum Mainnet Fusaka hard fork (Osaka, BPO1, and BPO2 forks) and critical improvements that ensure network stability and compatibility.
All nodes must upgrade to this version before the Fusaka hard fork activation on December 3, 2025 at 9:49:11 PM to stay in sync.
Overview
This release continues the performance and reliability improvements introduced in v1.35.0 while activating the key Ethereum Mainnet Fusaka hard fork and strengthening node stability across networks.
This update focuses on network readiness and state consistency. It also resolves multiple edge cases affecting trie storage, block range updates, and protocol session handling.
Upgrading to this version ensures seamless operation through the Fusaka hard fork and reduces the risk of shutdowns or state inconsistencies during execution.
What's Changed
- Use correct Bmi2 intrinsic support check by @benaadams in #9510
- Update Dockerfiles by @rubo in #9497
- Fix incorrect
BlockRangeUpdateMessage.EarliestBlockin some edge cases by @LukaszRozmej in #9505 - Try fixing leak in
ProtocolsManager._sessionsby @LukaszRozmej in #9410 - Allow longer state check by @asdacap in #9570
- Fix Arb
TrieExceptionby @asdacap in #9555 - Improve block-related caching by @benaadams in #9571
- Fix batched trie visitor missed storage by @asdacap in #9496
- Place access list deserialization guards by @LukaszRozmej in #9466
- Better message when
eth_getFilterChangesis out of bounds by @LukaszRozmej in #9451 - Harden RLP limits on allocations by @LukaszRozmej in #9465
- Persist genesis state after genesis loader to prevent unclean shutdowns by @asdacap in #9599
- Mainnet Osaka, BPO1, BPO2 forks by @Marchhill in #9615
- Check bytes left before checking the limit by @LukaszRozmej in #9483
- Change RLP limits and add logs by @LukaszRozmej in #9631
Full Changelog:
1.35.0...1.35.1
Signatures
For signatures verification, see Nethermind docs.