Use MiniKit.requestPermission() to ask the user for a permission such as notifications or microphone access.
Availability
- Works natively in World App
- Supports a custom fallback outside World App
Basic Usage
import { MiniKit } from "@worldcoin/minikit-js";
import {
Permission,
type CommandResultByVia,
type MiniAppRequestPermissionSuccessPayload,
type MiniKitRequestPermissionOptions,
} from "@worldcoin/minikit-js/commands";
export async function requestNotifications() {
const input = {
permission: Permission.Notifications,
} satisfies MiniKitRequestPermissionOptions;
const result: CommandResultByVia<
MiniAppRequestPermissionSuccessPayload,
MiniAppRequestPermissionSuccessPayload,
"minikit"
> = await MiniKit.requestPermission(input);
console.log(result.data.permission);
}
Result
type RequestPermissionResponse =
| {
executedWith: "minikit";
data: {
status: "success";
version: number;
permission: "notifications" | "contacts" | "microphone";
timestamp: string;
};
}
| {
executedWith: "fallback";
data: unknown;
};
Fallback Behavior
Use a custom fallback if you want equivalent permission behavior outside World App.
Error Codes
| Code | Meaning |
|---|
user_rejected | The user rejected the request |
generic_error | Unexpected failure |
already_requested | The permission prompt was already shown and rejected |
permission_disabled | The permission is disabled |
already_granted | The permission is already granted |
unsupported_permission | The permission is not supported |
Preview