Releases
This page catalogues every notable release. Some releases target only specific networks; for a more intuitive view of upgrades to one network, see:
We group changes into
- protocol changes (generally requiring a new Revision)
- generally tagged with [EVM], [Consensus], or [Network params]
 
 - RPC/SDK behavioral changes (generally tagged with [RPC])
 - performance changes
- tagged based on the nature of the change as [EVM], [Consensus], or [RPC]
 
 - internal/node-ops changes (generally tagged as [Node ops])
 
v0.11.6-tn1
Revisions MONAD_FIVE and
MONAD_SIX introduced.
Revision MONAD_NEXT re-defined.
| Network | Date released | Comment | 
|---|---|---|
devnet | 2025-10-30 | Devnet was reset with this new release, with revision set to MONAD_NEXT | 
testnet | 2025-10-31 | Revision is set to MONAD_SIX at 2025-10-31 13:30 GMT | 
Tags or hashes for testnet deployment (no protocol differences):
monad-bft: tagv0.11.6-tn1monad: tagv0.11.6-tn1
Notable protocol changes - MONAD_NEXT
- [EVM/Network params] Opcode Repricing)
- Ref: monad PR #1600 (for most of the
repricings) and  monad PR #1700 (for
on storage slot deletion via 
SSTORE- Raise the cost of 
CREATEandCREATE2 - Note that this reduces the set of opcode pricings on 
MONAD_NEXTrelative tov0.11.3. 
 - Raise the cost of 
 
 - Ref: monad PR #1600 (for most of the
repricings) and  monad PR #1700 (for
on storage slot deletion via 
 
Notable protocol changes - MONAD_SIX
- [EVM] EIP-2935 bugfix
- Ref: monad PR #1846
 
 
Notable protocol changes - MONAD_FIVE
- [Consensus/EVM] [Staking] Lower 
ACTIVE_VALIDATOR_STAKEfrom 25,000,000 MON to 10,000,000 MON- Ref: monad PR #1810
 
 - [EVM] [Staking] Add 
getProposerValId()method to return theval_idof the most recent block proposer- Ref: monad PR #1815
 
 
v0.11.3-tn1
Revisions MONAD_FOUR and
MONAD_NEXT introduced.
| Network | Date released | Comment | 
|---|---|---|
devnet | 2025-10-08 | Revision is set to MONAD_NEXT upon upgrade | 
testnet | 2025-10-13 | Revision is set to MONAD_FOUR at 2025-10-14 13:30 GMT | 
Tags or hashes for testnet deployment (no protocol differences):
monad-bft: tagv0.11.3-tn1monad: hash3e17265
Notable protocol changes - MONAD_NEXT
- [EVM/Network params] Opcode Repricing)
- Ref: monad PR #1600 (for most of the
repricings) and  monad PR #1700 (for
CREATE/CREATE2repricing) - Opcodes are repriced as discussed in the
Monad Initial Spec Proposal
- Increase cost of cold storage access
 - Precompiles: better align a few underpriced precompile gas costs with the associated hardware / latency costs
 
 - Note: this release also includes a few opcode repricings in MISP v1.0.2 which were later removed:
- Increase cost of storage slot creation via 
SSTORE, and increase the percent of gas refunded on storage slot deletion viaSSTORE - Raise the cost of 
CREATEandCREATE2 
 - Increase cost of storage slot creation via 
 
 - Ref: monad PR #1600 (for most of the
repricings) and  monad PR #1700 (for
 
Notable protocol changes - MONAD_FOUR
- [Consensus/EVM] Staking is live
- (many PRs; see staking)
 - Active validator set is now determined by on-chain state of the staking precompile
 - This takes effect starting from a designated 
staking_activationepoch - Note: staking rewards do not activate until 
staking_rewards_activationepoch (future point in time) - External rewards - enable external (non-block-reward) deposits to the validator pool, see monad PR #1625
 - Also added additional events to staking precompile in monad PR #1742
- Adds 
ValidatorRewarded,EpochChanged,ClaimRewardsevents 
 - Adds 
 
 - [Consensus/EVM] Reserve balance logic is live
