Skip to content

useActiveConnector

The useActiveConnector hook provides access to the currently active wallet connector.

Import

tsx
import { useActiveConnector } from '@luno-kit/react'
import type { Connector } from '@luno-kit/core'

Usage

tsx
import { useActiveConnector } from '@luno-kit/react'
import type { Connector } from '@luno-kit/react'

function ActiveConnectorDisplay() {
  const activeConnector = useActiveConnector()
  
  if (!activeConnector) {
    return <div>No wallet connected</div>
  }
  
  return (
    <div>
      <img src={activeConnector.icon} alt={activeConnector.name} width={24} height={24} />
      <span>Connected to {activeConnector.name}</span>
    </div>
  )
}
ts
import { createConfig, kusama, polkadot, polkadotjsConnector } from '@luno-kit/react'

const config = createConfig({
  appName: 'luno with-vite example',
  chains: [polkadot, kusama],
  connectors: [polkadotjsConnector()],
  autoConnect: true,
});

Return Value

The hook returns the currently active connector or undefined:

PropertyTypeDescription
activeConnectorConnector | undefinedThe currently active wallet connector, or undefined if no wallet is connected

Connector Interface

When a connector is active, it provides the following properties and methods:

PropertyTypeDescription
idstringUnique identifier for the connector
namestringDisplay name of the wallet
iconstringURL or path to the wallet icon
linksConnectorLinksLinks to browser extension and deep link
isAvailable()() => Promise<boolean>Check if the connector is available
isInstalled() => booleanCheck if the wallet extension is installed
connect()(appName: string, chains?: Chain[], targetChainId?: string) => Promise<Array<Account>>Connect to the wallet
disconnect()() => Promise<void>Disconnect from the wallet
getAccounts()() => Promise<Array<Account>>Get connected accounts
getSigner()() => Promise<Signer | undefined>Get the signer for transactions
signMessage()(message: string, address: string, chainId?: string) => Promise<string | undefined>Sign a message
hasConnectionUri()() => booleanCheck if connection URI is available
getConnectionUri()() => Promise<string | undefined>Get connection URI for mobile wallets
updateAccountsForChain()(chainId: string) => Promise<Account[]>Update accounts for a specific chain
tsx
interface ConnectorLinks {
  browserExtension?: string; 
  deepLink?: string;
}

Account

tsx
interface Account {
  address: string;
  name?: string;
  publicKey?: HexString;
  meta?: {
    source?: string;
    genesisHash?: string | null;
    [key: string]: any;
  };
  type?: KeypairType;
}

Signer

tsx
interface Signer extends InjectedSigner {}

TIP

The Signer interface extends InjectedSigner from the dedot library. For complete type information, refer to the dedot documentation.

Chain

tsx
interface Chain {
  genesisHash: string;
  name: string;
  nativeCurrency: {
    name: string;
    symbol: string;
    decimals: number;
  };
  rpcUrls: {
    webSocket: readonly string[];
    http?: readonly string[];
  };
  ss58Format: number;
  blockExplorers?: {
    default?: { name: string; url: string };
    [key: string]: { name: string; url: string } | undefined;
  };
  testnet: boolean;
  chainIconUrl: string
}

Released under the MIT License.