useSolanaWallet

A React hook that mirrors the behavior and return type of useWallet from @solana/wallet-adapter-react, but safely degrades when Solana is not enabled for your application.

Context:

  • This repository is an external SDK that supports multiple chains. To avoid forcing Solana dependencies on apps that do not use Solana, the Solana wallet context is only considered “active” if Solana has been initialized in the AlchemyAccountProvider configuration.
  • If Solana is not initialized, this hook returns a stable, frozen EMPTY_WALLET_CONTEXT_STATE instead of reading from WalletContext. This prevents runtime errors when the Solana provider is not present and keeps type-safe parity with useWallet consumers.

Behavior:

  • When Solana is configured (i.e. adapters are provided or set to “detect”), this hook returns the live WalletContext from @solana/wallet-adapter-react.
  • Otherwise, it returns EMPTY_WALLET_CONTEXT_STATE where actions such as signMessage, sendTransaction, etc., will reject with “Solana wallet not available”.

Import

1import { useSolanaWallet } from "@account-kit/react";

Usage

1import { useSolanaWallet } from "@account-kit/react";
2
3const wallet = useSolanaWallet();
4
5if (wallet.connected) {
6 // Safe to use wallet.publicKey, sendTransaction, etc.
7} else {
8 // Solana not configured or not connected; UI can conditionally render.
9}

Returns

WalletContextState The Solana wallet context when enabled; a frozen, safe no-op context when Solana is not configured.