explaingit

zk-templates/proof-template-library

1JavaScriptAudience · developerComplexity · 4/5ActiveSetup · moderate

TLDR

Catalog of starter zero-knowledge proof circuits for age gating, group membership, anonymous voting, allowlist claims, and proof of reserves, with a CLI to scaffold Noir or Circom projects.

Mindmap

mindmap
  root((proof-template-library))
    Inputs
      Template ID
      Proof system choice
      Output path
    Outputs
      Noir or Circom starter circuits
      Catalog metadata
      Static catalog site
    Use Cases
      Build age-gate app
      Anonymous voting demo
      Proof of reserves
      Private allowlist
    Tech Stack
      JavaScript
      Noir
      Circom
      Node CLI

Things people build with this

USE CASE 1

Scaffold a starter age-gate circuit in Noir and integrate it into a Next.js login flow.

USE CASE 2

Compare the Circom and Noir versions of an anonymous voting template side by side.

USE CASE 3

Use the proof of reserves template as the basis for an exchange transparency report.

USE CASE 4

Generate a private allowlist claim circuit and wire it up to an Ethereum verifier contract.

Tech stack

JavaScriptNoirCircomNode.js

Getting it running

Difficulty · moderate Time to first run · 1h+

Templates are explicitly marked as unaudited starter material and require an external Noir or Circom toolchain to compile.

In plain English

This project is a starter kit for teams building apps with zero-knowledge proofs. A zero-knowledge proof is a way to prove something is true without revealing the underlying data, for example proving you are over 18 without showing your birthday. The library gives a shared catalog of common proof patterns, each one documented with its inputs, security notes, and starter circuit files. The first version covers five patterns that come up often in privacy apps: an age gate, group membership, anonymous voting, private allowlist claims, and proof of reserves. The README is clear that every template is marked as starter material. They are not audited production circuits, so the team should treat them as scaffolds and review checklists rather than finished code. The library ships with a command line tool and a JavaScript API. You can list every template, show details for one, or scaffold a starter circuit into a folder using either the Noir or Circom proof system. Examples in the README show commands like list, show group-membership, and scaffold anonymous-vote with a chosen system and output path. The JavaScript API exposes the same actions as importable functions. Each template entry in the catalog file records an ID, title, summary, category, supported systems, descriptions of public and private inputs, the proof statement in plain language, the constraints the circuit must enforce, security notes, and references to starter files. A JSON schema defines the shape. A GitHub Pages workflow builds a static catalog site from the source folder on every push to main. The production checklist warns implementers to replace placeholder hash functions with audited primitives, add positive and negative tests, bind proofs to a specific verifier and chain to prevent replay, version every circuit, and get independent security review before shipping anything real.

Copy-paste prompts

Prompt 1
Use the proof-template-library CLI to list every template and then show me full details for group-membership.
Prompt 2
Scaffold the anonymous-vote template using Noir into ./circuits/vote and explain the file layout it produces.
Prompt 3
Import the proof-template-library JavaScript API into my Node app and call scaffold for the age-gate template at runtime.
Prompt 4
Walk through the production checklist for the proof-of-reserves template and tell me which placeholder hash functions I must replace before going live.
Prompt 5
Add a new template to the catalog for proving credit-score-above-threshold, including JSON schema entry and Noir starter files.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.