Use Para as the exclusive wallet provider in (formerly WalletConnect Web3Modal). This integration provides a polished wallet connection UI with Para handling all authentication.

This guide uses Para as the only wallet option in AppKit. For a simpler integration with multiple wallets, see the external wallets guide.

Prerequisites

Before integrating with Reown AppKit, ensure you have a Para account and project ID from Reown.

Installation

Install Para’s Wagmi integration and Reown AppKit:

npm install @getpara/wagmi-v2-integration@alpha @reown/appkit @reown/appkit-adapter-wagmi wagmi viem @tanstack/react-query

Configuration

Create the AppKit configuration with Para as the sole connector:

appkit.config.ts
import { createAppKit } from "@reown/appkit/react";
import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
import { paraConnector } from "@getpara/wagmi-v2-integration";
import { mainnet, polygon, arbitrum } from "@reown/appkit/networks";
import Para, { Environment } from "@getpara/web-sdk";
import { QueryClient } from "@tanstack/react-query";

// Initialize clients
const para = new Para(Environment.BETA, "YOUR_PARA_API_KEY");
const queryClient = new QueryClient();

// Configure chains
const chains = [mainnet, polygon, arbitrum] as const;

// Create Para connector
const connector = paraConnector({
  para,
  chains: [...chains],
  appName: "Your App Name"
});

// Setup Wagmi adapter
const wagmiAdapter = new WagmiAdapter({
  networks: [...chains],
  projectId: "YOUR_REOWN_PROJECT_ID",
  connectors: [connector]
});

// Create AppKit instance
export const appKit = createAppKit({
  adapters: [wagmiAdapter],
  networks: [...chains],
  projectId: "YOUR_REOWN_PROJECT_ID",
  metadata: {
    name: "Your App Name",
    description: "Your app description",
    url: "https://yourapp.com",
    icons: ["https://yourapp.com/icon.png"]
  },
  features: {
    analytics: true,
    email: false,      // Para handles auth
    socials: false,    // Para handles socials
  },
  allWallets: "HIDE"   // Only show Para
});

export { wagmiAdapter };

Provider Setup

Wrap your app with the necessary providers:

app.tsx
import { WagmiProvider } from "wagmi";
import { QueryClientProvider } from "@tanstack/react-query";
import { wagmiAdapter } from "./appkit.config";

const queryClient = new QueryClient();

function App() {
  return (
    <WagmiProvider config={wagmiAdapter.wagmiConfig}>
      <QueryClientProvider client={queryClient}>
        {/* Your app */}
      </QueryClientProvider>
    </WagmiProvider>
  );
}

Using AppKit

Open the connection modal using AppKit hooks:

connect-button.tsx
import { useAppKit } from "@reown/appkit/react";

function ConnectButton() {
  const { open } = useAppKit();
  
  return (
    <button onClick={() => open()}>
      Connect Wallet
    </button>
  );
}

Configuration Options

Key configuration options for the Para + AppKit integration:

const connector = paraConnector({
  para,                              // Your Para instance
  chains,                            // Supported chains
  appName: "Your App Name",          // Display name
  queryClient,                       // TanStack Query client
  oAuthMethods: ["GOOGLE", "TWITTER"], // Social login options
  disableEmailLogin: false,          // Enable email auth
  disablePhoneLogin: false,          // Enable phone auth
});

Next Steps