diff --git a/docs.json b/docs.json
index 430ebf3..a4aa0cd 100644
--- a/docs.json
+++ b/docs.json
@@ -87,7 +87,8 @@
"group": "Sandbox",
"pages": [
"world-id/sandbox/what-is-sandbox",
- "world-id/sandbox/sandbox-access"
+ "world-id/sandbox/sandbox-access",
+ "world-id/sandbox/testing-selfie-check"
]
},
{
diff --git a/world-id/credentials/11.mdx b/world-id/credentials/11.mdx
index 2934b04..2982dde 100644
--- a/world-id/credentials/11.mdx
+++ b/world-id/credentials/11.mdx
@@ -54,3 +54,6 @@ Use IDKit to integrate Selfie Check (Beta) into your application.
## Next steps
See [Web Integration Guide](/world-id/credentials#legacy-presets).
+
+Testing your integration? See [Testing Selfie Check in Sandbox](/world-id/sandbox/testing-selfie-check)
+for coverage, critical user journeys, and known limitations.
diff --git a/world-id/idkit/credentials.mdx b/world-id/idkit/credentials.mdx
index 657af60..89ccbff 100644
--- a/world-id/idkit/credentials.mdx
+++ b/world-id/idkit/credentials.mdx
@@ -107,6 +107,8 @@ const preset = passport({ signal: "user-123" });
Selfie Check is available today through the legacy preset and returns a World ID 3.0 Face proof. World ID 4.0 support is rolling out soon. Learn more in [Selfie Check](/world-id/credentials/11).
+To test your integration end-to-end, see [Testing Selfie Check in Sandbox](/world-id/sandbox/testing-selfie-check).
+
Selfie Check is currently available to select partners. To discuss access or learn more, please [contact us](mailto:developers@toolsforhumanity.com).
diff --git a/world-id/sandbox/sandbox-access.mdx b/world-id/sandbox/sandbox-access.mdx
index b9b9767..d51ad76 100644
--- a/world-id/sandbox/sandbox-access.mdx
+++ b/world-id/sandbox/sandbox-access.mdx
@@ -61,3 +61,9 @@ proof to your session over the bridge.
integration validation only.
- **Accounts are resettable.** You can delete and recreate accounts freely while
testing.
+
+## Next step
+
+Once you're installed and pointed at Sandbox, you're ready to run the Selfie Check
+integration flows. See [Testing Selfie Check in Sandbox](/world-id/sandbox/testing-selfie-check)
+for coverage, critical user journeys, and known limitations.
diff --git a/world-id/sandbox/testing-selfie-check.mdx b/world-id/sandbox/testing-selfie-check.mdx
new file mode 100644
index 0000000..8979460
--- /dev/null
+++ b/world-id/sandbox/testing-selfie-check.mdx
@@ -0,0 +1,68 @@
+---
+title: "Testing Selfie Check in Sandbox"
+description: "Coverage, critical user journeys, and known limitations for testing your Selfie Check integration in Sandbox."
+"og:image": "https://raw.githubusercontent.com/worldcoin/developer-docs/main/images/docs/docs-meta.png"
+"twitter:image": "https://raw.githubusercontent.com/worldcoin/developer-docs/main/images/docs/docs-meta.png"
+---
+
+{/* cspell:ignore idkit DoB reinstalls */}
+
+Sandbox lets you run the full [Selfie Check](/world-id/credentials/11) relying-party
+journey end-to-end — from your surface, through IDKit, into the sandbox World ID app,
+and back — without touching production identities or real proofs.
+
+New to Sandbox? Start with [What is Sandbox?](/world-id/sandbox/what-is-sandbox) and
+[How to get access](/world-id/sandbox/sandbox-access) before working through this
+guide.
+
+
+ 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](/world-id/idkit/verification-flows) 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](/world-id/idkit/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.
+
+| Entry surface | State | What it exercises |
+| --- | --- | --- |
+| Native app | Hot | Same-device: validated user presents a face credential; deep link into World ID and back. |
+| Native app | Cold | Install → create account → add date of birth → redeem invite code → enroll → complete Selfie Check. |
+| Native app | Semi-cold | Existing user reinstalls and recovers their account on a fresh device, then completes Selfie Check. |
+| Web app | Hot | Cross-device: start on web, complete on phone via QR scan, proof returns to the web session. |
+| Web app | Cold | Same cold funnel, cross-device via QR; proof returns to the originating web session. |
+| Web app | Semi-cold | Same semi-cold recovery, cross-device via QR. |
+
+## 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](/world-id/sandbox/sandbox-access#things-to-know). 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](/world-id/idkit/verification-flows#with-invite-code-mode).
+
+## Next step
+
+Questions, or found a journey these scenarios don't cover? Reach out to your World
+point of contact.
diff --git a/world-id/sandbox/what-is-sandbox.mdx b/world-id/sandbox/what-is-sandbox.mdx
index 40f4ef8..e00540f 100644
--- a/world-id/sandbox/what-is-sandbox.mdx
+++ b/world-id/sandbox/what-is-sandbox.mdx
@@ -9,7 +9,9 @@ description: "An isolated, production-like environment for testing your World ID
Sandbox is a dedicated, production-like environment for building and testing your
World ID integration. It runs alongside Production as its own environment, with its
-own backend and its own builds of the World ID app for iOS and Android.
+own backend and its own builds of the World ID app for iOS and Android, built from
+the same codebase and release process as Production — so Sandbox is just as stable
+and reliable.
It lets you run a complete integration — from your app or website, through IDKit, into
the World ID app, and back — without touching production identities or issuing real