Caution
This project is work in progress and unaudited. DO NOT USE IN PRODUCTION. Releases may contain breaking changes at any time.
- Rust toolchain (
rustup,cargo) – pinned viarust-toolchain.toml - Foundry (forge/cast/anvil):
curl -L https://foundry.paradigm.xyz | bashthenfoundryup - For running the Rust services look at the specific READMEs of each service.
Warning
These deployments are the current most up-to-date version, but this project is still WIP and deployments may change at any time.
Deployments are tracked in contracts/deployments/
| Environment | Chain | Config |
|---|---|---|
| Staging | World Chain (480) |
contracts/deployments/staging.json |
| Service | URL |
|---|---|
world-id-indexer |
https://world-id-indexer.stage-crypto.worldcoin.org |
world-id-gateway |
https://world-id-gateway.stage-crypto.worldcoin.org |
This repo is organized into the following top-level components:
circom/: Circom circuits for zero-knowledge proofscontracts/: Solidity smart contracts (see contracts/README.md)crates/: Rust libraries providing protocol functionalityservices/: Deployable services (gateway, indexer, oprf-node)docs/: Protocol documentation (see docs/README.md)
The Rust crates are logically separated to ensure proper integration without feature flag conflicts:
world-id-primitives
└── functionality-specific crates
└── world-id-core
world-id-primitives: Foundation layer containing only raw types with minimal implementation logic except for hashing mechanisms. Has an optionalopenapifeature for OpenAPI schema derives.- Functionality-specific crates: Providing focused use cases for authenticator, issuer, and RP operations.
world-id-core: Top-level integration layer which exposes all functionality.
Versioning and releases are managed separately for crates and services.
Crate releases are automated using release-plz.
How it works:
- Commits to
mainfollow conventional commits. To override the version, simply update the PR. - release-plz creates/updates a release PR with:
- Version bumps in
Cargo.tomlfiles - Updated
CHANGELOG.mdfor each crate
- Version bumps in
- When the release PR is merged:
- Crates are published to crates.io using trusted publishing
- GitHub releases are created for each updated crate (e.g.,
world-id-core-v0.2.0)
Information coming soon.