Skip to main content

Hooks

useWeb3Modal​

Control the modal with the useWeb3Modal hook

import { useWeb3Modal } from '@web3modal/wagmi-react-native'

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

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

useWeb3ModalState​

Get the current value of the modal's state

import { useWeb3ModalState } from '@web3modal/wagmi-react-native'

const { open, selectedNetworkId } = useWeb3ModalState()

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

useWeb3ModalEvents​

Get the last tracked modal event

import { useWeb3ModalEvents } from '@web3modal/wagmi-react-native'

const event = useWeb3ModalEvents()

useWalletInfo​

Get the metadata information from the connected wallet

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

const { walletInfo } = useWalletInfo()

Ethereum Library​

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 { Text } from 'react-native'
import { useAccount } from 'wagmi'

function App() {
const { address, isConnecting, isDisconnected } = useAccount()

if (isConnecting) return <Text>Connecting…</Text>
if (isDisconnected) return <Text>Disconnected</Text>
return <Text>{address}</Text>
}

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