PrivateTip
Tip on Flow with the amount kept private.
People see who tipped whom — but never how much. Powered by Pedersen commitments and Groth16 proofs.
Privacy, not anonymity. Non-custodial. Sender and recipient addresses stay public on-chain.
Amounts become opaque at the entry boundary and re-appear only when withdrawn.
Connect your wallet to get started
What everyone sees vs what you see
The chain shows public traffic. Your wallet sees the real values. Amounts only become visible at the entry and exit boundaries.
Privacy primitives,
drop-in for any Flow app.
PrivateTip is a 250-line demo on top of the Janus stack. The SDK ships the hard parts so you can ship the app.
JanusFlow
Hidden-amount FLOW transfers
Pedersen commitments + Groth16. Amounts never appear in calldata, events, or storage.
ShieldedNote
Encrypted recovery payload
Bundles (amount, blinding, memo) — what every shielded transfer needs so recipients can reconstruct and unwrap.
Sign-derive MemoKey
Wallet-derived inbox key
Same wallet → same key on every device. No seed phrase, no localStorage secret, no on-chain leak.
Groth16 + ceremony
Production-grade ZK
Multi-party trusted setup (Hermez pot18 + Flow VRF beacon) backing every privacy proof.
Cross-VM atomic ops
One tx, both chains
A single Cadence transaction calls EVM Groth16 verifiers + updates storage — no bridges, no two-step UX.
Browser-safe SDK
Lazy Node imports
Crypto barrel routes heavy lifting through API routes — keeps Turbopack bundles small and fast.
What else could you build with this?