No real FLOW is used. For demonstration only. · Audit in progress.
a Janus stack demo

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.

PublicShielded zonePublic

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.

Public chain — what observers see
You wrap+2.0 FLOWvisible at entry
You send0x4e…f3aamount opaque
Friend tips0xd1…9c2amount opaque
You withdraw−1.5 FLOWvisible at exit
hidden zone
Your wallet — what you see
You wrap+2.0balance: 2.0
You send−0.5balance: 1.5
Friend tips+1.0balance: 2.5
You withdraw−1.5balance: 1.0
Inside the hidden zone: Pedersen commitments hide amounts, ECIES encrypts memos.Sender ↔ recipient stays public — that's the social proof part of tipping.
@claucondor/sdk · v0.5.6 · audit in progress

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?

Sealed-bid NFT auctionsHidden-pack openingsPrivate trading arenasConfidential payrollConfidential donationsCross-VM privacy wallets