Skip to content

useActiveAccount

Hook for reading the currently active wallet account. Returns address, all available addresses, and connection state — reactively updated whenever the active account changes.

Import

typescript
import { useActiveAccount } from '@growae/reactive-react'

Usage

tsx
import { useActiveAccount } from '@growae/reactive-react'

function Account() {
  const { address, addresses, isConnected, connector } = useActiveAccount()

  if (!isConnected) return <p>Not connected</p>

  return (
    <div>
      <p>Active: {address}</p>
      <p>All accounts: {addresses.length}</p>
    </div>
  )
}

Return Type

typescript
type UseActiveAccountReturnType =
  | {
      address: string
      addresses: readonly [string, ...string[]]
      connector: Connector
      isConnected: true
    }
  | {
      address: undefined
      addresses: undefined
      connector: undefined
      isConnected: false
    }

address

The active account address (ak_...). undefined when disconnected.

addresses

All accounts from the connected wallet. undefined when disconnected.

connector

The current Connector instance. undefined when disconnected.

isConnected

true when a wallet is connected, false otherwise. Narrows the type of address, addresses, and connector.

Parameters

config

  • Type: Config
  • Optional

Config to use instead of the one from context.

Examples

Show all wallet accounts

tsx
import { useActiveAccount, useSwitchActiveAccount } from '@growae/reactive-react'

function AccountList() {
  const { address, addresses, isConnected } = useActiveAccount()
  const { switchActiveAccount } = useSwitchActiveAccount()

  if (!isConnected) return null

  return (
    <ul>
      {addresses.map((addr) => (
        <li key={addr}>
          {addr.slice(0, 12)}...
          {addr === address && ' (active)'}
          {addr !== address && (
            <button onClick={() => switchActiveAccount({ account: addr })}>
              Switch
            </button>
          )}
        </li>
      ))}
    </ul>
  )
}

Actions