Menoid docs · V1 Mainnet
Menoid V1
The compliance-friendly multichain privacy layer, live on Monad and Base. Mask, send, swap and unmask privately from your browser — and show your history with a viewing key, only when you choose.
V1 Mainnet · Start here
What V1 is
Menoid V1 is the mainnet release of Menoid: a private app that runs in your browser at app.menoid.xyz. You connect the wallet you already use, sign one message, and that signature becomes your private keys. Your funds then live in a shielded pool as notes only you can open — and every move is checked by a zero-knowledge proof instead of a public balance.
No new app to install, no second seed phrase, no second address. People pay you at your normal address; the pool does the rest.
What’s live today
Mainnets
Monad (143) · Base (8453)
Private actions
Mask · Send · Swap · Unmask
Tokens
28 on Monad · 50 on Base
Memecoins
14 on Monad · 20 on Base
Swap venues
Uniswap V3 · Capricorn (Monad)
Compliance
Full viewing keys
Proofs
Groth16, made in your browser
Testnets
testnet.menoid.xyz, separate keys
How the pieces fit
Your wallet
MetaMask, Phantom…
signs once
Menoid app
in your browser
keys · proofs · decryption
Relayer
submits private txs
pays their gas
NoidPool
one per chain
verifies · holds funds
- The app, in your browser, derives your keys, finds your notes by decrypting the pool’s events, and builds every proof locally. Menoid’s backend serves only public data: the pool’s events, prices, swap quotes and the relayer’s fee.
- The relayer submits sends, swaps and unmasks from its own address and pays their gas, so your address never appears on them. It is paid with a private fee note, in the token you spend.
- NoidPool is one contract per chain. It holds every token in one pool, keeps the Merkle tree of notes, verifies the proofs and refuses any note that was already spent.
Contracts
Monadchain 143
NoidPool (proxy)
0x3A3B64E3230C9A9aA32a1395C2c7B909cbe02EFBImplementation 1.0.0
0x30Eb860540aB57523Cb8E35f78B37D89658F2595Transfer verifier
0xaf3a6f7A0e8AF0bcaCE10fB6c2ca8a2207A63e7bWithdraw verifier
0x436968db6B2B8E729cB21498030c5ebFa4ad0CE6Uniswap V3 adapter
0xf5a599fA588C14C4787a090C7a30f2E4C163762BCapricorn adapter
0xd6E8F9CaD752A21a741660B3aA244EA065A12cA7Basechain 8453
NoidPool (proxy)
0x436968db6B2B8E729cB21498030c5ebFa4ad0CE6Implementation 1.0.0
0xaf3a6f7A0e8AF0bcaCE10fB6c2ca8a2207A63e7bTransfer verifier
0xd2e673237A8F3C0574D45B279202871ca3B45353Withdraw verifier
0xE48c823cE81D4f8C41664C38d09006628dAE369bUniswap V3 adapter
0x30Eb860540aB57523Cb8E35f78B37D89658F2595Both chains were deployed from the same key, so a few addresses repeat across chains with different roles (Monad’s withdraw verifier and Base’s pool share one). That is expected, not a typo.
What the chain sees
On-chain, anyone can see
- That an address registered for Menoid
- Masks: who masked which token, and how much
- Unmasks: which token, how much, and the receiving address
- Swaps: the token pair and both amounts
- Commitments, nullifiers and Merkle roots — opaque numbers
- Encrypted notes — unreadable without a viewing key
Stays private
- Who sent a private payment, and who received it
- How much was sent, and in which token
- Your private balance
- Which mask paid for which unmask
- Who made a swap, and where its output went
- Your keys — they never leave your browser
