Skip to main content

Hooks

useAppKit

Control the modal with the useAppKit hook

import { useAppKit } from '@reown/appkit-wagmi-react-native'

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

VariableDescription
ConnectPrincipal view of the modal - default view when disconnected
AccountUser profile - default view when connected
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

useAppKitState

Get the current value of the modal's state

import { useAppKitState } from '@reown/appkit-wagmi-react-native'

const { open, selectedNetworkId } = useAppKitState()

The modal state consists of two reactive values:

StateDescriptionType
openOpen state will be true when the modal is open and false when closed.
boolean
selectedNetworkIdThe current chain id selected by the user
number

useAppKitEvents

Get the last tracked modal event

import { useAppKitEvents } from '@reown/appkit-wagmi-react-native'

const event = useAppKitEvents()

useWalletInfo

Get the metadata information from the connected wallet

import { useWalletInfo } from '@reown/appkit-wagmi-react-native'

const { walletInfo } = useWalletInfo()

Ethereum 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 { View, Text, Pressable } from 'react-native'
import { useSignMessage } from 'wagmi'

function App() {
const { data, isError, isPending, isSuccess, signMessage } = useSignMessage()

return (
<View>
<Pressable disabled={isPending} onPress={() => signMessage({ message: 'hello world' })}>
<Text>Sign message</Text>
</Pressable>
{isSuccess && <Text>Signature: {data}</Text>}
{isError && <Text>Error signing message</Text>}
</View>
)
}

useReadContract

Hook for calling a read method on a Contract.

import { View, Text } from 'react-native'
import { useReadContract } from './abi'

function App() {
const { data, isError, isPending, isSuccess } = useReadContract({
abi,
address: '0x6b175474e89094c44da98b954eedeac495271d0f',
functionName: 'totalSupply'
})

return (
<View>
{isPending && <Text>Loading</Text>}
{isSuccess && <Text>Response: {data?.toString()}</Text>}
{isError && <Text>Error reading contract</Text>}
</View>
)
}