# getSmartWalletClient | @account-kit/core

> Creates and returns a Smart Wallet Client instance. Returns undefined if running in a server environment or if no signer is connected. Caches clients by chain ID & address for performance optimization.

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

{/* This file is auto-generated by TypeDoc. Do not edit manually. */}

```ts
function getSmartWalletClient<TAccount>(
  config,
  params?,
): GetSmartWalletClientResult<TAccount>;
```

Defined in: [account-kit/core/src/actions/getSmartWalletClient.ts:20](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/core/src/actions/getSmartWalletClient.ts#L20)

## Type Parameters

<table>
  <thead>
    <tr>
      <th align="left">Type Parameter</th>
      <th align="left">Default type</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `TAccount` *extends* `undefined` | `` `0x${string}` ``
      </td>

      <td>
        `undefined` | `` `0x${string}` ``
      </td>
    </tr>

  </tbody>
</table>

## Parameters

<table>
  <thead>
    <tr>
      <th align="left">Parameter</th>
      <th align="left">Type</th>
      <th align="left">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `config`
      </td>

      <td>
        [`AlchemyAccountsConfig`](../type-aliases/AlchemyAccountsConfig)
      </td>

      <td>
        The configuration containing the client store and connection information
      </td>
    </tr>

    <tr>
      <td>
        `params?`
      </td>

      <td>
        [`GetSmartWalletClientParams`](../type-aliases/GetSmartWalletClientParams)\<`TAccount`>
      </td>

      <td>
        Optional parameters including account address
      </td>
    </tr>

  </tbody>
</table>

## Returns

[`GetSmartWalletClientResult`](../type-aliases/GetSmartWalletClientResult)\<`TAccount`>

The Smart Wallet Client instance or undefined if not available