Embedded DSL for constructing zero-knowledge circuits in PureScript.
A port of the ocaml snarky DSL to PureScript, backed by arkworks for the finite field arithmetic and cryptography (using napi-rs).
For a practical demonstration, refer to packages/example. This implements a simple Merkle tree-based cryptocurrency ledger with createAccount, getAccount, and transfer circuits. It showcases foundational ZK application development.
make allmake testpackages/curves/- Elliptic curve field operations (Pallas, Vesta, BN254) with Rust N-API backendpackages/snarky/- Circuit DSL for building zero-knowledge circuits
packages/snarky-kimchi/- o1Labs Kimchi plonk backendpackages/snarky-bulletproofs/- l-adic bulletproof R1CS backendpackages/groth16- arkworks Groth16 R1CS backend
packages/snarky-curves/- Elliptic curve arithmetic circuits using the DSLpackages/random-oracle/Hash functions and circuitspackages/merkle-tree/Merkle trees and ciruits. Supports both fixed-depth and unbounded.
packages/snarky-test-utils/- Testing utilities for circuit developmentpackages/union-find/- Union-find data structure
mina/- OCaml Snarky source (Git submodule) used as translation reference