| Feature | Effort | Details |
|---|---|---|
| World ID | None | IDKit works out of the box |
| Auth | Add Wagmi + providers | Wagmi handles SIWE on web |
| Transactions | Add Wagmi + branch receipts | Hash type differs per environment |
| Other commands | Add fallback function | Custom logic per command |
Ask an agent
Add this skill and ask your agent to convert your web app to a mini app using the steps outlined in this guide.1. Install Dependencies
2. Wagmi Config
config.ts
3. Providers
providers.tsx
The Or call
worldApp() connector automatically registers the wagmi fallback. If your app uses wagmi without the worldApp() connector (e.g. a pure-web setup that still wants MiniKit’s fallback), you need to explicitly register it:registerWagmiFallback(config) from the same subpath.World ID
No changes. IDKit is independent of the wallet layer.Auth
MiniKit.walletAuth() works automatically. No code changes needed.
Backend Verification
verifySiweMessage handles both Smart Accounts (EIP-1271) and EOAs (ECDSA) automatically:
api/verify.ts
Transactions
MiniKit.sendTransaction() works automatically. World Chain only (chainId 480).
- World App: native bridge, atomic batching, returns
userOpHash - Web (single tx): sent directly via Wagmi
- Web (multiple txs): executed sequentially — each requires wallet confirmation and is not atomic
Receipts
Branch onresult.executedWith — World App returns a UserOperation hash, web returns a standard tx hash:
Other Commands
Commands without Wagmi fallbacks (pay, shareContacts, etc.) need a fallback:
CommandUnavailableError on web.