zk-threshold-proof
Version:
A lightweight SDK to generate and verify ZK proofs that assert a private value is greater than or equal to a threshold.
117 lines (82 loc) • 2.76 kB
Markdown
[](https://www.npmjs.com/package/zk-threshold-proof)
# zk-threshold-proof
A modular, multichain SDK for generating and verifying zero-knowledge proofs based on threshold logic — supporting local proof generation, off-chain verification, and adapter-based integration with ZK protocols like Polygon ID, Semaphore, and zkVerify.
## ✨ What's New (v0.3.2)
- ✅ `witnessBuilder(config.json)` support — zero-boilerplate proof generation
- ✅ Modular adapter system for Polygon ID, Semaphore, zkVerify
- ✅ Easy CLI/Node.js usage
- ✅ Example circuits ready to go (`circuits/ageVerifier/`)
## 📦 Install
```bash
npm install zk-threshold-proof
```
## 🚀 Quick Start (with config.json)
Create a file `config.json` (see `/circuits/ageVerifier/config.json` for template):
```json
{
"circuitPath": "./circuits/ageVerifier/ageVerifier.circom",
"input": {
"birthDate": 631152000,
"minAge": 18,
"currentDate": 1718169600
}
}
```
Then run:
```js
const { generateProof, verifyProof } = require('zk-threshold-proof');
(async () => {
const proof = await generateProof('./circuits/ageVerifier/config.json');
const result = await verifyProof(proof);
console.log("✅ Proof verified:", result);
})();
```
## 🌐 Multichain Adapters
The SDK includes ready-to-use adapters for different ZK systems:
| Adapter | Description |
|---------|-------------|
| `zkVerifyAdapter` | Verifies proofs using zkVerify API (testnet ready) |
| `polygonIdAdapter` | Integrates with Polygon ID verifiers |
| `semaphoreAdapter` | Compatible with Semaphore-style circuits |
All adapters follow a common interface and can be imported like:
```js
const { zkVerifyAdapter } = require('zk-threshold-proof/src/adapters');
zkVerifyAdapter.verify(proof, verifierAddress);
```
You can also extend the SDK with your own adapter!
## 📂 Project Structure
```
zk-threshold-proof/
├── src/
│ ├── generateProof.js
│ ├── verifyProof.js
│ ├── witnessBuilder.js
│ └── adapters/
│ ├── polygonIdAdapter.js
│ ├── semaphoreAdapter.js
│ └── zkVerifyAdapter.js
├── circuits/
│ └── ageVerifier/
│ ├── ageVerifier.circom
│ └── config.json
```
## 📘 Documentation
Visit the [📚 zk-threshold-proof Documentation](https://livresol.tech/docs/zk-threshold-proof) for:
- Full API Reference
- Adapter Guides
- Circuit Customization
- Deployment Recipes
## 🛠️ Contributing
PRs welcome! This package is maintained by [Livre Soluções de Software](https://livresol.tech).
Felipe Segall Corrêa
ChatGPT4
## 🪪 License
MIT