用途:把 World App 小程序转换为同时支持普通浏览器的独立网页应用,或在 MiniKit 之外增加浏览器钱包支持。MiniKit 命令会自动检测运行环境,在 World App 内使用原生桥接,在外部回退到 Wagmi。
主要能力与用法:
- 安装依赖:pnpm add wagmi @tanstack/react-query siwe。
- 创建 Wagmi 配置(config.ts),链为 worldchain,连接器为 worldApp() 与 injected(),worldApp() 处理 World App,injected() 处理浏览器钱包(如 MetaMask)。
- 更新 Providers,用 WagmiProvider 与 QueryClientProvider 包裹,并向 MiniKitProvider 传入 wagmiConfig;MiniKitProvider 内部调用 setWagmiConfig(config) 注册 Wagmi 回退适配器。
- 认证自动生效:MiniKit.walletAuth() 无需改代码,World App 走原生 SIWE(Smart Account/Safe),网页经 Wagmi 连接器签名;后端 verifySiweMessage 自动区分 Smart Account(EIP-1271)与 EOA(ECDSA)。
- 交易自动生效:MiniKit.sendTransaction() 无需改代码,仅限 World Chain(chainId 480);网页单笔直接发送,多笔顺序执行且每笔都需钱包确认(非原子)。回执可用 useUserOperationReceipt 轮询,或按 executedWith 区分处理。
- World ID 无需改动,其使用 IDKit,与钱包层独立。
内置 Wagmi 支持的命令:walletAuth、sendTransaction、signMessage、signTypedData。pay、shareContacts 等无内置回退,需自行提供 fallback,否则在网页抛出 CommandUnavailableError。
环境差异:账户类型 World App 为 Smart Account(Safe)、网页为 EOA;交易哈希分别 userOpHash 与标准 tx hash;多笔交易在 App 内原子批处理、网页为顺序非原子;Gas 在 App 内赞助、网页由用户支付;两者均使用 World Chain(480)。