Thank you for your interest in contributing to ZeroID! This guide will help you get started.
By participating, you agree to uphold a welcoming, respectful, and harassment-free environment for everyone.
- Fork the repository
- Clone your fork locally
- Install dependencies:
npm ci - Create a feature branch:
git checkout -b feature/my-feature
| Tool | Version |
|---|---|
| Node.js | >= 20.0.0 |
| Rust | >= 1.75.0 |
| Circom | >= 2.1.0 |
| Foundry | latest |
| Docker + Compose | latest |
| PostgreSQL | >= 16 |
Run the full validation suite:
npm run validate # lint + type-check + format
npm run test:ci # frontend tests with coverage
forge test # smart contract tests- Branch naming:
feature/,fix/,docs/,refactor/,test/ - Commit messages: Follow Conventional Commits
- Tests: Add or update tests for your changes
- One concern per PR: Keep PRs focused and reviewable
- Frontend (Next.js / React / Tailwind) —
src/ - Backend API (Express / TypeScript) —
backend/ - Smart Contracts (Solidity / Foundry + Hardhat) —
contracts/ - ZK Circuits (Circom / snarkjs) —
circuits/ - Rust TEE —
crates/zeroid-tee/ - Go SDK —
sdk/go/ - Python SDK —
sdk/python/
Do NOT file security issues as public GitHub issues. See SECURITY.md for responsible disclosure instructions.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.