{"_id":"@bolyra/circuits","name":"@bolyra/circuits","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bolyra/circuits","version":"0.1.0","description":"Prebuilt Circom circuit artifacts for the Bolyra ZKP identity protocol","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"bash scripts/copy-artifacts.sh && tsc","test":"mocha --require ts-node/register test/**/*.test.ts --timeout 10000"},"repository":{"type":"git","url":"git+https://github.com/bolyra/bolyra.git","directory":"circuits-package"},"publishConfig":{"access":"public"},"license":"Apache-2.0","keywords":["zkp","circom","snarkjs","groth16","plonk","bolyra","identity"],"devDependencies":{"@types/chai":"^4.3.0","@types/mocha":"^10.0.0","@types/node":"^20.0.0","chai":"^4.3.0","mocha":"^10.0.0","ts-node":"^10.9.0","typescript":"^5.0.0"},"gitHead":"16288a3fecac09bb61cba1d370fbf4530d1626e6","_id":"@bolyra/circuits@0.1.0","bugs":{"url":"https://github.com/bolyra/bolyra/issues"},"homepage":"https://github.com/bolyra/bolyra#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-sHGNnsd4eRZJVUJ3/9UeRKVKYAPseMdXAo3avYQrq2n765wTCwx7fN5h7jJ2YNdp709lrc5lIwWW4/RRwrg40A==","shasum":"59dd894038e2e89462645edd589fa957fe33d4ff","tarball":"https://registry.npmjs.org/@bolyra/circuits/-/circuits-0.1.0.tgz","fileCount":20,"unpackedSize":38388248,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCcXk04zD3e40s89NbmitT69Adf2771/WAQ8my5YWnf2wIgCtNxNvCthstUh8jFLY66yTMG0zqM4KXKfas8fZFISvw="}]},"_npmUser":{"name":"saneguy","email":"kondojuviswanadha@gmail.com"},"directories":{},"maintainers":[{"name":"saneguy","email":"kondojuviswanadha@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/circuits_0.1.0_1781926926738_0.40764828469144887"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-20T03:42:06.521Z","0.1.0":"2026-06-20T03:42:07.158Z","modified":"2026-06-20T03:42:07.402Z"},"maintainers":[{"name":"saneguy","email":"kondojuviswanadha@gmail.com"}],"description":"Prebuilt Circom circuit artifacts for the Bolyra ZKP identity protocol","homepage":"https://github.com/bolyra/bolyra#readme","keywords":["zkp","circom","snarkjs","groth16","plonk","bolyra","identity"],"repository":{"type":"git","url":"git+https://github.com/bolyra/bolyra.git","directory":"circuits-package"},"bugs":{"url":"https://github.com/bolyra/bolyra/issues"},"license":"Apache-2.0","readme":"# @bolyra/circuits\n\nPrebuilt Circom circuit artifacts for the [Bolyra](https://bolyra.ai) ZKP identity protocol.\n\nShips `.wasm` witness calculators, `.zkey` proving keys (Groth16), and `.vkey.json` verification keys for all three production circuits:\n\n- **HumanUniqueness** -- Semaphore v4-style enrollment proof\n- **AgentPolicy** -- EdDSA-signed agent credential proof\n- **Delegation** -- One-way scope-narrowing delegation proof\n\n## Install\n\n```bash\nnpm install @bolyra/circuits\n```\n\n## Usage\n\n```typescript\nimport {\n  getCircuitArtifacts,\n  getArtifactsDir,\n  getVerificationKey,\n  listAvailableCircuits,\n} from '@bolyra/circuits';\n\n// Get artifact paths for a circuit\nconst { wasm, zkey, vkey } = getCircuitArtifacts('HumanUniqueness');\n\n// Use with snarkjs\nconst { proof, publicSignals } = await snarkjs.groth16.fullProve(\n  input,\n  wasm,\n  zkey,\n);\n\n// Get the verification key as parsed JSON\nconst vkeyJson = getVerificationKey('HumanUniqueness');\nconst valid = await snarkjs.groth16.verify(vkeyJson, publicSignals, proof);\n\n// List all available circuit/system combinations\nconst available = listAvailableCircuits();\n// [{ circuit: 'HumanUniqueness', system: 'groth16' }, ...]\n\n// Get the artifacts directory (useful for @bolyra/sdk integration)\nconst dir = getArtifactsDir();\n```\n\n## Available Circuits\n\n| Circuit | Groth16 | Notes |\n|---------|---------|-------|\n| HumanUniqueness | Yes | Reuses Semaphore v4 ceremony (depth 20) |\n| AgentPolicy | Yes | Project-specific Phase 2 ceremony |\n| Delegation | Yes | Project-specific Phase 2 ceremony |\n\n## Trusted Setup Provenance\n\n- **HumanUniqueness (Groth16):** Reuses the Semaphore v4 Phase 2 ceremony at depth 20. No project-specific trusted setup required.\n- **AgentPolicy (Groth16):** Project-specific Phase 2 ceremony using `pot16.ptau` (Hermez Cryptographic Ceremony, 2^16 powers).\n- **Delegation (Groth16):** Same as AgentPolicy.\n\n## Package Size\n\n~29 MB (Groth16 artifacts only). PLONK proving keys (~146 MB each) are excluded. PLONK verification keys are included for verification-only use cases.\n\n## Integration with @bolyra/sdk\n\nNote: The SDK does not yet auto-resolve artifacts from this package. Pass the artifacts directory to the SDK config manually: `{ circuitDir: require('@bolyra/circuits').getArtifactsDir() }`. Auto-resolution is planned for a future SDK release.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md","_rev":"1-3998444b69b6f164d40dff0c889d4287"}