Eyes closed. Details hidden.
Every transfer you make on a public chain is visible forever. The amount, and who you paid, sit in plain sight for explorers, MEV bots, and anyone curious about your balance. Protocol15 hides both the amount and the recipient of a transfer, while staying selectively auditable: hand someone a viewing key and only they see the full detail.
Private by default. Auditable when needed.
Why "15"
The eye's blind spot, the optic disc, sits about 15 degrees off the visual axis. It is a patch of retina with no photoreceptors, where you literally see nothing. The brain fills the gap so vision feels continuous. That is the whole idea: the details still exist, they just live where no one else can look.
What it is, in one line
A single Blind Mode toggle on an otherwise normal transfer. No shielded pool, no deposit and withdraw, no bridge. It hides the amount with confidential balances and hides the destination with stealth addresses, then proves both are valid with succinct zero-knowledge proofs. It confirms in seconds and composes with the wallets and apps people already use. On an explorer it reads only as a Protocol15 transfer.
How to read these docs
These docs serve two audiences and one machine.
- If you just want to understand it: start with How it works for the plain-language tour, then Concepts for the precise mechanics, what Blind Mode hides, the privacy model, stealth delivery and scanning, auditability, and the threat model.
- If you are integrating it into a wallet or an app: go to Guides. The Quickstart gets you to a blind transfer fast, then the wallet and app integration pages and the Recipes cover the full surface. The SDK reference documents every package (@p15/stealth, @p15/blind-mode, @p15/compliance) and Programs is the on-chain ground truth (note-vault and the rest).
- If you are an AI agent: these docs are written to be implemented without a human. See For AI agents, with a machine index at /llms.txt and the entire docset as plain text at /llms-full.txt.
A note on access
Protocol15 is closed by design. The protocol runs on devnet, the dApp is invite-only, and there is no public app link. These docs explain how it works; they are not a way in. If you want access, join the waitlist from the landing page.