PrivaCred

Privacy-preserving attribute-based authorisation. The browser generates the proof; the verifier never sees any attribute value.

What is this?

PrivaCred binds a BBS+ selective-disclosure credential to a zk-SNARK predicate proof through a Poseidon commitment that both sides hash independently. You pick a predicate; this page proves it against a pre-issued demo credential entirely in your browser (snarkjs's wasm target) and the demo verifier confirms the proof. The verifier learns only the boolean answer, never the attribute values.

Demo credentials are pre-issued with a public test keypair — see packages/demo-web/test-fixtures/issuer-keypair.json. These are not real PrivaCred issuer keys; they exist so anyone can reproduce the demo locally.

Proof system

Choose a predicate

Result

Pick a predicate above to generate a proof.

Presentation (sent to /verify)

no proof yet

Server status

loading…