> For the complete documentation index, see [llms.txt](https://docs.soniclabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soniclabs.com/technology/version-history.md).

# Version History

The following version history documents the Sonic client (the node software that powers the Sonic mainnet) including its virtual machine, database storage, and consensus mechanism.

<table data-full-width="true"><thead><tr><th width="99.26171875">Version</th><th width="135.3671875">End of Development</th><th width="124.578125">Release Date</th><th>Change Logs</th><th>Commits</th></tr></thead><tbody><tr><td>v2.1.6</td><td>Mar 12, 2026</td><td>Mar 12, 2026</td><td><ul><li>Geth dependency updated to v1.16.9. Integrated security patches for CVE-2026-26314 and CVE-2026-26315. </li><li><p><strong>Important:</strong> Recommend recreating p2p node key after install by removing <code>&#x3C;datadir>/p2p/nodekey</code> before restarting. </p><ul><li>Note: this changes the p2p node ID, which may break static peering setups.</li></ul></li></ul></td><td><p></p><ul><li>26dd110c – Update version to v2.1.6 (#714)</li><li>56146a6a – Geth dependency upgrade release 2.1.6 (#666)</li><li>8a0a07c4 – Update license (#651)</li><li>6897a5f6 – Update version to v2.1.6-rc.1 (#641)</li></ul></td></tr><tr><td>v2.1.5</td><td>Feb 5, 2026</td><td>Feb 5, 2026</td><td><ul><li>Added optional event throttling for validator nodes with low stake to reduce network resource usage. </li><li>Extended <code>eth_subscribe</code> RPC to optionally return full transaction details.</li></ul></td><td><p></p><ul><li>65a5ef18 – Update version to v2.1.5 (#640)</li><li>4c1ac99a – Rename event throttler flag (#633)</li><li>5b8f9d08 – Add metrics to monitor skipping event emission (#629)</li><li>65a11bbd – Integrate event throttler (#626)</li><li>c5f7b2ca – Add event throttler simulation (#623)</li><li>69402690 – Add event throttling object (#622)</li><li>58d24883 – Extend event throttler attendance testing (#621)</li><li>113be16f – Event emission throttling: Introduce attendance list (#620)</li><li>fce3382a – Add dominant set computation for event throttling (#617)</li><li>c3f8ce88 – Update event throttler config (#618)</li><li>4dba6a77 – Move emitter config to its own package (#615)</li><li>63ae97b1 – Event throttling config (#610)</li><li>41764525 – Add integration test for network progress with validator stake changes (#587)</li><li>cdc44bef – Add option to define validator stakes in integration testing (#568)</li><li>c33999e4 – eth_subscribe: Add option to return full transactions (#589) (#613)</li><li>0b0ed7d8 – Update version to v2.1.5-rc.1 development ready (#606)</li></ul></td></tr><tr><td>v2.1.4</td><td>Nov 25, 2025</td><td>Nov 25, 2025</td><td><ul><li>Fix log timestamps serialization (RPC). </li><li>Fix consistency of log transaction indices when querying logs using block hash (RPC). </li><li>Transaction Pool rejects transactions from non-EOA accounts.</li></ul></td><td><p></p><ul><li>d71420e9 – Update version to v2.1.4 (#602)</li><li>7b0077b2 – Add missing transaction indexing in log retrieval by hash (#578)</li><li>413c9133 – Add checks to txpool (#581)</li><li>b4f7090f – Fix logs blocktimestamp JSON encoding (#573)</li><li>f4ae9adf – Update version to v2.1.4-rc.1 development ready (#580)</li></ul></td></tr><tr><td>v2.1.3</td><td>Nov 5, 2025</td><td>Nov 5, 2025</td><td><ul><li>Reduce overhead from handling sponsored transactions in the transaction pool under heavy load. </li><li>Reuse transaction sender to reduce signature overheads. </li><li>Mitigation for P2P events broadcasting lag stalling block processing.</li></ul></td><td><p></p><ul><li>da095a25 – Update version to v2.1.3 (#579)</li><li>50ae700b – Dockerize Jenkins pipeline (#459) (#575)</li><li>2d8a2f1b – Increase default EventsBufferLimit to avoid sync lags (#555)</li><li>6a50a595 – Signers cleanup (#550)</li><li>ce5321bc – Cache results of isSubsidised (#543)</li><li>657d0441 – Update version to v2.1.3-rc.1 development ready (#548)</li></ul></td></tr><tr><td>v2.1.2</td><td>Oct 8, 2025</td><td>Oct 8, 2025</td><td><ul><li>Added Gas Subsidy support. </li><li>Fixed backward compatibility of gas limit updates.</li></ul></td><td><p></p><ul><li>7f4da1db – Update version to v2.1.2 (#547)</li><li>3b848aa5 – Fix backward compatibility of gas limit updates (#522)</li><li>163cacd0 – Add integration test: Subsidies funds deducted after sponsored tx (#535)</li><li>06162836 – Filter transactions with lost sponsorship in reorg (#534)</li><li>308646cb – Integrate getGasConfig call into Subsidies Registry contract (#523)</li><li>471fd56c – Validate sponsored transactions when added to transaction pool (#524)</li><li>0118bafe – Enforce inclusion of sponsored transactions into Pending set (#518)</li><li>f55eb775 – Deploy gas subsidies registry contract when upgrades enabled (#517)</li><li>6b3ce61c – Fix TransactionIndices in receipts if transactions introduced by state processor (#516)</li><li>a96cc9f7 – Add support for sponsored transactions (#514)</li><li>7d314e26 – Add GasSubsidies flag to tx_pool transaction validation (#515)</li><li>56fd50c5 – Introduce transaction processing context (#513)</li><li>66391d4d – Add fee overflow check to IsCovered utility (#512)</li><li>3e437b31 – Update subsidies registry interface (#507)</li><li>f8a26e11 – Factor out transaction processing from StateProcessor (#497)</li><li>6c28c32d – Introduce feature flag for gas subsidies (#481)</li><li>77d5e2be – Upgrade SFC version used in fake nets (#482)</li></ul></td></tr><tr><td>v2.1.1</td><td>Sep 23, 2025</td><td>Sep 23, 2025</td><td><ul><li>Fix empty logs bloom (RPC). Add CreateTransaction helper function. </li><li>Set chain ID for internal transactions in RPC. </li><li>Remove deprecated default command arguments. </li><li>Improve unit and integration tests.</li></ul></td><td><p></p><ul><li>4f798e29 – Update version to v2.1.1</li><li>0610ae03 – Increment release candidate version (#471)</li><li>98616c44 – RPC api: Fix empty logs bloom (#464)</li><li>3b8ea018 – Wait for processed transaction to leave tx pool (#463)</li><li>b9bc7173 – Add CreateTransaction helper function (#461)</li><li>9a6fb277 – Set chain ID for internal transaction in RPC (#454)</li><li>ec813b69 – Remove deprecated default command arguments (#442)</li><li>b2734b74 – Migrate gossip handler fuzzer (#441)</li><li>a26e5715 – Single proposer pkg (#436)</li><li>c48e3469 – Add integration test for RPC calls at different block heights (#428)</li><li>cb174be7 – Update version to v2.1.1-rc.1 (#450)</li></ul></td></tr><tr><td>v2.1.0</td><td>Aug 20, 2025</td><td>Aug 20, 2025</td><td><ul><li>Ethereum Prague upgrade support: EIP-7702 account abstraction, EIP-2537 BLS precompiles, EIP-2935 historic block hashes, EIP-7623 increased calldata gas cost. </li><li>Input validation for network rule updates. Updated go-ethereum to geth 1.16. </li><li>Legacy code quality improvements. </li><li>Protocol security enhancements. </li><li>Bug fixes.</li></ul></td><td><p></p><ul><li>8c95f202 – Update version on v2.1 branch to v2.1.0 (#447)</li><li>9ba90a92 – Add integration test for type 4 transaction (set EOA code, EIP-7702) (#72)</li><li>1119b125 – Implement EIP-7702 support in RPC calls (#81)</li><li>c37a7dc9 – Update transaction validation for Prague revision (#56)</li><li>7ce78679 – SetCodeTx: changes to transaction pool (#74)</li><li>83895ddc – Modify RPC callbacks to execute EIP-2935 History Storage Contract (#146)</li><li>bc15eca9 – EIP-2935: Implement processor routine to call history storage contract (#133)</li><li>9d020e70 – Add feature changes and test for EIP-7623 (#110)</li><li>4e353186 – Add implementation of a BLS library (#29)</li><li>93ee70c3 – Update ChainConfig to enable Prague fork (#44)</li><li>f523066a – Update geth dependency to version 1.16.0 (#349)</li><li>73f8bf9a – Update geth dependency to 1.15.11 (#321)</li><li>b263f56d – Network rule validation (#142)</li><li>9aa56547 – Integrate single-proposer protocol in emitter and block processor (#232)</li><li>6e812476 – Introduce brio hardfork (#292)</li><li>f9d6754b – Remove FeatureSet in favour of Upgrades (#238)</li><li>07ee5460 – Add allegro hard-fork flag (#20)</li><li>484ae8ce – Add license to Sonic files (#334)</li><li>47639163 – Replace outdated Fantom mentions by Sonic (#327)</li><li>ba4f4a93 – Rename Opera mentions to Sonic (#351)</li></ul></td></tr><tr><td>v2.0.7</td><td>June 26, 2025</td><td>TBA</td><td><br>• Improved error handling in <code>debug_traceBlock</code> — now uses error field and supports empty blob cases</td><td><ul><li>252c9ee0 – Fix error handling in debug_traceBlock (#307)</li></ul></td></tr><tr><td>v2.0.6</td><td>May 6, 2025</td><td>May 26, 2025</td><td><ul><li>Synchronized access to cached block hashes to prevent rare incorrect RPC returns</li><li>Added <code>NoArchiveError</code> check before sending block notifications</li><li>Updated Tosca dependency</li></ul></td><td><ul><li>e44b0188 – Update Tosca dependency</li><li>00c1f2af – Synchronize cached block hash access (#209)</li><li>124dc66e – Add <code>NoArchiveError</code> check for notifications (#214)</li><li>a4e31329 – Update to v2.0.6-dev (#217)</li><li>4551d1fc – Prepare v2.0.5 release (#201)</li></ul><p><br></p></td></tr><tr><td>v2.0.5</td><td>April 11, 2025</td><td>April 28, 2025</td><td><ul><li>Verified archive block height before sending subscriber notifications</li><li>Switched <code>eth_call</code> simulation to GETH for large code handling in state override</li><li>Fixed test infrastructure and updated Go to v1.24</li></ul></td><td><ul><li>ea9e3631 – Add missing dependency</li><li>2d9284a8 – Use GETH for eth_call with large code (#189)</li><li>135b69cc – Fix BlockInArchiveTest infra &#x26; Go 1.24</li><li>e95926e4 – Update indirect dependencies (#121)</li><li>e3f7b4c8 – Check archive height before notifications (#149)</li><li>48cdac00 – Update to v2.0.5-dev (#171)</li></ul></td></tr><tr><td>v2.0.4</td><td>March 15, 2025</td><td>March 26, 2025</td><td><ul><li>Enabled transaction replay on empty blocks</li><li>Added block overrides for RPC calls</li><li>Updated <code>NoBaseFee</code> VM parameter for transaction replay</li></ul></td><td><ul><li>#26 – Replay transactions on empty blocks</li><li>#30 – Add block overrides for RPC</li><li>#104 – Update NoBaseFee VM config</li></ul></td></tr><tr><td>v2.0.3</td><td>Feb 6, 2025</td><td>Feb 19, 2025</td><td><ul><li>Updated go-ethereum dependency to add on-curve check for unmarshaled public keys</li><li>Improved intrinsic gas error detection</li><li>Added <code>SetStorage</code> on Carmen adapter</li><li>Allowed profiler/tracer stop calls even if never started</li></ul></td><td><ul><li>ecc88ecd – Fix version commit/date (#15)</li><li>2340cc37 – Accept profiler/tracer stop calls (#17)</li><li>325fb5ea – Implement <code>SetStorage</code> on Carmen adapter (#2)</li><li>8cc06953 – Update go-ethereum for on-curve check (#5)</li><li>f9eb911a – Fix intrinsic gas error recognition (#4)</li><li>46908a5c – Update module name to 0xsoniclabs/sonic (#1)</li></ul></td></tr><tr><td>v2.0.2</td><td>Jan 23, 2025</td><td>Jan 31, 2025</td><td><ul><li>Enhanced RPC gas capping</li><li>Added <code>getAccount</code> RPC method</li><li>Improved finalized/safe block tag handling</li><li>Reduced event payload fetching during streaming</li><li>Minor bug fixes</li></ul></td><td><ul><li>19dc2691 – Remove <code>dev</code> from meta version (#394)</li><li>3f86ba1c – RPC gas capping (#391)</li><li>b9545c63 – Implement getAccount RPC (#370)</li><li>1a233d03 – Update version to v2.0.2 (#387)</li><li>79519713 – Fix error propagation (#389)</li><li>cda79533 – Handle finalized/safe block tags (#388)</li><li>0e1599a6 – Skip event payload fetch in streaming (#372)</li><li>7265d537 – Use data from proof (#371)</li></ul></td></tr><tr><td>v2.0.1</td><td>-</td><td>Dec 2, 2024</td><td>-</td><td>-</td></tr><tr><td>v2.0.0</td><td>-</td><td>Nov 29, 2024</td><td>-</td><td>-</td></tr></tbody></table>
