Skip to main content
AppKit provides pre-built React components that you can use to trigger the modal or display wallet information in your Next.js application.

React Components

import { 
  AppKitButton, 
  AppKitConnectButton, 
  AppKitAccountButton, 
  AppKitNetworkButton 
} from "@reown/appkit/react";

export default function MyApp() {
  return (
    <div>
      {/* Default button that handles the modal state */}
      <AppKitButton />
      
      {/* Button for connecting a wallet */}
      <AppKitConnectButton />
      
      {/* Button for account view */}
      <AppKitAccountButton />
      
      {/* Button for network selection */}
      <AppKitNetworkButton />
    </div>
  );
}

Component Properties

All React components support the same properties as their HTML element counterparts:
  • AppKitButton: size, label, loadingLabel, disabled, balance, namespace
  • AppKitConnectButton: size, label, loadingLabel
  • AppKitAccountButton: disabled, balance
  • AppKitNetworkButton: disabled

<appkit-wallet-button />

Using the wallet button components (Demo in our Lab), you can directly connect to the top 20 wallets, WalletConnect QR and also all the social logins. This component allows to customize dApps, enabling users to connect their wallets effortlessly, all without the need for the traditional modal. Follow these steps to use the component:
  1. Install the package:
npm install @reown/appkit-wallet-button
  1. Import the library in your project:
import "@reown/appkit-wallet-button/react";
  1. use the component in your project:
import { AppKitWalletButton } from "@reown/appkit-wallet-button/react";

export default function MyApp() {
  return <AppKitWalletButton wallet="metamask" />;
}

Multichain Support

You can specify a blockchain namespace to target specific chains:
<!-- Connect to Ethereum/EVM chains -->
<appkit-wallet-button wallet="metamask" namespace="eip155" />

<!-- Connect to Solana -->
<appkit-wallet-button wallet="phantom" namespace="solana" />

<!-- Connect to Bitcoin -->
<appkit-wallet-button wallet="leather" namespace="bip122" />

Enhanced Multichain Examples

The wallet button now supports enhanced multichain functionality with improved namespace targeting:
const wallets = [
  { wallet: 'metamask', namespace: 'eip155', label: 'MetaMask EVM' },
  { wallet: 'metamask', namespace: 'solana', label: 'MetaMask Solana' },
  { wallet: 'phantom', namespace: 'bip122', label: 'Phantom Bitcoin' }
]

export function WalletButtons() {
  return (
    <>
      {wallets.map(({ wallet, namespace, label }) => (
        <appkit-wallet-button
          key={`${wallet}-${namespace}`}
          wallet={wallet}
          namespace={namespace}
        />
      ))}
    </>
  )
}

Options for wallet property

TypeOptions
QR CodewalletConnect
Walletsmetamask, trust, coinbase, rainbow, coinbase, jupiter, solflare, coin98, magic-eden, backpack, frontier, xverse, okx, bitget, leather, binance, uniswap, safepal, bybit, phantom, ledger, timeless-x, safe, zerion, oneinch, crypto-com, imtoken, kraken, ronin, robinhood, exodus, argent, and tokenpocket
Social loginsgoogle, github, apple, facebook, x, discord, and farcaster

Options for namespace property

ValueDescription
eip155Ethereum and EVM-compatible chains
solanaSolana blockchain
bip122Bitcoin blockchain