Verify Umbra bridge accountability proofs (signed receipts, checkpoints, Merkle inclusion).
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Β Β
UMBRAΒ Β
Swap XMR, BTC, ETH, TON, SOL and more β trustless MPC threshold signatures, real-time rates, zero KYC.
Umbra is a non-custodial cross-chain bridge built around Monero β the only cryptocurrency with mandatory privacy. It enables trustless swaps between privacy coins and public blockchains using FROST threshold signatures (2-of-3 MPC), meaning no single party ever holds your funds.
What makes Umbra different from every other bridge is the Proof Layer: the bridge does not ask to be trusted β it produces cryptographic evidence for everything it does, and ships the tools to check that evidence offline.
Bridges are the most-hacked primitive in crypto (Ronin $624M, Multichain $126M, Nomad $190M, Harmony $100M β drained over minutes-to-hours while nothing watched). Umbra's answer is a layer of verifiable accountability that no major bridge ships today:
Every lifecycle event of every order (order_created, status_confirming, status_completed, β¦) produces a receipt signed with the bridge's Ed25519 key over canonical JSON. Receipts for one order are hash-chained (each embeds the SHA-256 of the previous receipt), so a user holding their final receipt can detect any retroactive edit to their order's history. Receipts carry a hash of the destination address, not the address β the proof layer never becomes a metadata leak.
Receipts are archival evidence with a multi-decade shelf life. Alongside Ed25519, every receipt and checkpoint is signed with ML-DSA-65 (FIPS 204, CRYSTALS-Dilithium) over the same canonical bytes. Ed25519 stays the cheap, universally verifiable online layer; the ML-DSA signature keeps the archive forgery-proof against a future quantum adversary. Forging history requires breaking both schemes.
The audit hash-chain is sealed every few minutes into a signed Merkle checkpoint (the RFC 6962 construction used by Certificate Transparency, validated against the CT known-answer vectors). Anyone can then demand:
GET /v1/proof/inclusion/{audit_id} proves a specific audit entry is committed to by a checkpoint (logβ n hashes, verifiable offline).GET /v1/proof/consistency?old_size=&new_size= proves a newer checkpoint is a pure append-only extension of an older one. History cannot be rewritten without detection.Mirror GET /v1/proof/checkpoint/latest on a cron job and you become an external witness the operator cannot silently contradict.
Five guards run every 30 seconds:
| Guard | Trips when | Would have caught |
|---|---|---|
| Outflow velocity | per-chain outbound volume exceeds hourly caps | Ronin, Harmony (key-compromise drains) |
| Order velocity | order creation rate spikes | bot floods, probing attacks |
| Failure spike | failed orders cluster | subsystem exploitation |
| Rate divergence | independent price sources disagree > 5% | oracle poisoning |
| ML anomaly (optional) | Isolation Forest flags order-flow combinations vs the 7-day baseline | drain signatures no fixed threshold expresses |
A trip pauses new intake only β in-flight swaps keep settling, so a false positive costs minutes of intake, not user funds. The sentinel never auto-resumes: a human must investigate and resume with a note. Every trip, pause, and resume lands in the tamper-evident audit chain and the public GET /v1/proof/status endpoint β the bridge cannot be paused or unpaused in secret. The ML guard fails open: a risk-engine outage never blocks the bridge.
GET /v1/proof/canary returns a signed statement embedding the current time and the latest checkpoint root β it cannot be replayed against a rewound log. A canary that stops updating is itself a signal.
Three independent verifiers ship in this repo, all validated against RFC 8032 test vectors and against each other:
| Verifier | Trust required |
|---|---|
website /verify page | verification runs client-side in your browser |
verifier/umbra-verify.html | none β save the file, open from file://, zero network requests, pure-BigInt Ed25519 with an on-load self-test |
tools/verify_receipt.py | none β pure Python stdlib, no dependencies; receipts/checkpoint/inclusion subcommands |
Pin the bridge's public key (GET /v1/proof/key) out-of-band once; from then on, every receipt either verifies or it doesn't. Telegram users get the same via /receipt <order_id> and /trust.
The full wire-format specification β exact canonical forms, algorithms, threat model, and test vectors for building your own verifier β lives in docs/PROOF_LAYER.md.
| Chain | Ticker | Type |
|---|---|---|
| Monero | XMR | Privacy L1 |
| Bitcoin | BTC | L1 |
| Ethereum | ETH | L1 |
| TON | TON | L1 |
| Solana | SOL | L1 |
| Arbitrum | ARB | L2 (EVM) |
| Base | BASE | L2 (EVM) |
| USDT / USDC | Stablecoins | Multi-chain |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/umbra-proof)<a href="https://allmcps.com/mcp/umbra-proof"><img src="https://allmcps.com/api/badge/umbra-proof?style=directory" alt="Umbra Proof on AllMCPs" /></a>