IDKit is the toolkit for anonymous proof of human. Integrate the World ID Protocol into your application.
- JavaScript / TypeScript:
@worldcoin/idkit-core - React widgets and headless hooks:
@worldcoin/idkit - JavaScript RP signing:
@worldcoin/idkit-server - Go (server):
go/idkit - Swift:
./swift - Kotlin:
./kotlin
The JavaScript SDKs build and run without WASM or a Rust toolchain. Use Node.js 22 and pnpm 9.15.4:
corepack pnpm install --frozen-lockfile
corepack pnpm build
corepack pnpm test
corepack pnpm type-checkWith the repository's Rust toolchain installed, pnpm test:conformance compares
JavaScript crypto, protocol, public types and HTTP behavior directly against the
current native Rust core. Add cases when changing the protocol; expected results
come from Rust at test time. No generated fixtures need to be committed.
pnpm audit:dependencies checks that SDK dependencies and installed assets are
WASM-free. pnpm test:packages checks packed Node.js consumers. Browser/Worker
tools and the Next example install separately so their
framework dependencies stay outside the SDK graph.
The tsup patch makes source-map cleanup optional when using the JavaScript
source-map-js implementation. Keep it aligned with the version-scoped override;
pnpm test:tooling verifies source-map composition without WebAssembly.
For React Native, use the headless hooks and provide host secure randomness when unavailable globally.
bash scripts/package-swift.sh
cd swift
swift build
swift test
xcodebuild test -scheme IDKit -destination "platform=macOS"Example iOS app:
- Project:
./swift/Examples/IDKitSampleApp/IDKitSampleApp.xcodeproj
MIT License - see LICENSE for details.