Use MiniKit.shareContacts() to open the World App contact picker.
Basic Usage
import { MiniKit } from "@worldcoin/minikit-js";
import type {
CommandResultByVia,
MiniKitShareContactsOptions,
ShareContactsResult,
} from "@worldcoin/minikit-js/commands";
export async function pickContacts() {
const input = {
isMultiSelectEnabled: true,
inviteMessage: "Join me in this mini app",
} satisfies MiniKitShareContactsOptions;
const result: CommandResultByVia<
ShareContactsResult,
ShareContactsResult,
"minikit"
> = await MiniKit.shareContacts(input);
console.log(result.data.contacts);
}
type MiniKitShareContactsOptions = {
isMultiSelectEnabled?: boolean;
inviteMessage?: string;
fallback?: () => unknown;
};
Result
type ShareContactsResponse =
| {
executedWith: "minikit";
data: {
contacts: Array<{
username: string;
walletAddress: string;
profilePictureUrl: string | null;
}>;
timestamp: string;
};
}
| {
executedWith: "fallback";
data: unknown;
};
{
"executedWith": "minikit",
"data": {
"contacts": [
{
"username": "alex",
"walletAddress": "0x1234567890123456789012345678901234567890",
"profilePictureUrl": "https://cdn.example.com/profile/alex.png"
}
],
"timestamp": "2026-03-28T18:24:00.000Z"
}
}
Error Codes
| Code | Meaning |
|---|
user_rejected | The user rejected the request |
generic_error | Unexpected failure |
Fallback Behavior
Define a custom fallback in the command payload for support outside mini apps.
Preview