Portable Selective Disclosure Proof — Interactive Security Demo
Real Groth16 proof + Ed25519 signatures. Customer proves age >= 18, jurisdiction US, KYC level 2. Name, birthdate, passport number stay hidden.
Pick a pre-built attack OR edit the JSON below to craft your own. Every tampering is caught.
Same credential, same verification — but look at what the verifier sees.
Same policy verified by 4 backends: arkworks (Rust), gnark (Go), Circom/snarkjs, and demo. Verifier code doesn't change. Tamarin-proven (L10a, L10b). Circuits formally verified (Picus + Circomspect).
Range proofs, set membership, disjunctions, sanctions screening — one policy, one proof.
Generate a standard authorization request that EUDI wallets can scan.
20 security lemmas verified by the Tamarin prover under Dolev-Yao adversary model. The project's standard verification command uses --derivcheck-timeout=0, which yields a clean wellformedness pass for both models.
Production API with authentication, rate limiting, and security headers:
API docs: /docs | Demo endpoints require no key.
Register for a free key to verify PSDP proofs independently. No credit card required.