@worldcoin/idkit when you want React-native ergonomics on top of @worldcoin/idkit-core.
Install
Choose your API
- Widgets: quickest integration, built-in modal and state handling
- Hooks: headless control for custom UI and flow orchestration
Controlled widgets
Request widget
Widget callbacks
onSuccessis required forIDKitRequestWidgetandIDKitSessionWidget.handleVerifyis optional and only available on widgets. Use it to verify the proof in your backend before success is emitted.- If
handleVerifythrows/rejects, the widget enters an error state, emitsonError("failed_by_host_app"), and does not callonSuccess. onErroris optional.
Headless hooks
useIDKitRequest
open()reset()isAwaitingUserConnectionisAwaitingUserConfirmationisSuccessisErrorconnectorURIresulterrorCode
Invite-code mode
For invite-code flows, useIDKitInviteCodeRequestWidget (controlled) or useIDKitInviteCodeRequest (headless). Config matches IDKitRequestWidget / useIDKitRequest — invite-code mode adds no new required fields. See Invite-code mode for when to use it.
useIDKitInviteCodeRequest result fields (sibling of useIDKitRequest’s):
open()reset()isAwaitingUserConnectionisAwaitingUserConfirmationisSuccessisErrorconnectorURIcodeExpiresAtresulterrorCode
Migrating from QR / connect-URL
useIDKitInviteCodeRequest in place of useIDKitRequest.
Presets
React hooks/widgets takepreset directly in config.
Localization and UX notes
- Widgets support
language="en" | "es" | "th" - Widgets default to
autoClose={true}after success