- Ref: monad-bft PR #2160 and monad PR #1537
 - Due to async execution, consensus does not have the latest state available for transaction inclusion logic. Reserve balance is a buffer that enables simpler accounting for a given account to mitigate the possibility of overspending in that delay window.
 - Per-EOA reserve balance is set to 
10 MON 
 - [Consensus/EVM] EIP-7702 is live
 - [Network params] Set per-transaction gas limit of 30M gas
- Ref: monad-bft PR #2246
 - As discussed in the Monad Initial Spec Proposal
 
 - [Network params] Increase block gas limit from 150M gas (375 Mgas/s) to 200M gas
(500 Mgas/s)
- Ref: monad-bft PR #2266
 
 - [Network params] Implement dynamic base fee
- Ref: monad-bft PR #2207
 - As specified in the Monad Initial Spec Proposal
 - Target gas is 80% of a block
 - Raise minimum base fee from 50 MON-gwei to 100 MON-gwei
 
 - [EVM] Enable EIP-2935 + blockhash
buffer
- Ref: monad PR #1520
 
 - [EVM] Enable EIP-7951 (P256VERIFY
precompile support)
- Ref: monad PR #1518
 
 - [EVM] Enable EIP-2537 (BLS12-381 precompiles)
- Ref: monad-bft PR #1342 and monad-bft PR #1350
 
 - [EVM] Raise max contract size for 
CREATE/CREATE2to 128 kb- Ref: monad PR #1440
 - This brings 
CREATE/CREATE2to parity with toplevel contract creation transactions, which had their limit raised inMONAD_TWO. - Previously, they were unintentionally limited to Ethereum's max initcode size (49.152 kb) due to a bug
 
 
Notable RPC/SDK changes
- [SDK] Added support for Execution Events
 - [RPC] Extend 
eth_callsupport for preStateTracer and stateDiffTracer withdebug_traceCall- Ref: monad-bft PR #2275 and monad PR #1471
 
 - [RPC] Support the 
withLogparameter withcallTracer- Ref: monad-bft PR #2400
 - If 
withLogis set to true,callTracerincludes event logs in the trace output 
 
Notable performance changes
- [EVM] Kernel caching of db reads and writes
- Ref: monad PR #1559
 - Utilize available host memory to cache recent DB operations - this cache should increase performance of execution and RPC
 
 - [RPC] Improve RPC Db Node Cache and make it memory bounded
- Ref: monad PR #1581
 - Note a rename of RPC cli flags: 
--eth-call-executor-node-lru-sizeto--eth-call-executor-node-lru-max-memand a new flag--triedb-node-lru-max-memwith both default to 100MB. 
 
Notable internal changes
- [Node ops] Remove 
bft-fullnodebinary; onlybftbinary now- Ref: monad-bft PR #2072
 bft-fullnoderemoved fromdebpkg forv0.11
 - [Node ops] PeerDiscovery: Introduce precheck for peer self name address
 - [Consensus] Blocksync: only select blocksync peers from connected nodes
- Ref: monad-bft PR #2401
 
 - [Consensus] Raptorcast: DOS protection on decoding state cache
- Ref: monad-bft PR #2092
 
 - [Node ops] Secondary raptorcast config change
- Ref: monad-bft PR #2378
 - Replace ambiguous secondary raptorcast  
modeparameter withenable_publisherandenable_client 
 - [Node ops] Dynamically reload prioritized full-nodes
- Ref: monad-bft PR #2364
 
 - [Node ops] Fix wal2json
- Ref: monad-bft PR #2404
 
 - [Node ops/RPC] Support the RPC CLI param 
ws-sub-per-conn-limit- Ref: monad-bft PR #2161
 - Sets the maximum number of websocket subscriptions per connection (default to 100)
 
 - [Node ops/RPC] Add configuration options for high eth-call pool
