Wallet / Auth·EVM · Solana · Bitcoin · Multi-chain
Reown AppKit
Open-source wallet connection SDK from the team behind WalletConnect (formerly Web3Modal). Modal UI plus connectors across EVM, Solana, and Bitcoin via per-chain adapters.
- 01wallet connect modal
- 02multi-chain wallet UX
- 03WalletConnect v2 sessions
- 04EVM + Solana + Bitcoin in one modal
- 05open-source wallet UI
- pnpm add @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query
- pnpm add @reown/appkit-adapter-solana
- pnpm add @reown/appkit-adapter-bitcoin
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_PROJECT_ID | Client | Reown Cloud project ID from https://dashboard.reown.com (formerly the WalletConnect Cloud project ID). Client-safe. |
Use Reown AppKit for wallet connection UI. Get a project ID from https://dashboard.reown.com and put it in `NEXT_PUBLIC_PROJECT_ID`. In a client-side module, call `createAppKit({ adapters: [new WagmiAdapter({ projectId, networks })], networks: [mainnet, base, ...], projectId, metadata })` from `@reown/appkit` once at app startup. Wrap the tree in `WagmiProvider` (using `wagmiAdapter.wagmiConfig`) and `QueryClientProvider`. Render the `<appkit-button />` web component (or call `useAppKit().open()`) to trigger the connect modal. For Solana or Bitcoin, add `@reown/appkit-adapter-solana` / `@reown/appkit-adapter-bitcoin` to the `adapters` array and include their networks.
- ⚑The `createAppKit` call must run exactly once and only on the client — invoking it during SSR or in a re-rendered component crashes the modal; put it in a top-level `'use client'` module imported by your providers.
- ⚑Migrating from Web3Modal v3/v4/v5: remove `@web3modal/*` packages first, switch to `@reown/appkit-adapter-wagmi`, and bump `wagmi`+`viem` to versions compatible with the AppKit version you install — mixed versions cause silent connector failures.
- ⚑Allowlist your production and preview domains in the Reown dashboard or WalletConnect relay requests will be rejected with opaque CORS errors.
- ⚑Each chain family needs its own adapter (`-wagmi`, `-solana`, `-bitcoin`, `-ethers`) and matching `networks` entries — adding a chain to `networks` without its adapter shows the chain in the modal but breaks signing.
- ⚑WalletConnect relay has per-project rate limits; heavy traffic apps should upgrade their Reown plan or sessions will start dropping.