useAuthenticators
Import
import { useAuthenticators } from '@zerodev/wallet-react'Usage
import { useAuthenticators } from '@zerodev/wallet-react'
import { useAccount } from 'wagmi'
function UserProfile() {
const { isConnected } = useAccount()
const { data, isLoading } = useAuthenticators()
if (!isConnected) return null
if (isLoading) return <p>Loading authenticators...</p>
const email = data?.emailContacts?.[0]?.email
return <p>Email: {email ?? 'Not available'}</p>
}Parameters
import { type Config } from 'wagmi'
import { type UseQueryOptions } from '@tanstack/react-query'config
Config | undefined
Optional Wagmi config. If omitted, the hook uses the nearest Wagmi config from context.
query
Omit<UseQueryOptions<GetAuthenticatorsReturnType>, 'queryKey' | 'queryFn'> | undefined
Optional TanStack Query options for the authenticators query.
Return Types
data
GetAuthenticatorsReturnType | undefined
The authenticated user's linked authenticators, grouped by type. The query requires an active ZeroDev wallet session.
oauths
OAuthAuthenticator[] | null
OAuth identities linked to the user.
passkeys
PasskeyAuthenticator[] | null
Passkey authenticators registered for the user.
emailContacts
EmailContact[] | null
Email contacts associated with the user. This is where email OTP and Magic Link addresses appear.
apiKeys
ApiKeyAuthenticator[] | null
API-key authenticators associated with the user.
error
Error | null
- The error object for the query, if an error was thrown.
- Defaults to
null
isError / isPending / isSuccess
boolean
Boolean variables derived from status.
isFetched
boolean
Will be true if the query has been fetched.
isLoading
boolean
- Is
truewhenever the first fetch for a query is in-flight - Is the same as
isFetching && isPending
status
'error' | 'pending' | 'success'
pendingif there's no cached data and no query attempt was finished yet.errorif the query attempt resulted in an error. The correspondingerrorproperty has the error received from the attempted fetchsuccessif the query has received a response with no errors and is ready to display its data. The correspondingdataproperty on the query is the data received from the successful fetch or if the query'senabledproperty is set tofalseand has not been fetched yetdatais the firstinitialDatasupplied to the query on initialization.
refetch
(options: { cancelRefetch?: boolean | undefined; throwOnError?: boolean | undefined }) => Promise<UseQueryResult>
- A function to manually refetch the query.
throwOnError- When set to
true, an error will be thrown if the query fails. - When set to
false, an error will be logged if the query fails.
- When set to
cancelRefetch- When set to
true, a currently running request will be cancelled before a new request is made. - When set to
false, no refetch will be made if there is already a request running. - Defaults to
true
- When set to