- Ref: monad-bft PR #2387
 
 
v0.11.1
Note: v0.11.1 was a version that was deployed only on testnet-2 (a temporary network deprecated
on 2025-10-27) from roughly 2025-09-16 until 2025-10-08; however, it maps some features differently
to revision MONAD_FOUR which are no longer memorialized in the codebase. testnet-2 was reset
before deploying v0.11.3.
For all intents and purposes, this version can be ignored. This changelog will compare v0.11.3
with v0.10.4.
Tags or hashes:
monad-bft: tagv0.11.1monad: hash7746980
v0.10.4
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-08-18 | Revision is still MONAD_THREE | 
Tags or hashes:
monad-bft: tagv0.10.4monad: hash39c42e6
Notable RPC/SDK changes
- [RPC] EIP-4844 related fields in RPC responses are removed.
- Block headers returned from RPC will no longer have 
blobGasUsed,excessBlobGas, andparentBeaconBlockRoot. 
 - Block headers returned from RPC will no longer have 
 
Notable performance changes
- [Consensus] Votes are now sent to current round leader. This is a consensus optimization that
reduces the effective delay due to a round timeout
- Ref: monad-bft PR #2093
 
 - [Consensus] Caching of recently-verified quorum certificates
- Ref: monad-bft PR #2167
 
 - [Node ops] Enablement of trace calls is now controlled via 
monad(execution) command line arg--trace_calls.- To preserve legacy behavior, 
--trace_callsis currently enabled in the debian package. In the future we recommend disabling for validators and enabling it for RPC and archive nodes. - This allows voting validators to opt out of computing traces since they're only need for RPC nodes.
 
 - To preserve legacy behavior, 
 
Notable internal changes
- [Consensus] TC forwarding to prioritized and public (non-dedicated) full nodes
- Ref: monad-bft PR #2149
 - Prior to 
v0.10.4, all full nodes were subject to lagging behind validators in the event of a timeout because round advancement due to TC was not forwarded (and still isn’t to dedicated full nodes). - As a result, after timeouts, full nodes would frequently forward transactions to the next three leaders relative to a stale state. This results in those transactions often missing and the ensuing blocks being comparatively empty.
 
 - [Node ops] Bugfix for secondary raptorcast (round gap crash) that affected validators in
Publisher mode
- Ref: monad-bft PR #2090
 
 - [Node ops] 
ledger-tailimprovements- Ref: monad-bft PR #2144
 
- Reduced memory usage on startup
 author_dnsfield changed toauthor_addressto reflect change in v10 addresses- Timeouts and finalizations are tracked and logged
 
 - [Consensus] Txpool account preloading bugfix
- Ref: monad-bft PR #2108
 
 
v0.10.3
MONAD_THREE revision introduced.
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-08-12 | Revision is set to MONAD_THREE when upgraded | 
Notable protocol changes - MONAD_THREE
- [Consensus] Consensus mechanism upgraded from Fast-HotStuff
to MonadBFT
- This is a major upgrade that adds (i) resilience to tail forking and (ii) 1-slot speculative finality
 
 - [Network params] Block time reduced from 500 ms to 400 ms
 
Notable RPC/SDK changes
- [RPC] Add support for real-time data via
WebSocket and shared memory queue access (docs coming soon):
- Geth real-time events (via WebSocket)
 - Geth real-time events with Monad extensions (via WebSocket)
 - Real-time data via shared memory queue, for programs on a full node host using the execution event SDK
 
 
Notable performance changes
- [Execution] Switch to JIT EVM. The bytecode of expensive or frequently-executed contracts is compiled directly to native code for faster execution
 - [Execution] Switch to using file pointer-based IPC to execute blocks. Previously, the client was using a write-ahead log (WAL), which did not take advantage of available consensus information and could result in avoidable execution
 
Notable internal changes
- [Node ops] Adds peer discovery
 - [Node ops] Adds full node RaptorCast, making the full node network scalable
 
v0.9.3
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-05-29 | Revision is still MONAD_TWO | 
Notable RPC/SDK changes
- [RPC] 
eth_callandeth_estimateGaslimits- RPC providers can now set individual per-transaction limits on maximum gas for 
eth_callandeth_estimateGas- Previously the limit would always be the block gas limit (150M), now the RPC provider may choose (default: 30M)
 - Controlled with 
--eth-call-provider-gas-limitand--eth-estimate-gas-provider-gas-limit 
 - Add a maximum timeout for queueing when executing 
