← Protocols
Reown AppKit
Wallet / Auth·EVM · Solana · Bitcoin · Multi-chain

Reown AppKit

01Description

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.

02Best for
  • 01wallet connect modal
  • 02multi-chain wallet UX
  • 03WalletConnect v2 sessions
  • 04EVM + Solana + Bitcoin in one modal
  • 05open-source wallet UI
03Install
  • 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
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_PROJECT_IDClientReown Cloud project ID from https://dashboard.reown.com (formerly the WalletConnect Cloud project ID). Client-safe.
05Prompt snippet
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.
06Gotchas
  • 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.
07Alternatives