Skip to main content

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.