diff --git a/docs.json b/docs.json index bb7803e..f42816e 100644 --- a/docs.json +++ b/docs.json @@ -33,7 +33,9 @@ "groups": [ { "group": "Get Started", - "pages": ["index"] + "pages": [ + "index" + ] } ] }, @@ -42,7 +44,9 @@ "groups": [ { "group": "Introduction", - "pages": ["mini-apps/index"] + "pages": [ + "mini-apps/index" + ] }, { "group": "Quick Start", @@ -132,6 +136,12 @@ { "tab": "World ID", "groups": [ + { + "group": "Overview", + "pages": [ + "world-id/overview" + ] + }, { "group": "IDKit", "pages": [ @@ -160,12 +170,16 @@ }, { "group": "Migration", - "pages": ["world-id/4-0-migration"] + "pages": [ + "world-id/4-0-migration" + ] }, { "group": "Selfie Check (Beta)", "hidden": true, - "pages": ["world-id/selfie-check/overview"] + "pages": [ + "world-id/selfie-check/overview" + ] }, { "group": "Technical Reference", @@ -200,7 +214,9 @@ }, { "group": "Issuers", - "pages": ["world-id/reference/poh-issuer"] + "pages": [ + "world-id/reference/poh-issuer" + ] } ] }, @@ -270,7 +286,9 @@ }, { "group": "Further Reading", - "pages": ["world-chain/resources"] + "pages": [ + "world-chain/resources" + ] } ] }, @@ -353,6 +371,10 @@ ] }, "redirects": [ + { + "source": "/world-id", + "destination": "/world-id/overview" + }, { "source": "/apps", "destination": "https://world.org/apps" @@ -371,11 +393,11 @@ }, { "source": "/id", - "destination": "/world-id" + "destination": "/world-id/overview" }, { "source": "/id/sign-in", - "destination": "/world-id" + "destination": "/world-id/overview" }, { "source": "/protocol", @@ -555,7 +577,7 @@ }, { "source": "/sign-in", - "destination": "/world-id" + "destination": "/world-id/overview" }, { "source": "/try", @@ -607,11 +629,11 @@ }, { "source": "/world-id/id/sign-in", - "destination": "/world-id" + "destination": "/world-id/overview" }, { "source": "/world-id/sign-in", - "destination": "/world-id" + "destination": "/world-id/overview" }, { "source": "/world-id/sign-in/pitfalls", @@ -715,7 +737,10 @@ "display": "interactive" }, "examples": { - "languages": ["curl", "javascript"], + "languages": [ + "curl", + "javascript" + ], "defaults": "required", "prefill": true } diff --git a/world-id/overview.mdx b/world-id/overview.mdx new file mode 100644 index 0000000..7f83d52 --- /dev/null +++ b/world-id/overview.mdx @@ -0,0 +1,158 @@ +--- +title: "World ID" +sidebarTitle: "Overview" +description: "Privacy preserving proof of human protocol" +--- + +{/* cspell:ignore worldcoin idkit orblegacy rp_context app_id rp_id selfie-check sybil PoH CAPTCHAs NFC unlinkable nullifier */} + +
+
+

+ World ID is the highest-assurance way to prove you are a unique human online - without revealing who you are. +

+

+ As AI agents, bots, and deepfakes make it increasingly difficult to distinguish real people online, World ID gives individuals a privacy-preserving way to verify their humanness and uniqueness. +

+

+ At its core, World ID is built around credentials - proofs that verify something about a person (that they’re a unique human, that they’re over 18, that they hold a valid document etc.) without exposing any personal data. Different credentials offer different levels of assurance, and any application can use them as a trust signal through a simple integration. +

+
+ +
+
+
+

Developer quickstart

+

+ Add World ID to your app in minutes. Install IDKit, choose a credential, and start verifying users. +

+ +
+ +
+
react
+
+
import {'{'} IDKitRequestWidget, orbLegacy {'}'} from '@worldcoin/idkit'
+
 
+
const rp_context = {'{'}
+
  rp_id: "rp_your_rp_id", ...
+
{'}'}
+
 
+
<IDKitRequestWidget
+
  app_id="app_your_app_id"
+
  action="my-action"
+
  rp_context={'{'}rp_context{'}'}
+
  preset={'{'}orbLegacy({'{'} signal: "user-123" {'}'}){'}'}
+
  onSuccess={'{'}handleProof{'}'}
+
/>
+
+
+
+
+ +
+
+

Credentials

+ View all +
+
+
+
proof-of-human
+

Proof of Human

Strongest uniqueness signal available. Iris biometrics verified through a trusted hardware - Orb - provide population-scale sybil resistance and liveness guarantees. Best for high-stakes actions where one-person-one-action matters most.

+
+
+
document
+

Document

Proves possession of a unique, government-issued identity document. NFC chip verification of passports and national IDs provides document-level uniqueness and 18+ proof.

+
+
+
selfie-check
+

Selfie Check Beta

Unique human signal with the lowest friction. Mobile selfie-based liveness and face uniqueness check. Best for bot prevention, sign-ups, and actions where fast verification matters more than maximum assurance.

+
+
+
+ +
+

Start building

+
+
+ {[ + [ + "Sybil-resistant actions", + "One trial per person. Each verified user gets a unique nullifier per action, so duplicates are rejected at the protocol level. Use PoH credential for high-stakes actions, Face credential for moderate assurance.", + "#", + ], + [ + "Bot prevention", + "Block bots and AI agents at sign-up or on any action. Request a liveness-verified credential - Face for low-friction flows, Orb for maximum assurance. No CAPTCHAs, no phone numbers needed.", + "#", + ], + [ + "Age verification", + "Verify a user is 18+ without collecting date of birth or any personal data. Use Document credential - the user's NFC-verified passport or national ID is checked locally and only a yes/no proof is returned.", + "#", + ], + ].map(([title, description, href]) => ( + +
+

{title}

+

{description}

+
+
+ ))} +
+
+
+ +
+

Choosing a credential

+
+ + + + + + + + + + + + + + + + + {[ + ["Verification method", "Orb (iris biometrics)", "NFC passport / national ID", "Selfie capture"], + ["Uniqueness guarantee", "Strong (population scale)", "Per document", "Unique face"], + ["Attestable attributes", "Unique human", "Possession of unique document", "Unique face"], + ["User friction", "Orb visit (one-time)", "Passport tap", "Selfie (lowest)"], + ].map((row) => ( + + + + + + + ))} + +
Proof of HumanDocumentSelfie Check (Beta)
{row[0]}{row[1]}{row[2]}{row[3]}
+
+
+ +
+

Privacy by architecture

+
+

Zero-knowledge proofs

Users prove things about themselves without sharing any personal information. Verifications are unlinkable across apps — no one can track a user's activity between services.

+

Multi-party computation

Hashed embeddings are split into encrypted shares across independent nodes. No single party holds any data, even in encrypted form.

+

Self-custodial

Capture and proof generation happen on the user's device. Your app never receives personal data — only a yes/no proof.

+
+
+ +
\ No newline at end of file