# createMultisigModularAccountClient | @account-kit/smart-contracts

> Creates a multisig modular account client using the provided parameters including account details, transport, chain, and additional client configuration. This function constructs the multisig modular account and extends it with various actions to create a comprehensive client.

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

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

Creates a multisig modular account client using the provided parameters including account details, transport, chain, and additional client configuration. This function constructs the multisig modular account and extends it with various actions to create a comprehensive client.

## Examples

```ts
import { createMultisigModularAccountClient } from "@account-kit/smart-contracts";
import { LocalAccountSigner } from "@aa-sdk/core";
import { sepolia } from "viem/chains";
import { http } from "viem";
import { generatePrivateKey } from "viem/accounts";

const accountClient = await createMultisigModularAccountClient({
  chain: sepolia,
  transport: http("RPC_URL"),
  signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
  owners: [], // other owners on the account
  threshold: 2, // 2 of N signatures
});
```

```ts
import { createMultisigModularAccountClient } from "@account-kit/smart-contracts";
import { sepolia } from "@account-kit/infra";
import { LocalAccountSigner } from "@aa-sdk/core";
import { generatePrivateKey } from "viem"

const alchemyAccountClient = await createMultisigModularAccountClient({
 transport: alchemy({ apiKey: "your-api-key" }),
 chain: sepolia,
 signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
 owners: [...], // other owners on the account
 threshold: 2, // 2 of N signatures
});
```

## Param

the parameters for configuring the multisig modular account client

## Call Signature

```ts
function createMultisigModularAccountClient<TSigner>(
  params,
): Promise<
  AlchemySmartAccountClient<
    undefined | Chain,
    MultisigModularAccount<TSigner>,
    ExecutionActions<
      MultisigModularAccount<TSigner>,
      MultisigUserOperationContext,
      keyof EntryPointRegistryBase<unknown>
    > &
      ManagementActions<
        MultisigModularAccount<TSigner>,
        MultisigUserOperationContext,
        keyof EntryPointRegistryBase<unknown>
      > &
      ReadAndEncodeActions<MultisigModularAccount<TSigner>> &
      object &
      object &
      PluginManagerActions<MultisigModularAccount<TSigner>> &
      AccountLoupeActions<MultisigModularAccount<TSigner>>,
    MultisigUserOperationContext
  >
>;
```

Defined in: [account-kit/smart-contracts/src/msca/client/client.ts:201](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/smart-contracts/src/msca/client/client.ts#L201)

### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `TSigner` *extends* `SmartAccountSigner`\<`any`>
      </td>

      <td>
        `SmartAccountSigner`\<`any`>
      </td>
    </tr>

  </tbody>
</table>

### Parameters

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

  <tbody>
    <tr>
      <td>
        `params`
      </td>

      <td>
        [`AlchemyMultisigAccountClientConfig`](../type-aliases/AlchemyMultisigAccountClientConfig)\<`TSigner`>
      </td>
    </tr>

  </tbody>
</table>

### Returns

`Promise`\<`AlchemySmartAccountClient`\<`undefined` | [`Chain`](https://viem.sh), [`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, `ExecutionActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext), keyof `EntryPointRegistryBase`\<`unknown`>> & `ManagementActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext), keyof `EntryPointRegistryBase`\<`unknown`>> & `ReadAndEncodeActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>> & `object` & `object` & [`PluginManagerActions`](../type-aliases/PluginManagerActions)\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>> & [`AccountLoupeActions`](../type-aliases/AccountLoupeActions)\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>>, [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext)>>

## Call Signature

```ts
function createMultisigModularAccountClient<TTransport, TChain, TSigner>(
  args,
): Promise<
  SmartAccountClient<
    CustomTransport,
    Chain,
    MultisigModularAccount<TSigner>,
    ExecutionActions<
      MultisigModularAccount<TSigner>,
      MultisigUserOperationContext,
      keyof EntryPointRegistryBase<unknown>
    > &
      ManagementActions<
        MultisigModularAccount<TSigner>,
        MultisigUserOperationContext,
        keyof EntryPointRegistryBase<unknown>
      > &
      ReadAndEncodeActions<MultisigModularAccount<TSigner>> &
      object &
      object &
      PluginManagerActions<MultisigModularAccount<TSigner>> &
      AccountLoupeActions<MultisigModularAccount<TSigner>>,
    [{}, {}, {}, {}],
    MultisigUserOperationContext
  >
>;
```

Defined in: [account-kit/smart-contracts/src/msca/client/client.ts:216](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/smart-contracts/src/msca/client/client.ts#L216)

### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `TTransport` *extends* [`Transport`](https://viem.sh)
      </td>

      <td>
        [`Transport`](https://viem.sh)
      </td>
    </tr>

    <tr>
      <td>
        `TChain` *extends* `undefined` | [`Chain`](https://viem.sh)
      </td>

      <td>
        `undefined` | [`Chain`](https://viem.sh)
      </td>
    </tr>

    <tr>
      <td>
        `TSigner` *extends* `SmartAccountSigner`\<`any`>
      </td>

      <td>
        `SmartAccountSigner`\<`any`>
      </td>
    </tr>

  </tbody>
</table>

### Parameters

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

  <tbody>
    <tr>
      <td>
        `args`
      </td>

      <td>
        `CreateMultisigModularAccountClientParams`\<`TTransport`, `TChain`, `TSigner`> & `NotType`\<`TTransport`, `AlchemyTransport`>
      </td>
    </tr>

  </tbody>
</table>

### Returns

`Promise`\<`SmartAccountClient`\<[`CustomTransport`](https://viem.sh), [`Chain`](https://viem.sh), [`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, `ExecutionActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext), keyof `EntryPointRegistryBase`\<`unknown`>> & `ManagementActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>, [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext), keyof `EntryPointRegistryBase`\<`unknown`>> & `ReadAndEncodeActions`\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>> & `object` & `object` & [`PluginManagerActions`](../type-aliases/PluginManagerActions)\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>> & [`AccountLoupeActions`](../type-aliases/AccountLoupeActions)\<[`MultisigModularAccount`](../type-aliases/MultisigModularAccount)\<`TSigner`>>, \[\{
}, \{
}, \{
}, \{
}], [`MultisigUserOperationContext`](../type-aliases/MultisigUserOperationContext)>>