Skip to content

Releases: category-labs/monad

v0.14.2

21 Apr 17:30
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

monad (execution) v0.14.2 Changelog

Tag: v0.14.2
Commit: 169e5c45b

Robustness fixes

  • [Execution] Fix possible UB in unaligned read
  • [Execution] Fix incorrect auto_expire_version initialization after DB reset
  • [Execution] Fix compaction progress reset during statesync
    • Ref: PR #2133
    • Fixes compaction head being incorrectly reset to 0 during statesync, causing compaction to restart from the beginning

Performance changes

  • [Execution] Optimize trie node array access (8-9x speedup on compaction hot path)
    • Ref: PR #2163
    • Hoists base pointers for packed node arrays via std::span<unaligned_t<T>>; reduces redundant pointer recomputation in compaction, expiration, and version tracking loops

Internal changes

  • [Execution] Replace system boost fiber with submodule (boost-1.83.0)
  • [Execution] Separate precompile gas cost calculation from runtime implementation
  • [Execution] Remove support for EVMC_FRONTIER
  • [Execution] Add block-level event recording for Ethereum and Monad replay
    • Ref: PR #2006
    • Emits BLOCK_START/BLOCK_END events during replay, making replay event streams usable for tooling

v0.14.0

01 Apr 16:39
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

monad (execution) v0.14.0 Changelog

Tag: v0.14.0
Commit: 54e132cfa

RPC/SDK changes

  • [Execution] Add execution events Rust SDK with path resolution and descriptor info
  • [Execution] Native transfer tracer scaffolding (not yet wired to RPC)

Robustness fixes

  • [Execution] Remove ASSERT that relied on suboptimality of reserve balance accounting
  • [Execution] Fix runloop_monad off-by-one when nblocks=1
  • [Execution] Fix RangedGetMachine skipping keys past min prefix
  • [Execution] Fix minor RLP errors, union type-punning, event padding bits
  • [Execution] Fix CLI crash on unexpected arguments
  • [Execution] Fix node writer reentrance causing non-contiguous writes
  • [Execution] Fix undefined behavior in RLP encoding with empty inputs
  • [Execution] Fix dangling pointer in events SDK, executor count, predecessor tx wait
  • [Execution] Stricter RLP decoding: error for oversized bytes32

Performance changes

  • [Execution] Improve fast list compaction offset calculation with hysteresis
  • [Execution] Compaction offset refactor and runtime header performance optimizations

Internal changes

  • [Execution] Refactor chain: remove static_validate_header and validate_transaction virtual methods
  • [Execution] Add eventwatch example program for execution events

v0.14.1

07 Apr 17:07
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Execution layer unchanged from v0.14.0. This tag is provided for version consistency with monad-bft v0.14.1.

  • monad (execution): 54e132cfa — same commit as v0.14.0

For full release notes, see monad-bft v0.14.1.

v0.14.0-rc.1

26 Mar 14:15
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.14.0-rc.1 Pre-release
Pre-release

v0.14.0-rc.1 is ready for testing. This release includes robustness fixes, execution events Rust SDK, performance improvements, and stricter RLP validation.

Note: This is a pre-release for testing and validation only. Not recommended for production use. If you run into any issues, please include Release: v0.14.0-rc.1 in the name of any issues you create.

Tag: v0.14.0-rc.1
Commit: 54e132cfa

The corresponding monad-bft (consensus) release is v0.14.0-rc.1.

SDK

  • PR #2123 - Add execution events Rust SDK
  • PR #2135 - Expose event descriptor info in events SDK
  • PR #2136 - Add path resolution to rust events SDK
  • PR #2137 - Add eventwatch example program for execution events

Robustness fixes

  • PR #2082 - Fix node writer reentrance causing non-contiguous writes
  • PR #2152 - Fix undefined behavior in RLP encoding with empty inputs
  • PR #2096 - Remove ASSERT that relied on suboptimality of reserve balance accounting
  • PR #2139 - Fix dangling pointer in rust events SDK FFI call
  • PR #2104 - Fix executing_count decrement in executor
  • PR #2128 - Wait for predecessor tx on early validation failure
  • PR #2159 - Stricter RLP decoding: error for oversized bytes32
  • PR #2110 - Fix RangedGetMachine skipping keys past min prefix
  • PR #2108 - Fix minor RLP error handling issues
  • PR #2078 - Replace union type-punning with explicit bit shifts
  • PR #2102 - Zero-initialize padding bits in execution events
  • PR #2138 - Fix CLI crash on unexpected arguments
  • PR #2018 - Fix runloop_monad off-by-one when nblocks=1

Performance

  • PR #2107 - Improve fast list compaction offset calculation with hysteresis
  • PR #2130 - Introduce compact_offset_pair to reduce offset boilerplate
  • PR #2050 - Runtime header refactor with performance optimizations

