README.md

August 8, 2026 ยท View on GitHub

ZK-Kit logo Noir

Github license GitHub Workflow test Code style prettier Commitizen friendly

๐Ÿ‘ฅ Contributing ย ย |ย ย  ๐Ÿค Code of conduct ย ย |ย ย  ๐Ÿ”Ž Issues ย ย |ย ย  ๐Ÿ—ฃ๏ธ Chat & Support

ZK-Kit is a set of libraries (algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access user-friendly, tested, and documented code for common tasks. ZK-Kit provides different repositories for each language - this one contains Noir circuits only.

Important


Installation of Nargo required for circuit tests.

๐Ÿ—‚๏ธ Repositories

๐Ÿ“ฆ Packages

Package Version Audited
merkle-trees Version โŒ
ecdh Version โŒ
binary-merkle-root Version โŒ
lean-imt-plus Version โŒ
lazytower Version โŒ

๐Ÿ‘ฅ Ways to contribute

  • ๐Ÿ”ง Work on open issues
  • ๐Ÿ“ฆ Suggest new circuits
  • ๐Ÿ› Create a report if you find any bugs in the code

๐Ÿ›  Install

Clone this repository:

git clone https://github.com/zk-kit/zk-kit.noir.git

and install the dependencies:

cd zk-kit.noir && bun install

๐Ÿ“œ Usage

Conventional commits

ZK-Kit uses conventional commits. A command line utility to commit using the correct syntax can be used by running:

git commit

Testing

Test the code with:

bun run test

Releases

  1. Update the package README install version and create a new git tag:
bun version:tag <package-name> <version>
# e.g. bun version:tag merkle-trees 0.0.1

This bumps the tag = "<package-name>-v<version>" line in packages/<package-name>/README.md, commits that change, and tags the commit. The tagged commit therefore always documents the version being released.

  1. Push the commit and the new git tag:
git push && git push origin <package-name>-v<version>
# e.g. git push && git push origin merkle-trees-v0.0.1

After pushing the new git tag, a workflow will be triggered and will release a new version on Github with its changelog automatically.