UNPKG

@worldcoin/minikit-js

Version:

minikit-js is our SDK for building mini-apps.

44 lines (42 loc) 1.47 kB
/** * Self-contained EIP-1193 Provider for World App * * Works with any Ethereum library (viem, ethers, wagmi, or raw EIP-1193). * Triggers walletAuth on `eth_requestAccounts` and routes all other RPC * methods to MiniKit's native commands. * * @example * ```typescript * // viem * import { createWalletClient, custom } from 'viem'; * import { getWorldAppProvider } from '@worldcoin/minikit-js'; * const client = createWalletClient({ transport: custom(getWorldAppProvider()), chain: worldchain }); * * // ethers * import { BrowserProvider } from 'ethers'; * import { getWorldAppProvider } from '@worldcoin/minikit-js'; * const provider = new BrowserProvider(getWorldAppProvider()); * ``` */ type WorldAppProvider = { request: (args: { method: string; params?: unknown; }) => Promise<unknown>; on: (event: string, fn: (...args: unknown[]) => void) => void; removeListener: (event: string, fn: (...args: unknown[]) => void) => void; }; declare global { interface Window { __worldapp_eip1193_provider__?: WorldAppProvider; __worldapp_eip1193_address__?: `0x${string}`; } } /** * Get the EIP-1193 provider for World App. * * Returns a singleton instance (stored on `window`) so all consumers * share the same provider and address state, even across separate bundles. */ declare function getWorldAppProvider(): WorldAppProvider; export { type WorldAppProvider as W, getWorldAppProvider as g };