Scaffold
Environment Setup
Get your project ID from cloud.reown.com and add it tofrontend/.env.local:
Provider Setup
Reown (formerly WalletConnect AppKit) usesWagmiAdapter and createAppKit for wallet management. The setup requires lazy initialization to handle SSR correctly.
Providers.tsx
ThemeProvider → WagmiProvider (from adapter) → QueryClientProvider
Key details:
WagmiAdaptercreates a wagmi config internally — you usewagmiAdapter.wagmiConfiginstead of creating your own.createAppKitinitializes the Reown modal lazily (only after mount) to avoid SSR issues.- The connect button uses the
<appkit-button />web component in the header. - Module-level variables (
wagmiAdapter,isAppKitInitialized) ensure initialization runs only once.
Inco SDK Integration
The Inco SDK works with thewalletClient provided by wagmi (which Reown’s adapter manages). Here’s the core pattern:
useConfLottery.ts
useWalletClient() provides the signer that Inco’s attestedDecrypt uses for signing attestation requests.
Dependencies
| Package | Purpose |
|---|---|
@reown/appkit | Reown wallet modal (formerly WalletConnect AppKit) |
@reown/appkit-adapter-wagmi | Reown-wagmi adapter |
@inco/js | Inco encryption/decryption |
wagmi | EVM wallet hooks |
viem | Ethereum utilities |