Hooks
Hooks are functions that will help you control the modal, subscribe to wallet events and interact with them and smart contracts.
useAppKit
Control the modal with the useAppKit hook
- Wagmi
 - Ethers
 - Ethers v5
 - Solana
 
import { useAppKit } from '@reown/appkit/react'
export default function Component() {
  const { open, close } = useAppKit()
  open()
  //...
}
import { useAppKit } from '@reown/appkit/react'
export default function Component() {
  const { open, close } = useAppKit()
  open()
  //...
}
import { useAppKit } from '@reown/appkit/react'
export default function Component() {
  const { open, close } = useAppKit()
  open()
  //...
}
import { useAppKit } from '@reown/appkit/react'
export default function Component() {
  const { open, close } = useAppKit()
  open()
  //...
}
You can also select the modal's view when calling the open function
open({ view: 'Account' })
List of views you can select
| Variable | Description | 
|---|---|
Connect | Principal view of the modal - default view when disconnected | 
Account | User profile - default view when connected | 
AllWallets | Shows the list of all available wallets | 
Networks | List of available networks - you can select and target a specific network before connecting | 
WhatIsANetwork | "What is a network" onboarding view | 
WhatIsAWallet | "What is a wallet" onboarding view | 
OnRampProviders | "On-Ramp main view | 
useDisconnect
const { disconnect } = useDisconnect()
disconnect()
useWalletInfo
Metadata information from the connected wallet
import { useWalletInfo } from '@reown/appkit/react'
export default Component(){
  const { walletInfo } = useWalletInfo()
  console.log(walletInfo.name, walletInfo.icon)
  //...
}
Ethereum Library
- Wagmi
 - Ethers
 
You can use Wagmi hooks to sign messages, interact with smart contracts, and much more.
useAccount
Hook for accessing account data and connection status.
import { useAccount } from 'wagmi'
function App() {
  const { address, isConnecting, isDisconnected } = useAccount()
  if (isConnecting) return <div>Connecting…</div>
  if (isDisconnected) return <div>Disconnected</div>
  return <div>{address}</div>
}
useSignMessage
Hook for signing messages with connected account.
import { useSignMessage } from 'wagmi'
function App() {
  const { signMessage } = useSignMessage()
  return <button onClick={() => signMessage({ message: 'hello world' })}>Sign message</button>
}
useAppKitAccount
Hook that returns the client's information.
import { useAppKitAccount } from '@reown/appkit/react'
function Components() {
  const { address, chainId, isConnected } = useAppKitAccount()
  //...
}
switchNetwork
import { createAppKit } from '@reown/appkit/react'
import { mainnet, arbitrum, polygon } from '@reown/appkit/networks'
const modal = createAppKit({
  adapters: [wagmiAdapter],
  projectId,
  networks: [mainnet, arbitrum],
  metadata: metadata,
  features: {
    analytics: true,
  }
})
modal.switchNetwork(polygon)
useAppKitProvider
Hook that returns the walletProvider and the WalletProviderType.
import { BrowserProvider } from 'ethers'
import { useAppKitProvider } from '@reown/appkit/react'
function Components() {
  const { walletProvider } = useAppKitProvider()
  async function onSignMessage() {
    const provider = new BrowserProvider(walletProvider)
    const signer = await provider.getSigner()
    const signature = await signer?.signMessage('Hello AppKit Ethers')
    console.log(signature)
  }
  return <button onClick={() => onSignMessage()}>Sign Message</button>
}
getError
function Components() {
  const error = modal.getError();
  //...
}
useAppKitState
Get the current value of the modal's state
- Wagmi
 - Ethers
 - Ethers v5
 - Solana
 
import { useAppKitState } from '@reown/appkit/react'
const { open, selectedNetworkId } = useAppKitState()
import { useAppKitState } from '@reown/appkit/react'
const { open, selectedNetworkId } = useAppKitState()
import { useAppKitState } from '@reown/appkit/react'
const { open, selectedNetworkId } = useAppKitState()
import { useAppKitState } from '@reown/appkit/react'
const { open, selectedNetworkId } = useAppKitState()
The modal state consists of two reactive values:
| State | Description | Type | 
|---|---|---|
open | Open state will be true when the modal is open and false when closed. | boolean | 
selectedNetworkId | The current chain id selected by the user | number | 
useAppKitTheme
import { useAppKitTheme } from '@reown/appkit/react'
const { themeMode, themeVariables, setThemeMode, setThemeVariables } = useAppKitTheme()
setThemeMode('dark')
setThemeVariables({
  '--w3m-color-mix': '#00BB7F',
  '--w3m-color-mix-strength': 40
})
Track modal events
import { useAppKitEvents } from '@reown/appkit/react'
const events = useAppKitEvents()