Skip to main content

Hooks

Hooks are functions that will help you control the modal, subscribe to wallet events and interact with them and smart contracts.

useAppKit

Hook for controlling the modal.

import { useAppKit } from '@reown/appkit/react'

export default function Component() {
const { open, close } = useAppKit()
}

Returns

  • open: Function to open the modal
  • close: Function to close the modal

Parameters

You can also select the modal's view when calling the open function

open({ view: 'Account' })

List of views you can select

VariableDescription
ConnectPrincipal view of the modal - default view when disconnected
AccountUser profile - default view when connected
AllWalletsShows the list of all available wallets
NetworksList 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
Swap"Swap main view

useAppKitAccount

Hook for accessing account data and connection status.

import { useAppKitAccount } from "@reown/appkit/react";

export default Component(){
const { address, isConnected, caipAddress, status } = useAppKitAccount()
}

Returns

  • address: The current account address
  • caipAddress: The current account address in CAIP format
  • isConnected: Boolean that indicates if the user is connected
  • status: The current connection status

useAppKitNetwork

Hook for accessing network data and methods.

import { useAppKitNetwork } from "@reown/appkit/react";

export default Component(){
const { caipNetwork, caipNetworkId, chainId, switchNetwork } = useAppKitNetwork()
}

Returns

  • caipNetwork: The current network object
  • caipNetworkId: The current network id in CAIP format
  • chainId: The current chain id
  • switchNetwork: Function to switch the network. Accepts a caipNetwork object as argument.
info

See how to import or create a networks here.

useAppKitState

Hook for getting the current value of the modal's state.

import { useAppKitState } from '@reown/appkit/react'

const { open, selectedNetworkId } = useAppKitState()

Returns

  • open: Boolean that indicates if the modal is open
  • selectedNetworkId: The current chain id selected by the user

useAppKitTheme

Hook for controlling the modal's theme.

import { useAppKitTheme } from '@reown/appkit/react'
const { themeMode, themeVariables, setThemeMode, setThemeVariables } = useAppKitTheme()

setThemeMode('dark')

setThemeVariables({
'--w3m-color-mix': '#00BB7F',
'--w3m-color-mix-strength': 40
})

useAppKitEvents

Hook for subscribing to modal events.

import { useAppKitEvents } from '@reown/appkit/react'

const events = useAppKitEvents()

useDisconnect

Hook for disconnecting the session.

import { useDisconnect } from '@reown/appkit/react'

const { disconnect } = useDisconnect()

disconnect()

useWalletInfo

Hook for accessing wallet information.

import { useWalletInfo } from '@reown/appkit/react'


export default Component(){
const { walletInfo } = useWalletInfo()
}

Ethereum/Solana Library

useAppKitAccount

Hook that returns the client's information.

import { useAppKitAccount } from '@reown/appkit/react'

function Components() {
const { address, caipAddress, isConnected } = useAppKitAccount();

//...
}

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>
}