Monero once had scheduled hard forks every 6 months in 2016, deliberately to force privacy upgrades & prevent protocol ossification. technically noncontentious hard forks
This approach was deliberate to enable regular protocol evolution, enforce timely adoption of privacy enhancements, fix vulnerabilities, adjust mining algorithms for ASIC resistance, & prevent protocol ossification by keeping the network adaptable to emerging threats in the privacy arms race.
Unlike contentious forks that create new coins, these upgrades were community consensus driven, with the old chain abandoned post fork.
The schedule was roughly every 6 months initially, allowing time for users to update without disruption, though it has become less frequent as the protocol matured shifting toward longer intervals or as needed changes to avoid unnecessary forks while still preventing stagnation.
Below is a chronological timeline of Monero’s mainnet network upgrades, including approximate activation dates based on target block heights, fork versions, & key changes.
• March 22, 2016 (Block 1,009,827) - Fork v2 : Required ring sizes of at least 3 for transactions, set block time to 120 seconds, & established a fee free block size of 60 KB. This was the first scheduled upgrade, marking the start of the 6 month cycle to promote ongoing improvements.
• September 21, 2016 (Block 1,141,317) - Fork v3 : Split coinbase outputs into denominations for better privacy mixing and transaction uniformity.
• January 5, 2017 (Block 1,220,516) - Fork v4 : Introduced support for both standard & Ring Confidential Transactions (RingCT), enabling hidden transaction amounts while maintaining privacy. This was a major step in forcing privacy upgrades across the network.
• April 15, 2017 (Block 1,288,616) - Fork v5 : Adjusted the minimum block size & fee algorithm to improve scalability & economic incentives.
• September 16, 2017 (Block 1,400,000) - Fork v6 : Mandated RingCT for all transactions & required ring sizes of at least 5, further enhancing privacy by increasing anonymity sets.
• April 6, 2018 (Block 1,546,000) - Fork v7 : Switched to CryptoNight variant 1 (for ASIC resistance), required ring sizes of at least 7, & enforced sorted inputs in transactions to standardize formats.
• October 18, 2018 (Block 1,685,555) - Fork v8 : Limited outputs per transaction to 16, changed PoW to CryptoNight variant 2, enabled Bulletproofs for more efficient range proofs reducing transaction sizes, & required 10 confirmations for alternative blocks.
• October 19, 2018 (Block 1,686,275) - Fork v9 : Enforced 10 confirmations for locking transfers, building on v8 for improved security.
• March 9, 2019 (Block 1,788,000) - Fork v10 : Adopted CryptoNightR PoW for continued ASIC resistance, introduced a new dynamic block weight algorithm, & optimized RingCT formats for efficiency.
• March 10, 2019 (Block 1,788,720) - Fork v11 : Prohibited older MLSAG/RingCT transaction formats to phase out legacy features & enforce modern privacy standards.
• November 30, 2019 (Block 1,978,433) - Fork v12 : Switched to RandomX PoW (CPU friendly, ASIC resistant), required at least 2 outputs per transaction, adjusted block median for penalty calculations, & used a 1 byte median size for optimizations.
• October 16, 2020 (Block 2,210,000) - Fork v13 : Increased ring size to 11 & added a new fee per byte structure to bolster privacy & resist spam.
• October 18, 2020 (Block 2,210,720) - Fork v14 : Banned RingCT outputs of type 0 to eliminate outdated formats.
• August 13, 2022 (Block 2,688,888) - Fork v15 : Raised ring size to 16 for stronger anonymity sets, added view tags to speed up wallet scanning by 30~40%, adjusted fees & dynamic block weights for better attack resistance, & upgraded to Bulletproofs for smaller, faster transactions.
• August 14, 2022 (Block 2,689,608) - Fork v16 : Prohibited empty RingCT signatures to close potential vulnerabilities.