The useNames hook is used to get multiple names from an onchain identity provider for an array of addresses in a single batch request. It is implemented with useQuery from @tanstack/react-query, and returns a UseQueryResult object, allowing you to pass through all @tanstack/react-query options.

Usage

Get ENS names from multiple addresses:
import { useNames } from '@coinbase/onchainkit/identity';

const addresses = [
'0x4bEf0221d6F7Dd0C969fe46a4e9b339a84F52FDF',
'0x838aD0EAE54F99F1926dA7C3b6bFbF617389B4D9'
];
const { data: names, isLoading } = useNames({ addresses });

Get Basenames from multiple addresses:
import { useNames } from '@coinbase/onchainkit/identity';
import { base } from 'viem/chains';

const addresses = [
'0x4bEf0221d6F7Dd0C969fe46a4e9b339a84F52FDF',
'0x4bEf0221d6F7Dd0C969fe46a4e9b339a84F52FDF'
];
const { data: names, isLoading } = useNames({ addresses, chain: base });

Returns

useQuery<Promise<GetNameReturnType[]>>

type GetNameReturnType = string | Basename | null;

Parameters

UseNamesParams

type UseNamesParams = {
  /** Array of addresses to resolve ENS or Basenames for */
  addresses: Address[];
  /** Optional chain for domain resolution */
  chain?: Chain;
};

UseQueryOptions

type UseQueryOptions<TData = unknown> = Omit<
  TanstackUseQueryOptions<TData>,
  'queryKey' | 'queryFn'
>;