Skip to main content
Use MiniKit.attestation() to request an app attestation token for a request hash.

Basic Usage

import { MiniKit } from "@worldcoin/minikit-js";
import type {
  CommandResultByVia,
  MiniAppAttestationSuccessPayload,
  MiniKitAttestationOptions,
} from "@worldcoin/minikit-js/commands";

export async function requestAttestation() {
  const input = {
    requestHash: "0x1234",
  } satisfies MiniKitAttestationOptions;

  const result: CommandResultByVia<
    MiniAppAttestationSuccessPayload,
    MiniAppAttestationSuccessPayload,
    "minikit"
  > = await MiniKit.attestation(input);

  console.log(result.data.token);
}
type MiniKitAttestationOptions = {
  requestHash: string;
  fallback?: () => unknown;
};

Result

type AttestationResponse =
  | {
      executedWith: "minikit";
      data: {
        status: "success";
        version: number;
        token: string;
      };
    }
  | {
      executedWith: "fallback";
      data: unknown;
    };
{
  "executedWith": "minikit",
  "data": {
    "status": "success",
    "version": 1,
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock.payload"
  }
}

Fallback Behavior

Define a custom fallback in the command payload for support outside mini apps.

Error Codes

CodeMeaning
unauthorizedThe request is not authorized
attestation_failedAttestation generation failed
integrity_failedIntegrity checks failed
invalid_inputThe request hash is invalid
unsupported_versionThe command version is not supported