Skip to main content
A Credential is a statement an issuer makes about a World ID holder. Fundamentally, when you as an RP request a proof, the choice of Credential matters significantly to fulfill your use case. For example, if you want to protect an action that should only be done once per human, you probably want to use the Proof of Human credential.

Legacy Presets

Legacy presets only return World ID 3.0 proofs. These function the same as VerificationLevel from previous IDKit versions.

orbLegacy

Requires Orb verification.
import { IDKit, orbLegacy } from "@worldcoin/idkit-core";

const request = await IDKit.request({
  app_id: "app_xxxxx",
  action: "my-action",
  rp_context: { /* ... */ },
}).preset(orbLegacy({ signal: "user-123" }));

secureDocumentLegacy

Requires at least a Secure Document verification. Returns the user’s highest credential (Secure Document or Orb).
import { IDKit, secureDocumentLegacy } from "@worldcoin/idkit-core";

const request = await IDKit.request({
  app_id: "app_xxxxx",
  action: "my-action",
  rp_context: { /* ... */ },
}).preset(secureDocumentLegacy({ signal: "user-123" }));

documentLegacy

Requires at least a Document verification. Returns the user’s highest credential (Document, Secure Document, or Orb).
import { IDKit, documentLegacy } from "@worldcoin/idkit-core";

const request = await IDKit.request({
  app_id: "app_xxxxx",
  action: "my-action",
  rp_context: { /* ... */ },
}).preset(documentLegacy({ signal: "user-123" }));

deviceLegacy

Requires at least a Device verification. Returns the user’s highest credential (Device,Document, Secure Document, or Orb).
import { IDKit, deviceLegacy } from "@worldcoin/idkit-core";

const request = await IDKit.request({
  app_id: "app_xxxxx",
  action: "my-action",
  rp_context: { /* ... */ },
}).preset(deviceLegacy({ signal: "user-123" }));

selfieCheckLegacy (Selfie Check Beta)

Requires Selfie Check verification. Returns a World ID 3.0 Face proof. Learn more about Selfie Check here: Selfie Check Overview.
import { IDKit, selfieCheckLegacy } from "@worldcoin/idkit-core";

const request = await IDKit.request({
  app_id: "app_xxxxx",
  action: "my-action",
  rp_context: { /* ... */ },
}).preset(selfieCheckLegacy({ signal: "user-123" }));

Parameters

All legacy presets accept an optional signal parameter:
ParameterTypeDescription
signalstring?Binds specific context into the proof (e.g. user ID, wallet address). Your backend should enforce the same value.