How Privacy Works
A simple explanation of the zero-knowledge proofs that power Senddy.
What is a zero-knowledge proof?
A zero-knowledge proof lets you prove something is true without revealing the underlying information. For example:
- Prove you have enough money to make a payment — without revealing your balance
- Prove a transaction is valid — without revealing the amount or participants
- Prove your funds came from legitimate sources — without revealing your transaction history
This is the core technology that makes Senddy private.
How Senddy uses ZK proofs
Every transaction on Senddy involves a zero-knowledge proof:
When you deposit (Shield)
Your public deposit is converted into private "notes." The shield proof proves:
- The private notes are worth exactly the amount deposited (no creation of value)
- The note commitments are correctly formed
- The notes can only be spent by the depositor
After shielding, the connection between your public deposit and your private notes is cryptographically broken.
When you send or withdraw (Spend)
Spending private notes requires a proof that demonstrates:
- Ownership — You know the secret key for the notes you're spending
- Existence — The notes exist in the Merkle tree (they haven't been fabricated)
- Conservation — The inputs equal the outputs (no value created or destroyed)
- Uniqueness — The nullifiers prevent double-spending
The proof reveals none of the following:
- Which specific notes are being spent
- The value of any note
- The identity of the sender or recipient
What is visible on-chain?
| Data | Visible on-chain? |
|---|---|
| A transaction occurred | Yes |
| Proof was verified | Yes |
| Nullifiers (prevent double-spend) | Yes |
| New note commitments | Yes |
| Sender identity | No |
| Recipient identity | No |
| Amount transferred | No |
| Sender's balance | No |
| Recipient's balance | No |
| Link between sender and recipient | No |
| Transaction history | No |
Encrypted memos
Senddy supports encrypted memos attached to transactions. Memos are encrypted using X25519 ECDH key exchange with XChaCha20-Poly1305 symmetric encryption. Only the sender and recipient can decrypt the memo.
Viewing keys
Each Senddy account has a pair of keys:
- Spend key — Required to spend your notes. Never leaves your device.
- View key — Used to scan the blockchain and identify which notes belong to you. Can be shared with auditors if you choose to.
This separation allows optional compliance: you can grant read access to your transaction history without giving anyone the ability to move your funds.