Skip to content

gniumg-source/world-id-protocol

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

416 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

world-id-protocol

Warning

This project is unaudited. Releases may contain breaking changes at any time.

Prerequisites

  • Rust toolchain (rustup, cargo) – pinned via rust-toolchain.toml
  • Foundry (forge/cast/anvil): curl -L https://foundry.paradigm.xyz | bash then foundryup
  • For running the Rust services look at the specific READMEs of each service.

🗃️ Deployments

Deployments are tracked in contracts/deployments/

Core Contracts

Environment Chain Config
Production World Chain (480) contracts/deployments/core/production.json
Staging World Chain (480) contracts/deployments/core/staging.json

OPRF Key Registry

Environment Chain Config
Production World Chain (480) contracts/deployments/oprf-key-registry/production.json
Staging World Chain (480) contracts/deployments/oprf-key-registry/staging.json

Reserved Credential Issuer IDs

The following issuer schema IDs are reserved in the CredentialSchemaIssuerRegistry on production (World Chain, chain ID 480).

ID Name
1 PoH Issuer
11 Face Issuer
9303 NFC Issuer
9310 MNC Issuer

Services

Service Environment URL
world-id-indexer Production https://indexer.us.id-infra.worldcoin.dev
https://indexer.eu.id-infra.worldcoin.dev
https://indexer.ap.id-infra.worldcoin.dev
world-id-gateway Staging https://gateway.id-infra.worldcoin.dev

🏗️ Project Structure

This repo is organized into the following top-level components:

  • circom/: Circom circuits for zero-knowledge proofs
  • contracts/: Solidity smart contracts (see contracts/README.md)
  • crates/: Rust libraries providing protocol functionality
  • services/: Deployable services (gateway, indexer, oprf-node)
  • docs/: Protocol documentation (see docs/README.md)

📦 Crates Organization

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 optional openapi feature 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.

🚀 Releasing

Versioning and releases are managed separately for crates and services.

Crates

Crate releases are automated using release-plz.

How it works:

  1. Commits to main follow conventional commits. To override the version, simply update the PR.
  2. release-plz creates/updates a release PR with:
    • Version bumps in Cargo.toml files
    • Updated CHANGELOG.md for each crate
  3. 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)

Services

Information coming soon.

About

Main components and documentation for the World ID Protocol.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors

Languages

  • Rust 59.4%
  • Solidity 25.8%
  • Circom 7.2%
  • JavaScript 4.6%
  • Just 2.0%
  • Shell 0.5%
  • Other 0.5%