eth_callandeth_estimateGas- Controlled with 
--eth_call_executor_queuing_timeout 
 - Controlled with 
 
 - RPC providers can now set individual per-transaction limits on maximum gas for 
 
Notable performance changes
- [RPC] Improve overall 
eth_callperformance by maintaining separate queues for cheap and expensiveeth_calloperations, so that cheapeth_calloperations will not be queued behind expensive ones.- This adds two new RPC error strings:
failure to submit eth_call to thread pool: queue size exceededfailure to execute eth_call: queuing time exceeded timeout threshold
 
 - This adds two new RPC error strings:
 - [RPC]  Added an archive index for 
eth_getLogsto support queries with address and/or topic filters- This enables larger block ranges to be queried efficiently, with work proportional to number of matching logs instead of number of blocks in range
 
 - [Execution] Better bounding of TrieDB traversals
 
Notable internal changes
- [Node ops] Performance improvements for slow statesync client upsert
 - [Node ops] Bugfix for execution delay and abrupt history length drops caused by premature soft reset
 - [Node ops]  
keystoreQOL improvements- Support for importing from a private key in hex string format (previously required conversion to json file)
 - More helpful documentation via 
--helpcommand 
 
testnet-1 active set expansion
On 2025-05-02, testnet-1 experienced an active set expansion
Notable internal changes
- [Network params] Testnet validator set expanded from 72 to 99 nodes
 
v0.9.2
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-04-05 | Revision is still MONAD_TWO | 
Notable performance changes
- [RPC] Update to the 
eth_callexecution implementation - uses fewer threads to achieve the same concurrency as inv0.9.1 
Notable internal changes
- [Node ops] Support for a faster statesync mechanism
 - [RPC] RPC no longer accepts requests while node is statesyncing
 - [Node ops] Some reliability and efficiency improvements to how statesync traffic is carried between nodes
 - [Node ops] Bugfixes for execution crashes (
monad::mpt::deserialize_node_from_buffer,'Resource temporarily unavailable) 
- [Node ops] Bug fix for unbounded blocksync requests that result in node OOM failures
 - [Node ops] Removal of DNS resolution panic on start up
 
v0.9.1
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-03-24 | Revision is set to MONAD_TWO | 
Notable internal changes
- [Node ops] Bugfix for blocksync errors
 - [Node ops] Reliability and efficiency improvements to statesync
 
v0.9.0
Revision MONAD_TWO introduced.
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-03-14 | Revision is set to MONAD_TWO at 2025-03-14 19:00 GMT | 
Notable protocol changes - MONAD_TWO
- [EVM] Max contract size increased from 24kb to 128kb
 
Notable RPC/SDK changes
- [RPC] 
debug_traceTransactionfixes- Fixed a bug where, within one transaction, only the first 100 calls were being traced
 - Added 
errorandrevertReasonfields to response data 
 
Notable performance changes
- [Consensus] Dataplane v2 - simpler and more efficient implementation; small performance improvement in broadcast time
 - [RPC] Improvements to RPC performance for 
eth_call 
- [RPC] Removed redundant sender_recovery operation on raw transactions received via RPC
 
Notable internal changes
- [Node ops] Statesync improvements to mitigate negative performance effects on upstream validator nodes
 
- [RPC] EIP-2 signature validation added to RPC transaction validation
 - [Node ops] Miscellaneous tracing, logging and metrics additions
 - [Consensus] RaptorCast performance improvement when dealing with invalid symbols
 
v0.8.1
Revision MONAD_ONE introduced.
| Network | Date deployed | Comment | 
|---|---|---|
testnet | 2025-02-14 | Revision is set to MONAD_ONE at 2025-02-14 19:00 GMT | 
Notable protocol changes - MONAD_ONE
- 
[Network params] Block time reduced from 1s to 500 ms
 - 
[Network params] Block gas limit reduced from 300M to 150M (to keep gas limit consistent)
 - 
[EVM] Transactions are charged based on gas limit, not gas consumed
 
Notable RPC/SDK changes
- [RPC] UX improvements for transaction status. RPC nodes track status of transactions submitted to them in order to provide updates to users.