Skip to main content
Migrate your existing Web3Modal application to Para’s unified wallet system. Since both Web3Modal and Para use Wagmi internally, the migration involves replacing the Web3Modal provider with Para’s ParaProvider while maintaining your existing Wagmi configuration.

Installation

Replace Web3Modal packages with Para SDK while keeping Wagmi:
Terminal
For a full list of dependencies, refer to the Quick Start Guide.

Configuration Changes

Before: Web3Modal Config

Your existing Web3Modal configuration likely looks like this:
config/index.ts

After: Para Config

Transform your configuration for Para:
src/config/constants.ts

Provider Migration

Before: Web3Modal Provider

Your existing Web3Modal provider:
context/Web3ModalProvider.tsx

After: Para Provider

Replace with Para’s provider, passing your Wagmi config:
src/context/ParaProvider.tsx

Layout Update

Before: Web3Modal Layout

app/layout.tsx

After: Para Layout

src/app/layout.tsx

Connect Button Migration

Before: Web3Modal Button

components/ConnectButton.tsx

After: Para Button

src/components/ConnectButton.tsx

Configuration Mapping

Para maintains full Wagmi compatibility. Your existing Wagmi hooks and configuration continue to work seamlessly.

Advanced Configuration

Multiple Chains

src/context/ParaProvider.tsx

Custom RPC Endpoints

src/context/ParaProvider.tsx

Social Login Support

Para adds embedded wallet support automatically:
src/context/ParaProvider.tsx

Using Wagmi Hooks

Your existing Wagmi code continues to work without changes:
src/components/AccountInfo.tsx

Migration Checklist

  • Remove @web3modal/wagmi and @web3modal/wagmi/react
  • Install @getpara/react-sdk
  • Keep wagmi, viem, and @tanstack/react-query
  • Run the Para postinstall script
  • Move Wagmi config to externalWalletConfig.evmConnector.config
  • Add Para API key to environment variables
  • Migrate metadata to Para’s config object
  • Keep WalletConnect project ID for external wallets
  • Replace Web3ModalProvider with ParaProvider
  • Remove cookie state handling (Para manages internally)
  • Keep QueryClientProvider wrapper
  • Import Para styles
  • Replace useWeb3Modal with useModal
  • Update connect button component
  • Keep all Wagmi hook usage unchanged
  • Test wallet connections

Common Issues

SSR Hydration: Para handles SSR internally. Remove manual cookie state management from your layout.
Connector Configuration: Para manages wallet connectors internally. Remove explicit connector imports from Wagmi.

Next Steps

Hook Reference

Explore Para’s React hooks for wallet interactions

Custom Styling

Customize the Para modal appearance

Chain Management

Configure multi-chain support