Skip to main content
A Credential is a statement an issuer makes about a World ID holder. In IDKit, the credential you request determines what the user proves to your app.

What you can request with IDKit

You can also add a liveness check to any preset with require_user_presence.
If you have an existing legacy integration, see the World ID 4.0 migration guide.

SDK presets

Preset helpers cover common credential requests: proofOfHuman, passport, selfieCheck, identityCheck, and the legacy presets. The snippets below assume rp_context was already generated and signed by your backend. See Integrate IDKit for the full RP-signing flow.

Proof of Human

Use proofOfHuman for the current World ID 4.0 Proof of Human credential. The preset also includes legacy Orb fallback for users without a World ID 4.0 proof.

Passport

Use passport for the current World ID 4.0 Passport credential. The preset also includes legacy Document fallback for users without a World ID 4.0 proof.

Selfie Check

Use selfieCheck() with session proofs to verify users when they first arrive and when they return. Create a session once, save its verified session_id, then prove that same session on later checks. Anyone with World ID App can complete the flow—no Orb or document credential is required.
Follow the session guide for the complete create-and-return flow. Forward the complete result, including sybil_score and integrity_bundle, to your backend and only use the score after verification succeeds. For a one-time check, use IDKit.request(...).preset(selfieCheck()) with an action and allow_legacy_proofs: false. Each user can complete that action once; see the integration guide. If you use selfieCheckLegacy, migrate to selfieCheck for World ID 4.0.

Identity Check (Preview)

Identity Check is currently in preview. To use it or learn more, contact us.
Identity Check lets your app ask the user to attest that document-backed attributes match your policy, without handling the underlying document data. Use it for eligibility checks such as minimum age, document type, issuing country, or nationality. Request attributes such as:
Successful Identity Check responses include identity_attested so your backend can tell whether the requested attributes matched.

User presence and liveness

To check for user presence and liveness, add the require_user_presence flag to your request. This is a request-level flag, not a credential; it asks World ID for a fresh liveness check before returning the proof and fails with user_presence_failed if the check does not complete. Depending on the credential requested, World ID matches the user’s live selfie to the credential image, such as the passport photo or the image captured during Orb verification.

Other legacy presets

These presets only return World ID 3.0 proofs. Use them for existing integrations or when you need the older verification level.
PresetWhat it requests
orbLegacyOrb verification.
secureDocumentLegacyAt least a Secure Document verification. Returns the user’s highest legacy credential: Secure Document or Orb.
documentLegacyAt least a Document verification. Returns the user’s highest legacy credential: Document, Secure Document, or Orb.
deviceLegacyDeprecated. Keep deviceLegacy only for existing Device integrations. For new integrations, use Selfie Check.

Common parameters

ParameterWhere it is usedDescription
signalPresetsBinds app context into the proof, such as a user ID or wallet address. Your backend should enforce the same value.
allow_legacy_proofsRequest config and widgetsRequired for request flows. Set to true while accepting World ID 3.0 fallback proofs; set to false for World ID 4.0-only requests.
require_user_presenceRequest config and widgetsOptional liveness step. Defaults to false.