Skip to Content
dAppsWeb3Modal

Web3Modal (AppKit)

Interfaz oficial de conexión de carteras de WalletConnect, ahora parte de Reown AppKit. Ofrece compatibilidad con varias cadenas y conexiones de carteras móviles.

Web3Modal ha pasado a llamarse Reown AppKit. Esta guía usa los paquetes @reown/appkit. Sigue la guía de migración de Reown al actualizar una integración existente de Web3Modal.


Instalación

npm install @reown/appkit @reown/appkit-adapter-wagmi wagmi@^2 viem@^2 @tanstack/react-query@^5

Configuración básica

App.tsx
import { createAppKit } from '@reown/appkit/react' import { WagmiProvider } from 'wagmi' import { mainnet, polygon, arbitrum, type AppKitNetwork } from '@reown/appkit/networks' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { WagmiAdapter } from '@reown/appkit-adapter-wagmi' // 1. Get projectId from https://cloud.reown.com const projectId = 'YOUR_PROJECT_ID' // 2. Configure networks const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, polygon, arbitrum] // 3. Create wagmi adapter const wagmiAdapter = new WagmiAdapter({ projectId, networks, }) // 4. Create modal createAppKit({ adapters: [wagmiAdapter], networks, projectId, metadata: { name: 'My dApp', description: 'My dApp description', url: 'https://mydapp.com', // Must match your deployed dApp origin icons: ['https://mydapp.com/icon.png'], }, }) const queryClient = new QueryClient() export default function App() { return ( <WagmiProvider config={wagmiAdapter.wagmiConfig}> <QueryClientProvider client={queryClient}> {/* Use the web component */} <appkit-button /> </QueryClientProvider> </WagmiProvider> ) }

Destacar OneKey

Añade estas opciones a la llamada existente a createAppKit para dar prioridad a OneKey. Confirma el identificador de la cartera en la guía de carteras de WalletConnect al actualizar la integración:

createAppKit({ adapters: [wagmiAdapter], networks, projectId, featuredWalletIds: [ // OneKey Wallet ID from WalletConnect Explorer '1aedbcfc1f31aade56ca34c38b0a1607b41cccfa3de93c946ef3b4ba2dfab11c', ], // Optional: Only show specific wallets includeWalletIds: [ '1aedbcfc1f31aade56ca34c38b0a1607b41cccfa3de93c946ef3b4ba2dfab11c', // Add other wallet IDs as needed ], })

Personalización

Tema

createAppKit({ // ... themeMode: 'dark', // or 'light' themeVariables: { '--w3m-accent': '#00B812', // OneKey green '--w3m-border-radius-master': '8px', }, })

Botón personalizado

import { useAppKit } from '@reown/appkit/react' function CustomButton() { const { open } = useAppKit() return ( <button onClick={() => open()}> Connect Wallet </button> ) }

Hooks

Usa hooks de wagmi después de conectar:

import { useAccount, useDisconnect } from 'wagmi' import { useAppKit } from '@reown/appkit/react' function Wallet() { const { address, isConnected } = useAccount() const { disconnect } = useDisconnect() const { open } = useAppKit() if (!isConnected) { return <button onClick={() => open()}>Connect</button> } return ( <div> <p>{address}</p> <button onClick={() => disconnect()}>Disconnect</button> </div> ) }

Recursos

Última actualización el