World Republic’s mobile ID wallet for proving you’re eligible to participate—using the NFC chip on a government-issued ID, verified on your phone via the zkPassport registry. Multipass is built for privacy: the document stays on the device; World Republic only learns that it’s genuine and not expired.
Status: Android pilot available via Releases. iOS in progress (roadmap Phase 1).
Download the latest APK from GitHub Releases. Enable install from unknown sources, then open the APK.
Release assets may also include an AAB (Play Console) and native debug symbols zip.
Prerequisites: Node.js 18+, Android Studio for Android, macOS + Xcode 16+ for iOS.
npm install --legacy-peer-deps
npm start # Metro
npm run android # device or emulator
npm run typecheck
npm testiOS: cd ios && pod install && cd .. then npm run ios, or see make ios-info.
Debug builds use Metro (npm run android). Release builds embed JS and Hermes bytecode.
Long repo paths can break native (CMake) builds. Use the SUBST release script:
npm run android:release # build + install on device
node scripts/build-release-android.mjs assemble # APK onlyAPK output: android/app/build/outputs/apk/release/app-release.apk
When the checkout path is short enough:
cd android
./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8aSigning, versioning, AAB, and publishing to GitHub Releases: docs/releasing.md. Google Play listing plan: docs/play-store.md.
Android releases are built locally and uploaded to GitHub by hand. iOS builds use the iOS Build GitHub Actions workflow (Simulator, signed IPA, optional TestFlight)—see docs/releasing.md.
See CONTRIBUTING.md. Roadmap: docs/ROADMAP.md.
Report vulnerabilities to info@worldrepublic.org—do not open public issues.
GNU Affero General Public License v3.0 (AGPL-3.0-or-later).