privacy-scaling-explorations / zk-kit.circom

A monorepo of reusable Circom circuits.
MIT License
8 stars 1 forks source link
circom monorepo zero-knowledge zk-kit zk-snarks

ZK-Kit logo Circom

Github license GitHub Workflow tests 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 Circom templates only. | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | > [!IMPORTANT] > Installation of [Circom](https://docs.circom.io/getting-started/installation/) required for circuit tests. ## 🗂️ Repositories - Javascript: https://github.com/privacy-scaling-explorations/zk-kit - Solidity: https://github.com/privacy-scaling-explorations/zk-kit.solidity - Circom: https://github.com/privacy-scaling-explorations/zk-kit.circom - Noir: https://github.com/privacy-scaling-explorations/zk-kit.noir ## 📦 Packages
Package Version Downloads Audited
@zk-kit/binary-merkle-root.circom NPM version Downloads ✔️
@zk-kit/ecdh.circom NPM version Downloads
@zk-kit/poseidon-cipher.circom NPM version Downloads
@zk-kit/poseidon-proof.circom NPM version Downloads
@zk-kit/utils.circom NPM version Downloads
## 👥 Ways to contribute - 🔧 Work on [open issues](https://github.com/privacy-scaling-explorations/zk-kit.circom/contribute) - 📦 Suggest new [circuits](https://github.com/privacy-scaling-explorations/zk-kit.circom/issues/new?assignees=&labels=feature+%3Arocket%3A&template=---circuit.md&title=) - 🐛 Create a report if you find any [bugs](https://github.com/privacy-scaling-explorations/zk-kit.circom/issues/new?assignees=&labels=bug+%F0%9F%90%9B&template=---bug.md&title=) in the code ## 🛠 Install Clone this repository: ```bash git clone https://github.com/privacy-scaling-explorations/zk-kit.circom.git ``` and install the dependencies: ```bash cd zk-kit.circom && yarn ``` ## 📜 Usage ### Code formatting Run [Prettier](https://prettier.io/) to check formatting rules: ```bash yarn format ``` or to automatically format the code: ```bash yarn format:write ``` ### Conventional commits ZK-Kit uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). A [command line utility](https://github.com/commitizen/cz-cli) to commit using the correct syntax can be used by running: ```bash git commit ``` ### Testing Test the code with: ```bash yarn test ``` ### Compile Compile all the circuits with: ```bash yarn compile ``` ### Releases 1. Bump a new version of the package with: ```bash yarn version:bump # e.g. yarn version:bump utils 2.0.0 ``` This step creates a commit and a git tag. 2. Push the changes to main: ```bash git push origin main ``` 3. Push the new git tag: ```bash git push origin - # e.g. git push origin utils-v2.0.0 ``` After pushing the new git tag, a workflow will be triggered and will publish the package on [npm](https://www.npmjs.com/) and release a new version on Github with its changelogs automatically.