Skip to main content

Testnet Changelog

This is a curated list of only changes affecting testnet.

note

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.3 [2025-10-14]

Revision: MONAD_FOUR (upgrade; takes effect at 2025-10-14 13:30 GMT)

Tags or hashes:

Notable protocol changes - MONAD_FOUR

Notable RPC/SDK changes

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-size to --eth-call-executor-node-lru-max-mem and a new flag --triedb-node-lru-max-mem with both default to 100MB.

Notable internal changes

  • [Node ops] Remove bft-fullnode binary; only bft binary now
  • [Node ops] PeerDiscovery: Introduce precheck for peer self name address
  • [Consensus] Blocksync: only select blocksync peers from connected nodes
  • [Consensus] Raptorcast: DOS protection on decoding state cache
  • [Node ops] Secondary raptorcast config change
    • Ref: monad-bft PR #2378
    • Replace ambiguous secondary raptorcast mode parameter with enable_publisher and enable_client
  • [Node ops] Dynamically reload prioritized full-nodes
  • [Node ops] Fix wal2json
  • [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

v0.10.4 [2025-08-18]

Revision: MONAD_THREE (unchanged)

Tags or hashes:

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, and parentBeaconBlockRoot.

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
  • [Consensus] Caching of recently-verified quorum certificates
  • [Node ops] Enablement of trace calls is now controlled via monad (execution) command line arg --trace_calls.
    • To preserve legacy behavior, --trace_calls is 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 needed for RPC nodes.

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
  • [Node ops] ledger-tail improvements
    • Reduced memory usage on startup
    • author_dns field changed to author_address to reflect change in v10 addresses
    • Timeouts and finalizations are tracked and logged
  • [Consensus] Txpool account preloading bugfix

v0.10.3 [2025-08-12]

Revision: MONAD_THREE (upgrade; takes effect immediately - not time-gated)

Notable protocol changes - MONAD_THREE

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 [2025-05-29]

Revision: MONAD_TWO (unchanged)

Notable RPC/SDK changes

  • [RPC] eth_call and eth_estimateGas limits
    • RPC providers can now set individual per-transaction limits on maximum gas for eth_call and eth_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-limit and --eth-estimate-gas-provider-gas-limit
    • Add a maximum timeout for queueing when executing eth_call and eth_estimateGas
      • Controlled with --eth_call_executor_queuing_timeout

Notable performance changes

  • [RPC] Improve overall eth_call performance by maintaining separate queues for cheap and expensive eth_call operations, so that cheap eth_call operations will not be queued behind expensive ones.
    • This adds two new RPC error strings:
      • failure to submit eth_call to thread pool: queue size exceeded
      • failure to execute eth_call: queuing time exceeded timeout threshold
  • [RPC] Added an archive index for eth_getLogs to 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] keystore QOL improvements
    • Support for importing from a private key in hex string format (previously required conversion to json file)
    • More helpful documentation via --help command

testnet-1 active set expansion [2025-05-02]

Notable internal changes

  • [Network params] Testnet validator set expanded from 72 to 99 nodes

v0.9.2 [2025-04-05]

Revision: MONAD_TWO (unchanged)

Notable performance changes

  • [RPC] Update to the eth_call execution implementation - uses fewer threads to achieve the same concurrency as in v0.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 [2025-03-24]

Revision: MONAD_TWO (unchanged)

Notable internal changes

  • [Node ops] Bugfix for blocksync errors
  • [Node ops] Reliability and efficiency improvements to statesync

v0.9.0 [2025-03-14]

Revision: MONAD_TWO (upgrade; takes effect at 2025-03-14 at 19:00 GMT)

Notable protocol changes - MONAD_TWO

Notable RPC/SDK changes

  • [RPC] debug_traceTransaction fixes
    • Fixed a bug where, within one transaction, only the first 100 calls were being traced
    • Added error and revertReason fields 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 [2025-02-14]

Revision: MONAD_ONE (upgrade; takes effect at 2025-02-14 at 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.