In scope: the full relying-party journey — request handoff, consent, capture,
enrollment and matching, proof generation, and delivery of the proof. Out of scope:
production identity data and real-world uniqueness at scale. Sandbox accounts and
proofs are for integration testing only, not load testing, security certification,
or production sign-off.
Coverage
Testing is organized by entry surface and user state, using the same Hot, Cold, and Semi-cold states as the rest of World ID:- Hot — the user already has World ID installed. If they’re already Selfie Check enrolled, they go straight to face match; if not, World ID walks them through enrollment first, then match. (Selfie Check has no distinct Warm flow — enrollment happens inline within Hot, same as Verification Flows describes.)
- Cold — a new user with no World ID app: the full funnel, including install, account creation, date of birth, invite code (iOS), enrollment, and Selfie Check.
- Semi-cold — an existing user without World ID on this device: reinstall and account recovery, then Selfie Check.
Known limitations
- Sandbox apps aren’t published to the app stores. As with other Sandbox testing, install deep links won’t route to a store listing the way they do in production — see How to get access. This means the Cold and Semi-cold journeys above can’t be exercised exactly as they will be once the app is on the App Store or Play Store.
- iOS Semi-cold is currently limited. The reinstall/login journey reliably works on Android today. On iOS, if the user taps “Sign in” instead of “Sign up” mid-flow, there’s no path to add the invite code — they have to restart from a fresh QR or deep link. Expect iOS Semi-cold to behave differently from Android until this is closed.
- Invite-code handling in the Cold flow differs by platform. Confirm how invite codes are presented and redeemed on the platform you’re targeting — see invite-code mode.