Internal changes

  • PR #2049 - Refactor chain: dispatch via traits instead of virtual methods

Complete Changelog:
v0.13.1...v0.14.0-rc.1

v0.13.1

16 Mar 16:20
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.13.1

This is a patch release to accompany monad-bft v0.13.1.

No changes to monad (execution layer) - this tag points to the same commit as v0.13.0 (722cbf5b5).

The fix for State Archive node RPC issues is in the monad-bft repository: monad-bft
v0.13.1

v0.13.0

04 Mar 16:26
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

monad (execution) v0.13.0 Changelog

Tag: v0.13.0+1
Commit: 722cbf5b5

Note: Canonical version is v0.13.0. The +1 build metadata indicates a post-release rebuild that includes the reserve balance precompile fallback cost fix (PR #2109).

MONAD_NINE Activation

MIP-3: Linear memory implementation

MIP-4: Reserve balance precompile

  • PR #2040 - scaffolding
  • PR #2065 - cached/incremental checks
  • PR #2086 - add dippedIntoReserve
  • PR #2106 - dippedIntoReserve argument length error
  • PR #2109 - fallback cost fix for clean spec
  • PR #2037 - skip reserve checks for init-selfdestruct

MIP-5: Osaka fork (CLZ opcode)

Robustness fixes

  • PR #2053 - Fix ThreadSanitizer race by joining bootstrap fiber before thread exit
  • PR #2039 - Include account balance in selfdestruct tracer frame
  • PR #2083 - Fix sentinel collision in compact virtual chunk offset
  • PR #2092 - Fix potential race condition in execute_block_transactions

Internal changes

  • PR #2097 - Add evm-as syntactic sugar for VM utilities
  • PR #2054 - Remove unnecessary fiber yield calls from DB worker thread

v0.12.8

04 Mar 06:40
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

monad (execution) v0.12.8 Changelog

Tag: v0.12.8

Protocol Changes

Prep for MONAD_NINE

MIP-3: Linear Memory Pool

  • Combine EVM memory regions into one transaction-wide memory region
  • VM memory pool implementation
  • Ref: cc6f45669, c54fc3a73, 5562f4f1c

Reserve Balance Precompile Scaffolding

  • Reserve balance precompile scaffolding for MIP-4
  • Ref: aebac934b

Osaka Fork Preparation

  • Activate Osaka in MONAD_NEXT
  • Ref: 8f8564b8b

Robustness Fixes

  • Fix expmod padding crash - cbbd825b4
  • Avoid potential UB on empty precompile input - 48f6d8276
  • Don't recover high-s authorities - c54fc3a73
  • statesync client: only copy state and code to current to avoid stale data - 5130f0e84
  • Move version erasure logic to write_new_root_node() - 0f6ed8e5f

Performance Improvements

  • Undefer cold charge in storage - 3515ad320
  • Track stack offset to prevent store forwarding stalls - 5562f4f1c
  • Change State::set_code to reuse Intercode objects - b1a2d06a3
  • Improve BYTE instruction performance - e5005b1f7, 40500e8d4, d9fe40661
  • Facility to lazily construct SharedIntercode - 9630d662d
  • Replace mult with shift in BYTE interpretation - d9fe40661

Tracers

  • Add test for prestate/statediff tracers on system transactions - 2431631c5
  • Add missing state tracer for system txns - 4bae41cda

Events / SDK

  • Add snapshot support to eventwatch.c - 9dc87e58d
  • Add zstd snapshot utility functions - a0d078b40
  • Refactor exclusive writer detection - 99e674c56
  • Add unit tests for event snapshot files - 6c73be142
  • Prepare libmonad_event for out-of-project builds - b2165f135

Internal / Refactoring

  • Refactor MonadChainContext & remove revert closure - db66c77a4
  • Use [[gnu::cleanup]] instead of goto in events - a0e39e136
  • Pull out state overrides - 03fb45873
  • Fix LLVM build following EVM memory changes - f035992f2
  • Remove code and code_size from evmc_message - 27603cab3
  • MPT interface refactoring - 438fc2d14, 3159f36cb, 4e4539986, 56ea0272a
  • Bump spec tests - 3e5a6c636
  • Remove thread_safe_lru - 2c506b32a

Build / Tooling

  • monad_core will also link to zstd - 1149f0dbe
  • Skip tests in debug - 021d7d78f
  • .gitignore JetBrains IDE files in nested directories - d22abd656
  • Support table formatting of microbenchmark results - 7b5b405b7
  • ethereum_test improvements - 8c5e039a9
  • Add store forwarding stall microbenchmark - f7c60ac9d

v0.12.7

02 Feb 19:14
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.12.7

Network Date released Comment
mainnet 01-29-2026
testnet 01-20-2026
devnet 01-13-2026

Tags or hashes:

Notable robustness changes

  • [Execution] Fix modexp precompile crash on truncated input padding