Use this hook whenever you need access to all the current wallets in your app — it returns an array of wallets, with type Wallet[].
The array represents all wallets that were connected in the current session + all wallets authenticated by the current user. See this section for more details.
Example: listing which wallets are currently connected
import { FC } from 'react'
import { useUserWallets } from '@dynamic-labs/sdk-react-core'
export const ListConnectedWallets: FC = () => {
const userWallets = useUserWallets()
return (
<div>
<h1>Wallets</h1>
{userWallets.map((wallet) => (
<p key={wallet.id}>
{wallet.address}
</p>
))}
</div>
)
}
What does the Wallet type look like?
You can inspect the type using your code editor, but here’s a summary:
id: string;
key: string;
address: string;
additionalAddresses: WalletAdditionalAddress[];
chain: string;
isAuthenticated: boolean;
connector: walletConnector
walletConnector is the connector/provider instance attached to the wallet (available as wallet.connector).
When is a wallet added to this array?
There are currently 2 ways a wallet can be added to the array:
- When the a new wallet is connected to the current session.
- When the user signs in, all wallets authenticated to his account are added.
Notice the intentional distinction between the user and the current session: if your end-user connects in connect-only mode, he doesn’t get a jwt. This means we have no access to the authenticated wallets.
When is a wallet removed from this array?
Wallets are only removed explicitly by the user, be it through log-out, unlinking, or disconnecting in connect-only.