gitwtfhub

wtf is proof-template-library?

zk-templates/proof-template-library — explained in plain English

Analysis updated 2026-05-18

1JavaScriptAudience · developerComplexity · 4/5Setup · moderate

TL;DR

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

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

JavaScriptNoirCircomNode.js

How it stacks up

zk-templates/proof-template-libraryabhishek-kumar09/testacip/slack-claude-agent
Stars111
LanguageJavaScriptJavaScriptJavaScript
Last pushed2023-05-29
MaintenanceDormant
Setup difficultymoderateeasymoderate
Complexity4/51/53/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

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.

Wtf does this do

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.

Yoink these 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.

Frequently asked questions

wtf is proof-template-library?

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.

What language is proof-template-library written in?

Mainly JavaScript. The stack also includes JavaScript, Noir, Circom.

How hard is proof-template-library to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is proof-template-library for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.