Skip to main content
Copy this prompt and paste it into Codex, Claude, Cursor, or your preferred AI coding assistant to integrate World ID into your existing project. Replace the placeholder values (app_xxxxx, rp_xxxxx, my-action) with your actual values from the Developer Portal.
Copy this prompt
Integrate World ID into my project using IDKit. Here are my app details:

- app_id: app_xxxxx
- rp_id: rp_xxxxx
- action: my-action
- signing_key: (stored as RP_SIGNING_KEY env var)

## Steps

1. Install the IDKit SDK for my platform.

2. Create a backend endpoint that generates RP signatures.
   Signatures verify that proof requests come from my app.
   Use `signRequest(action, signingKey)` which returns `{ sig, nonce, createdAt, expiresAt }`.
   Never expose the signing key to the client.

3. On the client, fetch the RP signature from my backend, then create an IDKit request with:
   - `app_id`, `action`, and `rp_context` (containing `rp_id`, `nonce`, `created_at`, `expires_at`, `signature` from the RP signature)
   - `allow_legacy_proofs: true`
   - `.preset(orbLegacy())` for Orb verification
   - Signal is optional — use it to bind context like a user ID or wallet address into the proof. The backend should enforce the same value.

4. On success, send the IDKit result to my backend.
   The backend should forward the payload as-is to: POST https://developer.world.org/api/v4/verify/{rp_id}
   No field remapping is needed.

## Reference
- Full docs: https://docs.world.org/llms.txt