> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# useSmartWallets

> [card] Recommended: JavaScript SDK with React Hooks
>
> For new React apps, we recommend the JavaScript SDK with React Hooks (`@dynamic-labs-sdk/react-hooks`) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the [React quickstart (JavaScript SDK)](https://docs.dynamic.xyz/docs/javascript/reference/react-quickstart.md) to get started.

# useSmartWallets

The `useSmartWallets` hook provides utility functions for working with smart contract wallets and their corresponding EOA (Externally Owned Account) wallets.

## Usage

```typescript theme={"system"}
import { useSmartWallets } from '@dynamic-labs/sdk-react-core';

function MyComponent() {
  const { isSmartWallet, getEOAWallet, getSmartWallet } = useSmartWallets();
  // ...
}
```

## Return Value

The hook returns an object with the following properties:

* isSmartWallet: (wallet: Wallet) => boolean;
  Allows you to tell whether a wallet is a Smart Contract Wallet.

* getEOAWallet: (wallet: Wallet) => Wallet | undefined;
  Given a smart wallet, returns the correspondent EOA wallet. If a non smart wallet is provided, returns undefined.

* getSmartWallet: (wallet: Wallet) => Wallet | undefined;
  Given an EOA wallet, returns the corresponding smart wallet. If a non EOA wallet is provided, returns undefined.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.