Skip to main content
PSR (Provable Stealth Reputation) lets issuers attest facts about a stealth identity without learning the recipient’s public address. Recipients discover traits via their scanner and prove them with zero-knowledge.

V2 model

Schemas and attestations return chain-neutral SchemaV2 / AttestationV2 shapes from both Ethereum and Solana.
Schema registration and attestation issuance run on Ethereum and Solana only. Proof verification and gating extend further: the Groth16 verifier, OpaqueReputationVerifierV2, and the PsrGate credential-gated-entry contract are also deployed on Starknet, so proofs from the same trusted setup verify identically on all three chains (via @opaquecash/psr-chain-starknet). See Starknet for the verification path and its testnet-preview caveats.

Issuer flow

Recipient flow

Recipient formats

issueAttestation accepts:

Action scopes and nullifiers

Proofs are scoped to a specific action via externalNullifier:
The same trait + scope can only be verified once (nullifier consumed on-chain).