
Private payments on Stellar
Pay without
leaving a trace.
Unlinkable by design
Prove, don’t reveal
Blend into the crowd
Recipient-locked
How it works
Three steps. You sign once — the payout is submitted by a relayer, so your account never appears on it.
Deposit
Pick a denomination and lock it into the shielded pool with one Freighter signature. A secret note is created on your device.
Prove — in your browser
Your browser proves your note is in the pool (Groth16, ~seconds). The secret never leaves the tab.
A relayer pays them
The contract verifies the proof on-chain and pays the publisher — submitted by a relayer, not by you. Pay now, or shield and pay later.
What the chain sees vs. what stays hidden
Public on-chain
- deposit tx → pool (from you)
- payout tx → publisher (from a relayer)
- denomination 0.1 XLM (same as everyone)
- nullifier 0x20fc… (blocks double-spend)
- proof ✓ valid
Hidden by math
- who paid whom ████
- your wallet on the payout ████
- which deposit funded it ████
- note secret ████ (never leaves your device)
Honest by design: the denomination is public — VeilGate hides who paid whom, not how much.
Disappear into the crowd.
Real payments on Stellar testnet, verified by zero-knowledge proofs on Soroban.
Connect Freighter to startNo account. No email. Your wallet is your identity.
Running on Stellar Testnet · Proofs are real · Contracts are not audited · Do not use real funds