FAQ
Why does the SDK say precompute / present while Rust says prepare / show?
They name the same two phases; the WASM exports and CLI keep Circom/Rust naming, while the TypeScript API uses wallet-centric verbs (OpenAC class).
Where is Noir?
This repository’s circuits are Circom; proving uses Spartan2 (wallet-unit-poc/ecdsa-spartan2). There is no Noir nargo project here.
Does openac-sdk implement revocation?
Not in 0.1.0. Scenario tooling discusses future in-proof revocation; see Revocation overview.
Why does precompute fail with “device binding key”?
The JWT must expose cnf.jwk as a P-256 JWK — enforced when resolving the device key (credential.ts).
Where do proving keys come from?
Generate with ecdsa-spartan2 (prepare setup / show setup) after compiling circuits — see openac-sdk/README.md.
DocSearch / Algolia?
If repository secrets ALGOLIA_APP_ID, ALGOLIA_SEARCH_API_KEY, and ALGOLIA_INDEX_NAME are set, the docs build enables search automatically (docusaurus.config.js). See Contributing — Algolia.
GitHub fork vs upstream
This fork’s docs and package repository URLs use zulu0echo/zkID. docusaurus.config.js picks the GitHub owner from GITHUB_REPOSITORY_OWNER in Actions (so CI matches the repo that runs the workflow), or from ZKID_DOCS_GITHUB_OWNER if you set it locally, otherwise it defaults to zulu0echo. The upstream privacy-ethereum org is still the right place for issues/PRs if you contribute back—see root CONTRIBUTING.md.