> For the complete documentation index, see [llms.txt](/llms.txt).

# useWeb3Auth

Core hook that exposes the SDK state and the underlying `Web3Auth` instance. Use this hook to check whether the user is connected, access the EIP-1193 provider for EVM calls, or access the Solana signer.

### Import[​](#import "Direct link to Import")

```
import { useWeb3Auth } from '@web3auth/react-native-sdk'

```

### Usage[​](#usage "Direct link to Usage")

```
import { useWeb3Auth } from '@web3auth/react-native-sdk'
import { ethers } from 'ethers'
import type { TransactionSigner } from '@solana/signers'

function HomeView() {
  const { isConnected, isInitializing, provider, web3Auth } = useWeb3Auth()

  if (isInitializing) return <Text>Initializing…</Text>
  if (!isConnected) return <Text>Please sign in</Text>

  const getEvmAddress = async () => {
    const ep = new ethers.BrowserProvider(provider!)
    const signer = await ep.getSigner()
    return await signer.getAddress()
  }

  const getSolanaAddress = () => {
    const signer = web3Auth?.signer as TransactionSigner | null
    return signer ? String(signer.address) : null
  }

  return <View>...</View>
}

```

### Return type[​](#return-type "Direct link to Return type")

#### `isConnected`[​](#isconnected "Direct link to isconnected")

`boolean`

`true` when the user has an active authenticated session. Gates all other hook usage that requires a connected wallet.

#### `isInitializing`[​](#isinitializing "Direct link to isinitializing")

`boolean`

`true` while the provider is restoring a previous session on mount. Render a loading indicator while this is `true` to avoid a flash of the logged-out state.

#### `provider`[​](#provider "Direct link to provider")

`IProvider | null`

The EIP-1193 compatible provider for the connected EVM chain. Pass this directly to `new ethers.BrowserProvider(provider)` or `createWalletClient({ transport: custom(provider) })` (viem). `null` when not connected or when the active chain is Solana.

#### `web3Auth`[​](#web3auth "Direct link to web3auth")

`Web3Auth | null`

The underlying SDK instance. Primarily useful for accessing `web3Auth.signer` on Solana chains and for advanced use cases. Prefer the dedicated hooks for common operations.

#### `signer`[​](#signer "Direct link to signer")

`unknown`

Alias for `web3Auth?.signer`. On Solana chains this is a `TransactionSigner` from `@solana/signers`. On EVM chains this is `null`, use `provider` instead.
