Skip to main content
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.