README.md
July 21, 2026 ยท View on GitHub
Solidity
๐ฅ 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 Solidity code only. |
|---|
๐๏ธ 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/imt.sol |
|
|
โ |
| @zk-kit/lean-imt.sol |
|
|
โ๏ธ |
| @zk-kit/lean-imt-plus.sol |
|
|
โ |
| @zk-kit/lazy-imt.sol |
|
|
โ |
| @zk-kit/excubiae |
|
|
โ |
๐ฅ Ways to contribute
- ๐ง Work on open issues
- ๐ฆ Suggest new packages
- ๐ Share ideas for new features
- ๐ Create a report if you find any bugs in the code
๐ Install
Clone this repository:
git clone https://github.com/privacy-scaling-explorations/zk-kit.solidity.git
and install the dependencies:
cd zk-kit.solidity && yarn
๐ Usage
Code formatting
Run Prettier to check formatting rules:
yarn format
or to automatically format the code:
yarn format:write
Linting
yarn lint
Will lint all the packages with solhint
Static Analysis
yarn slither
Will perform a static analysis of all the contracts with slither to identify potential vulnerabilities.
You'll need to install slither beforehand.
Conventional commits
ZK-Kit uses conventional commits. A command line utility to commit using the correct syntax can be used by running:
yarn commit
It will also automatically check that the modified files comply with ESLint and Prettier rules.
Testing
Test the code:
yarn test
Build
Compile all contracts:
yarn compile
Releases
- Bump a new version of the package with:
yarn version:bump <package-name> <version>
# e.g. yarn version:bump imt.sol 2.0.0
This step creates a commit and a git tag.
- Push the changes to main:
git push origin main
- Push the new git tag:
git push origin <package-name>-<version>
# e.g. git push origin imt.sol-v2.0.0
After pushing the new git tag, a workflow will be triggered and will publish the package on npm and release a new version on Github with its changelogs automatically.