MMR Proofs: The Missing Link in Cross-Chain Verification

Cross-chain verification has a trust problem.
Most bridges rely on multisig committees or trusted oracles. You’re not verifying the state of another chain — you’re trusting a set of signers who claim to have done that verification for you.
MMR proofs are a different approach.
What is a Merkle Mountain Range?
An MMR is an append-only accumulator. Every element added to the MMR produces a new peak. A proof of inclusion for any element is O(log n) in size — small enough to verify on-chain.
For block headers, this means: given the MMR root, anyone can prove that a specific block existed at a specific height, with a verifiable path from that block to the root.
No committee. No oracle. Just math.
Taifoon’s implementation
Taifoon maintains a live MMR for every supported chain. Each time a new block header is collected, it’s appended to that chain’s MMR. The root is updated and stored.
The DA API exposes proof generation: given a block height on any chain, it returns the inclusion proof and the MMR root valid at that point in time.
On-chain verification
The MMRProofVerifier contract accepts a proof and a root, and returns a boolean. Any smart contract can call it.
This is the building block for the Lambda execution layer: an executor proves that a cross-chain event occurred, submits the proof, and the Operator contract verifies it — all on-chain, without trusting any intermediary.
Performance
Proof generation runs in under 20ms for any block on any chain. The MMR root is updated within 500ms of block collection. At current collection rates (39 chains, ~2.7M blocks), storage is approximately 400MB.
What this enables
- Cross-chain settlement without bridges
- On-chain proof of historical state
- Verifiable finality attestations for L2s
- Trustless executor systems (Across, SURGE, and custom Lambda adapters)
The MMR layer is live. The proof API is open at api.taifoon.dev.
