> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Mainnet Changelog

This is a curated list of only changes affecting [mainnet](/developer-essentials/network-information).

<Note>
  We group changes into

  * protocol changes (generally requiring a new [Revision](/developer-essentials/changelog#revisions))
    * 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]**)
</Note>

## v0.13.1 \[2026-03-16]

Revision: [`MONAD_NINE`](/developer-essentials/changelog#revisions) (unchanged)

Tags or hashes:

* `monad-bft` (consensus): [tag `v0.13.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.13.1) (`7db6cea2`)
* `monad` (execution): [tag `v0.13.1`](https://github.com/category-labs/monad/releases/tag/v0.13.1) (`722cbf5b5`)

> **Note:** This is a patch release based on v0.13.0 to fix State Archive node RPC issues. The monad (execution) tag points to the same commit as v0.13.0.

#### Notable robustness changes

* **\[RPC]** Use latest voted as fallback for last\_proposed
  * Ref: [monad-bft PR #2857](https://github.com/category-labs/monad-bft/pull/2857)

## v0.13.0 \[2026-03-12]

Revision: [`MONAD_NINE`](/developer-essentials/changelog#revisions) (upgrade; Thursday, 2026-03-19 at 14:30 GMT)

Tags or hashes:

* `monad-bft` (consensus): [tag `v0.13.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.13.0)
* `monad` (execution): [tag `v0.13.0+1`](https://github.com/category-labs/monad/releases/tag/v0.13.0+1)

> **Note:** The canonical release version is `v0.13.0`. The `+1` build metadata on the monad execution tag indicates a post-release rebuild that includes the reserve balance precompile fallback cost fix ([PR #2109](https://github.com/category-labs/monad/pull/2109)).

#### Highlights

* **RPC: `latest` block tag: `Finalized` -> `Proposed`** — queries with the `latest` block tag now return data from the latest proposed block, reducing query latency for `eth_getBalance`, `eth_call`, and other state queries.
* **RPC: `eth_sendRawTransactionSync`: `Voted` -> `Proposed`** — earlier receipts when using the `eth_sendRawTransactionSync` method.
* **Websocket: `newHeads/logs`: `Finalized` -> `Voted`** — earlier notifications for websocket subscribers to either `newHeads` or `logs`.

#### Notable protocol changes

All updates below are gated by the `MONAD_NINE` revision

* **\[EVM]** [MIP-3](https://github.com/monad-crypto/MIPs/blob/main/MIPS/MIP-3.md): Linear memory implementation
  * Ref: [monad PR #2032](https://github.com/category-labs/monad/pull/2032)
* **\[Execution]** [MIP-4](https://github.com/monad-crypto/MIPs/blob/main/MIPS/MIP-4.md): Reserve balance precompile
  * Ref: [monad PR #2040](https://github.com/category-labs/monad/pull/2040) (scaffolding)
  * Ref: [monad PR #2065](https://github.com/category-labs/monad/pull/2065) (cached/incremental checks)
  * Ref: [monad PR #2086](https://github.com/category-labs/monad/pull/2086) (add dippedIntoReserve)
  * Ref: [monad PR #2106](https://github.com/category-labs/monad/pull/2106) (dippedIntoReserve argument length error)
  * Ref: [monad PR #2109](https://github.com/category-labs/monad/pull/2109) (fallback cost fix for clean spec)
  * Ref: [monad PR #2037](https://github.com/category-labs/monad/pull/2037) (skip reserve checks for init-selfdestruct)
* **\[EVM]** [MIP-5](https://github.com/monad-crypto/MIPs/blob/main/MIPS/MIP-5.md): Activate Osaka fork (CLZ opcode)
  * Ref: [monad PR #2024](https://github.com/category-labs/monad/pull/2024)

> **Hard Fork:** This release activates MONAD\_NINE at timestamp `1773153000` (testnet) / `1773930600` (mainnet). Nodes must upgrade before activation.

#### Notable RPC/SDK changes

* **\[RPC]** Latest blocktag uses proposed blocks
  * Ref: [monad-bft PR #2675](https://github.com/category-labs/monad-bft/pull/2675)
* **\[RPC]** Use voted blocks in websocket notifications
  * Ref: [monad-bft PR #2799](https://github.com/category-labs/monad-bft/pull/2799)
* **\[RPC]** Add experimental flag to RPC doc macro
  * Ref: [monad-bft PR #2773](https://github.com/category-labs/monad-bft/pull/2773)
* **\[RPC]** Refactor RPC middleware for improved request handling
  * Ref: [monad-bft PR #2805](https://github.com/category-labs/monad-bft/pull/2805)
* **\[RPC]** Add decompression guard to RPC
  * Ref: [monad-bft PR #2793](https://github.com/category-labs/monad-bft/pull/2793)

#### Notable robustness changes

* **\[Consensus]** Add signature verifier for Raptorcast
  * Ref: [monad-bft PR #2747](https://github.com/category-labs/monad-bft/pull/2747)
* **\[Consensus]** Fix reactivate logic in r10 decoder
  * Ref: [monad-bft PR #2740](https://github.com/category-labs/monad-bft/pull/2740)
* **\[Execution]** Fix buffer overflow in C->Rust logging
  * Ref: [monad-bft PR #2769](https://github.com/category-labs/monad-bft/pull/2769)
* **\[Consensus]** Add global connect rate limit to wireauth
  * Ref: [monad-bft PR #2765](https://github.com/category-labs/monad-bft/pull/2765)
* **\[Consensus]** Validate ping/pong source address against name record in peer discovery
  * Ref: [monad-bft PR #2752](https://github.com/category-labs/monad-bft/pull/2752)
* **\[Consensus]** Persist voted\_head in ledger
  * Ref: [monad-bft PR #2744](https://github.com/category-labs/monad-bft/pull/2744)
* **\[Consensus]** Add dual UDP packet sender for dataplane
  * Ref: [monad-bft PR #2746](https://github.com/category-labs/monad-bft/pull/2746)
* **\[Execution]** Fix ThreadSanitizer race by joining bootstrap fiber before thread exit
  * Ref: [monad PR #2053](https://github.com/category-labs/monad/pull/2053)
* **\[Execution]** Include account balance in selfdestruct tracer frame
  * Ref: [monad PR #2039](https://github.com/category-labs/monad/pull/2039)
* **\[Consensus]** Ensure proposed head is on canonical chain
  * Ref: [monad-bft PR #2756](https://github.com/category-labs/monad-bft/pull/2756)
* **\[Execution]** Fix sentinel collision in compact virtual chunk offset
  * Ref: [monad PR #2083](https://github.com/category-labs/monad/pull/2083)
* **\[Execution]** Fix potential race condition in execute\_block\_transactions
  * Ref: [monad PR #2092](https://github.com/category-labs/monad/pull/2092)

#### Notable internal changes

* **\[Consensus]** Remove unneeded channels when secondary raptorcast is disabled
  * Ref: [monad-bft PR #2808](https://github.com/category-labs/monad-bft/pull/2808)
* **\[Consensus]** Upgrade alloy to stable release
  * Ref: [monad-bft PR #2792](https://github.com/category-labs/monad-bft/pull/2792)
* **\[Execution]** Add `evm-as` syntactic sugar for VM utilities
  * Ref: [monad PR #2097](https://github.com/category-labs/monad/pull/2097)
* **\[Consensus]** Parametrize wireauth metrics for better observability
  * Ref: [monad-bft PR #2692](https://github.com/category-labs/monad-bft/pull/2692)
* **\[Consensus]** Cleanup block persist implementation
  * Ref: [monad-bft PR #2767](https://github.com/category-labs/monad-bft/pull/2767)
* **\[Consensus]** Fix wip extension in block-persist
  * Ref: [monad-bft PR #2776](https://github.com/category-labs/monad-bft/pull/2776)
* **\[Consensus]** Remove legacy `do_local_insert`
  * Ref: [monad-bft PR #2728](https://github.com/category-labs/monad-bft/pull/2728)
* **\[Consensus]** Add metrics for raptorcast deserialize failures
  * Ref: [monad-bft PR #2789](https://github.com/category-labs/monad-bft/pull/2789)
* **\[RPC]** Reduce RPC event server broadcast channel size
  * Ref: [monad-bft PR #2815](https://github.com/category-labs/monad-bft/pull/2815)
* **\[Consensus]** Pre-TFM base fee cleanup
  * Ref: [monad-bft PR #2664](https://github.com/category-labs/monad-bft/pull/2664)
* **\[Consensus]** Remove pre-TFM reserve balance logic
  * Ref: [monad-bft PR #2622](https://github.com/category-labs/monad-bft/pull/2622)
* **\[RPC]** Simplify hex encoding/decoding in RPC
  * Ref: [monad-bft PR #2806](https://github.com/category-labs/monad-bft/pull/2806)
* **\[Archive]** Add exists(key) to kvstore
  * Ref: [monad-bft PR #2688](https://github.com/category-labs/monad-bft/pull/2688)

## v0.12.7 \[2026-01-29]

Revision: [`MONAD_EIGHT`](/developer-essentials/changelog#revisions) (unchanged)

#### Notable RPC/SDK changes

* **\[RPC]** Allow block hash as block identifier in `eth_estimateGas`
  * Ref: [monad-bft PR #2676](https://github.com/category-labs/monad-bft/pull/2676)
* **\[RPC]** Use `RawValue` for RPC id to preserve original JSON types
  * Reduces effectiveness of DoS attacks using large JSON arrays/dicts in request IDs
  * Ref: [monad-bft PR #2455](https://github.com/category-labs/monad-bft/pull/2455)

#### Notable robustness changes

* **\[Consensus]** Remove consecutive sequence number assertion
  * Ref: [monad-bft PR #2704](https://github.com/category-labs/monad-bft/pull/2704)
* **\[Consensus]** Improve liveness when advancing round using TC from timeout messages
  * Ref: [monad-bft PR #2701](https://github.com/category-labs/monad-bft/pull/2701)
* **\[Consensus]** Disallow creating an empty validator set
  * Ref: [monad-bft PR #2682](https://github.com/category-labs/monad-bft/pull/2682)

#### Notable internal changes

* **\[Consensus]** Add security tests for `secp256k1`
  * Adds Wycheproof tests, malleability tests, and security unit tests
  * Ref: [monad-bft PR #2706](https://github.com/category-labs/monad-bft/pull/2706)
* **\[Node ops]** Update `rkyv` and other dependencies
  * Ref: [monad-bft PR #2702](https://github.com/category-labs/monad-bft/pull/2702)
* **\[Consensus]** Return bound socket addresses synchronously in dataplane
  * Ref: [monad-bft PR #2653](https://github.com/category-labs/monad-bft/pull/2653)
* **\[Consensus]** Rename state backend cache for clarity
  * Ref: [monad-bft PR #2699](https://github.com/category-labs/monad-bft/pull/2699)

## v0.12.6 \[2026-01-14]

Revision: [`MONAD_EIGHT`](/developer-essentials/changelog#revisions) (unchanged)

Tags or hashes:

* `monad-bft`: [tag `v0.12.6`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.6)
* `monad`: [tag `v0.12.6`](https://github.com/category-labs/monad/releases/tag/v0.12.6)

#### Notable RPC/SDK changes

* **\[RPC]** Fix depth bug in selfdestructing call frames
  * Ref: [monad PR #1977](https://github.com/category-labs/monad/pull/1977)
* **\[RPC]** Prestate tracer conformance fixes
  * Ref: [monad PR #1946](https://github.com/category-labs/monad/pull/1946)

#### Notable robustness changes

* **\[Consensus]** Add signature verification rate limiting with authenticated peer bypass
  * Ref: [monad-bft PR #2601](https://github.com/category-labs/monad-bft/pull/2601)
* **\[Consensus]** Validate confirm group message before updating peers
  * Ref: [monad-bft PR #2680](https://github.com/category-labs/monad-bft/pull/2680)
* **\[Consensus]** Use Tai64N directly for wireauth timestamp comparison
  * Ref: [monad-bft PR #2678](https://github.com/category-labs/monad-bft/pull/2678)
* **\[Consensus]** Improve RaptorCast decoding cache eviction
  * Ref: [monad-bft PR #2651](https://github.com/category-labs/monad-bft/pull/2651)
* **\[Consensus]** Fix blocksync in-flight request tracking on cache hydration
  * Ref: [monad-bft PR #2635](https://github.com/category-labs/monad-bft/pull/2635)
* **\[Execution]** Update triedb voted metadata before executing proposal
  * Solves a race condition between Voted updates through websocket and corresponding JSON-RPC calls
  * Ref: [monad PR #1964](https://github.com/category-labs/monad/pull/1964)
* **\[Node ops]** Persist peers periodically for improved discovery resilience
  * Ref: [monad-bft PR #2633](https://github.com/category-labs/monad-bft/pull/2633)

#### Notable performance changes

* **\[Consensus]** Boost dataplane throughput with ring buffer implementation
  * Ref: [monad-bft PR #2596](https://github.com/category-labs/monad-bft/pull/2596)
* **\[Execution]** Native implementation for `MLOAD`, `MSTORE`, `MSTORE8`, `CALLDATALOAD` opcodes
  * Ref: [monad PR #1963](https://github.com/category-labs/monad/pull/1963)
* **\[Execution]** Improve snapshot write performance
  * Ref: [monad PR #1973](https://github.com/category-labs/monad/pull/1973), [monad PR #1960](https://github.com/category-labs/monad/pull/1960)
* **\[Execution]** Optimize database history length adjustment with binary search
  * Ref: [monad PR #1922](https://github.com/category-labs/monad/pull/1922)
* **\[Execution]** Unify single buffer and scatter read handling in AsyncIO
  * Ref: [monad PR #1944](https://github.com/category-labs/monad/pull/1944)

#### Notable internal changes

* **\[Node ops]** Docker single-node container updates for prebuilt images
  * Fixes to [Local Docker installation](https://github.com/category-labs/monad-bft/blob/master/README.md#using-pre-built-images)
  * Ref: [monad-bft PR #2674](https://github.com/category-labs/monad-bft/pull/2674)
* **\[Consensus]** Add support for generic txpool sidecars
  * Enables IPC transaction priority and forwarding controls
  * Ref: [monad-bft PR #2557](https://github.com/category-labs/monad-bft/pull/2557)
* **\[EVM]** Osaka fork preparation
  * Modexp gas changes and upper bound (EIP-7823/EIP-7883)
  * Implement `CLZ` opcode
    * Ref: [monad PR #1970](https://github.com/category-labs/monad/pull/1970), [monad PR #1981](https://github.com/category-labs/monad/pull/1981)
* **\[Node ops]** Accept `--hyphen-style` long options in CLI
  * Ref: [monad PR #2005](https://github.com/category-labs/monad/pull/2005)
* **\[Node ops / Archive]** Archive pipeline improvements
  * Add `WritePolicy` to `KVStore` for conditional write protection (`NoClobber`)
  * Add BFT-uploading stats logging
  * Ref: [monad-bft PR #2649](https://github.com/category-labs/monad-bft/pull/2649), [monad-bft PR #2661](https://github.com/category-labs/monad-bft/pull/2661)
* **\[Node ops]** Simplify RPC txpool status tracking
  * Ref: [monad-bft PR #2644](https://github.com/category-labs/monad-bft/pull/2644)
* **\[Node ops]** Snapshot tooling improvements in `monad_cli`
  * Add `--dump_concurrency_limit` parameter
  * Add sharding support for distributed snapshot creation
  * Ref: [monad PR #1967](https://github.com/category-labs/monad/pull/1967), [monad PR #1965](https://github.com/category-labs/monad/pull/1965)
* **\[Node ops]** Add RaptorCast decoding cache metrics
  * Ref: [monad-bft PR #2667](https://github.com/category-labs/monad-bft/pull/2667)
* **\[Execution]** Add `CommitBuilder` API to execution database
  * Ref: [monad PR #1968](https://github.com/category-labs/monad/pull/1968)
* **\[Execution]** Remove legacy `using_chunks_for_root_offsets` metadata field
  * Ref: [monad PR #1943](https://github.com/category-labs/monad/pull/1943)
* **\[Node ops / Txgen]** Add ERC-4337 + EIP-7702 generator (`erc4337_7702_bundled`)
  * Ref: [monad-bft PR #2628](https://github.com/category-labs/monad-bft/pull/2628)
* **\[Node ops]** Add systemd service scripts for `blockcapd` and execution events archivers
  * Ref: [monad-bft PR #2590](https://github.com/category-labs/monad-bft/pull/2590)
* **\[SDK]** Add `monad_event_resolve_ring_file` API
  * Ref: [monad PR #1741](https://github.com/category-labs/monad/pull/1741)
* **\[Execution]** Enable VM host exception handling outside VM
  * Ref: [monad PR #1990](https://github.com/category-labs/monad/pull/1990)

## v0.12.4 \[2025-12-05]

Revision: [`MONAD_EIGHT`](/developer-essentials/changelog#revisions) (unchanged)

Tags or hashes:

* `monad-bft`: [tag `v0.12.4`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.4)
* `monad`: [tag `v0.12.4`](https://github.com/category-labs/monad/releases/tag/v0.12.4) *(unchanged from v0.12.3)*

#### Notable internal changes

* **\[Node ops]** Fix peer discovery port configuration when constructing self name record
  * Use port from peer discovery config instead of bound socket when constructing self name record.
    This bug affected node operators using a NAT.
  * Ref: [monad-bft PR #2655](https://github.com/category-labs/monad-bft/pull/2655)

## v0.12.3 \[2025-12-04]

Revision: [`MONAD_EIGHT`](/developer-essentials/changelog#revisions) (unchanged)

Tags or hashes:

* `monad-bft`: [tag `v0.12.3`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.3)
* `monad`: [tag `v0.12.3`](https://github.com/category-labs/monad/releases/tag/v0.12.3)

#### Notable RPC/SDK changes

* **\[RPC]** [EIP-7966](https://eips.ethereum.org/EIPS/eip-7966) (`eth_sendRawTransactionSync`) support
  * Ref: [monad-bft PR #2542](https://github.com/category-labs/monad-bft/pull/2542)
* **\[RPC]** Populate `value` field on traces for staking precompile syscalls (added in `0.12.3-rpc-hotfix2`)
  * Ref: [monad PR #1938](https://github.com/category-labs/monad/pull/1938)

#### Notable robustness changes

* **\[Consensus]** Wire authentication protocol for UDP
  * Adds authenticated UDP communication to improve network security
  * Includes replay window adjustments for improved reliability
  * Ref: [monad-bft PR #2417](https://github.com/category-labs/monad-bft/pull/2417), [monad-bft PR #2544](https://github.com/category-labs/monad-bft/pull/2544), [monad-bft PR #2626](https://github.com/category-labs/monad-bft/pull/2626), [monad-bft PR #2091](https://github.com/category-labs/monad-bft/pull/2091)
* **\[Execution]** Improve `statesync` shutdown and fix protocol corruption
  * Modified `statesync_server_recv()` to guarantee complete reads
  * Ref: [monad PR #1930](https://github.com/category-labs/monad/pull/1930)
* **\[RPC]** Prevent reserve balance crash in RPC
  * Add reserve balance violation error messages in call frames
  * Ref: [monad PR #1932](https://github.com/category-labs/monad/pull/1932), [monad-bft PR #2629](https://github.com/category-labs/monad-bft/pull/2629)
  * This was already previously released in `v0.12.2-rpc-hotfix`
* **\[Consensus]** Add timeout to `txpool` IPC stream
  * Prevents hanging connections in transaction pool communication
  * Ref: [monad-bft PR #2619](https://github.com/category-labs/monad-bft/pull/2619)
* **\[Consensus]** Reject timeout certificates with empty signers
  * Adds validation to prevent malformed timeout certificates
  * Ref: [monad-bft PR #2630](https://github.com/category-labs/monad-bft/pull/2630)
* **\[Consensus]** Verify RaptorCast chunk length is non-zero
  * Adds validation to prevent malformed RaptorCast chunks
  * Ref: [monad-bft PR #2638](https://github.com/category-labs/monad-bft/pull/2638)
* **\[Execution]** Fix MPT restore bug that failed to preserve `version_lower_bound`
  * Ref: [monad PR #1955](https://github.com/category-labs/monad/pull/1955)
* **\[Execution]** Fix move trie version forward bug
  * Erase versions that fall out of history range before moving forward to newer versions
  * Ref: [monad PR #1957](https://github.com/category-labs/monad/pull/1957)
* **\[Execution]** Fix dangling pointers to intercode
  * Resolves memory safety issue with `get_code` and `read_code` functions
  * Ref: [monad PR #1941](https://github.com/category-labs/monad/pull/1941)
* **\[Execution]** Add retries to `runloop_monad_ethblocks`
  * Ref: [monad PR #1953](https://github.com/category-labs/monad/pull/1953)

#### Notable performance changes

* **\[RPC]** Improve `eth_getLogs` performance
  * Reduce memory copies and unify receipt-to-logs processing
  * Ref: [monad-bft PR #2588](https://github.com/category-labs/monad-bft/pull/2588), [monad-bft PR #2591](https://github.com/category-labs/monad-bft/pull/2591), [monad-bft PR #2631](https://github.com/category-labs/monad-bft/pull/2631)
* **\[Execution]** Fiber: add support for move-only functors
  * Improves execution efficiency by supporting move semantics
  * Ref: [monad PR #1936](https://github.com/category-labs/monad/pull/1936)

#### Notable internal changes

* **\[RPC / Node ops]** Allow RPC to run without `monad-bft`
  * Enables standalone RPC operation for improved deployment flexibility
  * Ref: [monad-bft PR #2613](https://github.com/category-labs/monad-bft/pull/2613)
* **\[Node ops]** Add `--root-offsets-chunk-count` flag to `monad-mpt` to configure the number of chunks allocated for root offsets
  * Each chunk holds approximately 16.5M blocks. Previously, all nodes were hardcoded to use 2 chunks (max TrieDB capacity of \~33M blocks)
  * New default: 16 **must be a power of 2**
  * Note that the default value of 16 translates to approximately 268M blocks \~ 1240 days. In most cases the limiting factor is disk capacity which will auto-compact when filled to 80%
  * Ref: [monad PR #1937](https://github.com/category-labs/monad/pull/1937)
* **\[Node ops]** Peer discovery improvements
  * Full nodes periodically pull validator name records for dynamic validator discovery
  * Add authenticated UDP port to name record
  * Ref: [monad-bft PR #2607](https://github.com/category-labs/monad-bft/pull/2607), [monad-bft PR #2538](https://github.com/category-labs/monad-bft/pull/2538)
* **\[Node ops / Archive]** Archive infrastructure improvements
  * Refactor `monad-block-writer` for improved reliability with `--max-blocks-per-iter` configuration
  * Async backfill with traces-only archive support
  * Add `require-traces` archiver flag and indexer fallback source
  * Support for historical execution event archiving with generic directory archiving
  * **Potentially breaking: Remove `--start-block` from `monad-archiver` systemd service; operators must use imperative CLI to set start block**
    * Example: `monad-archiver set-start-block --block 1000000 --archive-sink s3://bucket-name/path`
    * Use `--async-backfill` flag to set the async-backfill marker instead of primary marker
  * Ref: [monad-bft PR #2610](https://github.com/category-labs/monad-bft/pull/2610), [monad-bft PR #2606](https://github.com/category-labs/monad-bft/pull/2606), [monad-bft PR #2598](https://github.com/category-labs/monad-bft/pull/2598), [monad-bft PR #2514](https://github.com/category-labs/monad-bft/pull/2514), [monad-bft PR #2612](https://github.com/category-labs/monad-bft/pull/2612), [monad-bft PR #2569](https://github.com/category-labs/monad-bft/pull/2569), [monad-bft PR #2623](https://github.com/category-labs/monad-bft/pull/2623)
* **\[Node ops]** Networking configuration updates
  * Use default MTU 1500
  * Add HDR histogram for broadcast latency tracking in `monad-executor` and `monad-raptorcast`
  * Ref: [monad-bft PR #2576](https://github.com/category-labs/monad-bft/pull/2576), [monad-bft PR #2602](https://github.com/category-labs/monad-bft/pull/2602)
* **\[Consensus]** RaptorCast improvements
  * Clear histogram every 30s and keep only p99 for better latency tracking
  * Fix timer update after receiving control messages to ensure proper keepalives
  * Ref: [monad-bft PR #2627](https://github.com/category-labs/monad-bft/pull/2627), [monad-bft PR #2637](https://github.com/category-labs/monad-bft/pull/2637)
* **\[Consensus]** Dataplane: refactor to use socket handles
  * Prepares dataplane for future extension with authenticated sockets
  * Ref: [monad-bft PR #2458](https://github.com/category-labs/monad-bft/pull/2458)
* **\[Execution]** Replay monad: always execute first block off latest finalized state
  * Ref: [monad PR #1927](https://github.com/category-labs/monad/pull/1927)
* **\[Node ops]** Txgen improvements: README and guide, nonce gaps and legacy tx options, ERC20 pools, Uniswap v3 mode, NFT sale mode, websocket and RPC request generation
  * Ref: [monad-bft PR #2568](https://github.com/category-labs/monad-bft/pull/2568), [monad-bft PR #2567](https://github.com/category-labs/monad-bft/pull/2567), [monad-bft PR #2577](https://github.com/category-labs/monad-bft/pull/2577), [monad-bft PR #2600](https://github.com/category-labs/monad-bft/pull/2600), [monad-bft PR #2527](https://github.com/category-labs/monad-bft/pull/2527), [monad-bft PR #2394](https://github.com/category-labs/monad-bft/pull/2394), [monad-bft PR #2608](https://github.com/category-labs/monad-bft/pull/2608)

## v0.12.2 \[2025-11-18]

The Public Mainnet phase began on 2025-11-24. As such, public mainnet started at [`v0.12.2`](/developer-essentials/changelog/releases#v0122).
