Skip to main content

OpenAC in this repository

OpenAC (Open Design for Transparent and Lightweight Anonymous Credentials) is a two-phase anonymous credential design: a Prepare (policy-independent) proof over the issued credential, and a Show proof that binds a verifier challenge, evaluates presentation predicates, and links back to the same committed message vector. The construction targets standards-aligned wallets and is written up for EUDI ARF compatibility; see the mapping discussion in the paper (Paper appendix — EUDI) and EUDI mapping.

Who this site is for

  • Wallet and identity engineers integrating SD-JWT–style selective disclosure with unlinkable presentations.
  • Verifier operators checking Spartan2 proofs and public outputs (predicate result, device key coordinates).
  • Standards readers tracing how OpenAC relates to ICAO 9303, SD-JWT, and ongoing ETSI / EUDI work.

What ships in zkID

AreaLocationNotes
OpenAC SDK (TypeScript 0.1.0)wallet-unit-poc/openac-sdk/WASM + optional Circom witness assets; precompute / present API.
Circom circuitswallet-unit-poc/circom/JWT variants jwt / jwt_1kjwt_8k, show, ecdsa, experimental mdoc.
Spartan2 CLIwallet-unit-poc/ecdsa-spartan2/prepare / show setup, prove, reblind, verify.
Predicate design notegeneralized-predicates/README.mdFormal model (no circuits in this folder).
Revocation research pointersrevocation/README.mdLinks + narrative; no in-repo cryptographic revocation module.
Paper (LaTeX + PDF)paper/Canonical public version: IACR ePrint 2026/251.

Two-phase flow (Prepare / Show)

Terminology: the TypeScript SDK exposes precompute and present; the Rust CLI and WASM layer use the names prepare and show.

Versioning

  • SDK version is published in openac-sdk package.json (currently 0.1.0). Feature-level “v1 / v2” protocol labels are not yet mirrored as separate semver lines across the whole repo—treat the paper + this site’s “experimental” callouts as normative for roadmap items (mDOC path in Circom, W3C VC, in-proof revocation).

Next steps