All docs

World · Personhood & Sybil Resistance

The bet

Sybil resistance is the seed of every other Ognef primitive. Without a real human at the root, capability tokens are meaningless.

What we ship (verified against docs.world.org, IDKit 4.2.x)

  • Frontend: IDKitRequestWidget from @worldcoin/idkit with the `proofOfHuman` preset (accepts orb fallback via allow_legacy_proofs: true). Uses app_id + rp_id + a backend-signed rp_context.
  • Backend RP signature: POST /api/public/world/rp-signature calls signRequest from @worldcoin/idkit-core/signing using RP_SIGNING_KEY.
  • Backend verify: forwards the widget payload to POST https://developer.world.org/api/v4/verify/{rp_id}.
  • Nullifier is stored per (nullifier, action) for replay protection.
  • Elevates the entity from observed → verified.

Env vars

VarWherePurpose
RP_SIGNING_KEYserverSigns rp_context
WORLDCOIN_APP_IDclientPublic app id
WORLDCOIN_RP_IDclientPublic relying-party id
WORLDCOIN_ACTIONclientAction string

Win condition

  • One human, one root node, forever — replay-resistant per action.
  • No PII stored on our servers. Just the nullifier.
/docs/world-personhood