Fast ZK-SNARK proof generator for Orbinum privacy protocol. Witness calculation (TypeScript/snarkjs) + Proof generation (WASM/arkworks)
Generate 128-byte Groth16 ZK-SNARK proofs in ~6-8.5 seconds. Same TypeScript code runs identically in Node.js, browsers, Electron, and Tauri.
npm install @orbinum/proof-generatorimport { generateProof, CircuitType } from '@orbinum/proof-generator';
const result = await generateProof(CircuitType.Unshield, {
merkle_root: '0x...',
nullifier: '0x...',
amount: '100',
// ... more inputs
});
console.log('Proof:', result.proof); // 0x... (128 bytes)
console.log('Signals:', result.publicSignals); // ['0x...', ...]- API Reference - Complete API, error handling, configuration
- Formatter Utilities - Data format conversion helpers (decimal, hex, BigInt)
- Development Guide - Setup, testing, architecture details
- ✅ Fast: ~8.5s end-to-end (500ms witness + 5-8s proof)
- ✅ Optimized: Direct decimal format pipeline (no conversion overhead)
- ✅ Compact: 128-byte proofs (50% smaller than snarkjs)
- ✅ Universal: Node.js, browsers, Electron, Tauri - same code
- ✅ Simple: No build tools, no Rust, no setup
- ✅ Type-Safe: Full TypeScript types
| Circuit | Use Case |
|---|---|
| Unshield | Withdraw from pool to public address |
| Transfer | Private-to-private transfer |
| Disclosure | Selective revelation |
- orbinum/groth16-proofs - WASM compilation
- orbinum/circuits - Circuit definitions
- orbinum/node - Main implementation
Dual-licensed under Apache 2.0 or GPL 3.0. See LICENSE-APACHE2 and LICENSE-GPL3.