The most significant privacy and scalability upgrade in Monero's history is finally taking shape.
After years of research and development, Monero is on the verge of deploying Full-Chain Membership Proofs (FCMP++) — a cryptographic breakthrough that redefines what privacy means in a blockchain. This isn't just another incremental improvement; it's a fundamental re-architecture of how Monero handles transaction privacy, scalability, and wallet synchronization.
- The Problem: Why Rings Aren't Enough
Since its launch, Monero has relied on ring signatures to obscure transaction origins. Each input is mixed with decoys — typically 15 other outputs — creating an anonymity set of 16.
While effective for years, ring signatures have inherent limitations:
Vulnerability Description
EAE Attacks Adversaries can manipulate decoy selection to reduce privacy
Chain Reorganizations Rings can become invalid after chain reorgs
Statistical Analysis Decoy selection algorithms can be exploited
Limited Anonymity Set Only 16 outputs per input, not the full chain
FCMP++ solves all of these by proving that an output being spent is one of any output on the entire blockchain — an anonymity set of over 100 million outputs.
- What is FCMP++?
Full-Chain Membership Proofs (FCMP++) is a cryptographic protocol that replaces ring signatures with a merkle-tree based proof system.
2.1 How It Works
FCMP++ proves two things simultaneously:
Membership: The output being spent exists in the blockchain's output set
Spend Authorization: The spender holds the private key for that output
The proof is constructed using a Bulletproofs-based circuit with optimizations for Merkle tree membership proofs.
2.2 The Architecture
The integration consists of several core components:
text
┌─────────────────────────────────────────────────────────────┐
│ FCMP++ Architecture │
├─────────────────────────────────────────────────────────────┤
│ Rust FFI │ C++ Core │
│ ───────── │ ──────── │
│ • Helios/Selene │ • Tree state management │
│ curve math │ • LMDB database updates │
│ • FCMP++ │ • Transaction construction │
│ construction │ • Transaction verification │
│ • FCMP++ │ • RPC routes │
│ verification │ • Wallet sync │
└─────────────────────────────────────────────────────────────┘
Key technical details:
The Rust code is compiled into a static library (libfcmp_pp_rust.a)
C++ consumes it via a generated FFI header (fcmp++.h)
The C++ layer manages the curve trees merkle tree — a new store for spendable outputs
All existing valid outputs are inserted into the tree once unlocked
2.3 Why "++"?
FCMP++ is actually the second proposal. The first FCMP required the full Seraphis migration (new address format, invalidating all prior addresses).
FCMP++ independently adds Spend Authorization + Linkability, removing the dependency on Seraphis. This means:
✅ Faster to deploy — no full-chain migration required
✅ No new address format — existing addresses continue to work
✅ Same privacy benefits — anonymity set of millions
- New Features Unlocked by FCMP++
Beyond massive privacy improvements, FCMP++ introduces several entirely new capabilities to Monero:
3.1 Transaction Chaining
Sign a transaction that spends another transaction before the spent transaction is published and mined. This enables layer-two designs such as payment channels.
3.2 Outgoing View Keys
Currently, Monero only has incoming view keys (detect received funds). Outgoing view keys allow detection of when received outputs are spent. This enables:
Much more efficient cold wallet setups
More efficient multisignature wallets
A single unified "view key" (no incoming/outgoing distinction)
3.3 Forward Secrecy
Even with a quantum computer (discrete log oracle), an adversary cannot break privacy. This is a critical feature for long-term confidentiality.
- Implementation Status & Roadmap 4.1 Current Status (Mid-2026)
The FCMP++ integration is actively being developed, audited, and tested:
Component Status
Code Integration Multiple PRs open in the seraphis-migration/monero repository
Audit Phase 1 audit in progress, planned completion before July 2026
Testing FCMP++/Carrot beta stressnet active
Wallet Implementation CLI wallet supports sending/receiving with Carrot+FCMP
4.2 Key Milestones
text
Q1-Q2 2026: FCMP++ Alpha Stressnet
├── v1.5 released with improved validation and sync[reference:28]
├── Memory consumption reduced
└── Node sync performance improved
Q2 2026: Audit Phase 1
├── Code review by Veridise (formal methods)[reference:29]
├── Issues triaged and fixed[reference:30]
└── Phase 1 completion before July[reference:31]
H2 2026: Production Deployment
├── Piecemeal PRs submitted to main Monero repo[reference:32]
├── Documentation finalized[reference:33]
└── Hard fork activation
4.3 Performance Characteristics
Early testing has revealed the following metrics:
Metric Current (CLSAG) FCMP++
Verification time (1-input) Fast ~10x slower than 16-member CLSAG
Transaction size (2-in/2-out) ~2,200 bytes ~5,000 bytes
Transaction size (max) ~1,500-2,200 bytes ~10,000 bytes
Anonymity set 16 100,000,000+
Note: The increased verification time is a trade-off for the dramatically larger anonymity set. Hardware improvements and future optimizations will mitigate this.
- Wallet Changes & User Impact 5.1 Seed Compatibility
Your existing 25-word seed will still work. The spend secret key stays the same; the seed can restore a Seraphis/FCMP++ wallet.
5.2 New Wallet Features
Faster syncing: Up to 50-60% speedup with clearnet nodes, 25-35% with local nodes
New wallet tiers: Full view-only functionality without spend key
Async scanner: Improved privacy for light wallets
5.3 What Users Need to Do
Update your wallet software when the upgrade is deployed
Your seed will restore your funds — no migration needed
New addresses will be longer
- What About Seraphis?
FCMP++ does NOT require the full Seraphis migration.
The original Seraphis proposal introduced a new address format (invalidating all prior addresses) and a migration to a new anonymity set.
FCMP++ achieves the same privacy benefits without:
Invalidating existing addresses
Requiring a full-chain migration
Changing the address format
This is why FCMP++ is the path forward. Seraphis may still be implemented later, but FCMP++ delivers the critical privacy improvements much faster.
-
Why This Matters for Developers
7.1 If You Build on MoneroYour integration will work — no breaking changes to address formats
Better UX — faster sync, lower fees, better privacy
New capabilities — transaction chaining enables new product designs
7.2 Preparing Your Application
Stay updated on the FCMP++ deployment timeline
Test your wallet integration on the stressnet
Watch for RPC changes — new methods for scan_tx, tree caching
7.3 Relevant Resources
FCMP++ Integration Documentation
Implementation Tracker
Audit Overview
- Conclusion
The FCMP++ upgrade represents a paradigm shift in blockchain privacy:
Before After
Anonymity set of 16 Anonymity set of 100,000,000+
Vulnerable to statistical analysis Mathematically unlinkable
No forward secrecy Quantum-resistant privacy
No transaction chaining Layer-two capable
Slow wallet sync 50% faster sync
Monero is becoming what it was always meant to be: truly private, truly scalable, and truly unstoppable.
The code is being audited. The stressnet is running. The deployment is coming.
If you care about privacy, this is the moment to pay attention.
🔗 Resources
FCMP++ Integration Docs
Implementation Tracker
Audit Overview
Monero Blog: FCMP Development
Monero Research Lab
This article reflects the state of Monero's FCMP++ integration as of July 2026. The protocol is under active development; details may change as the upgrade progresses toward mainnet deployment.
Top comments (0)