Skip to main content
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

CodeMeaning
user_rejectedThe user rejected the request
generic_errorUnexpected failure

Fallback Behavior

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

Preview