Writ splits what is known about a holder between four places, so that no single one of them needs all of it.
- Verifier
- Identity record
- Signs commitments
- Revokes credentials
- Your device
- Credential file: four values and salts
- Makes proofs
- Solana
- Four commitments per wallet
- Rule sets and rule passes
- Checks proofs and transfers
- Issuer
- Its rule sets and mints
- Passes by address, no identity
| Identity record | Attribute values | Commitments | Rule passes | |
|---|---|---|---|---|
| Verifier | Keeps it | Establishes them | Signs them | Can read them |
| Your device | — | In your credential file | Can read them | Can read them |
| Solana | — | — | Stores them | Stores them |
| Issuer | — | — | Can read them | Reads them, by address |
| Writ's server | — | — | Indexes them | Indexes them |
What an issuer learns#
That a wallet holds a live pass for its rule set, until when, and under which epoch: only that the wallet's values meet the rule set, and not which group of it they met. A rule set that reads a single region or a minimum age tells its issuer exactly that much about every wallet that holds its pass, and no more.
What the chain shows#
Commitments are public, but a commitment reveals nothing about its value without the salt, which only you and your verifier have. A pass shows that its wallet met the rule set when it was proved.
Identity records#
The identity record stays with the verifier that checked it, and only that verifier handles a legal request to see it. Writ stores no identity data.
Your credential file#
The app reads your credential file in your browser. If you tick Keep it on this device, it stays in this browser's storage until you remove it from the Passport. It is never sent to Writ.