createMultisigModularAccountClient

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

1import { createMultisigModularAccountClient } from "@account-kit/smart-contracts";
2import { LocalAccountSigner } from "@aa-sdk/core";
3import { sepolia } from "viem/chains";
4import { http } from "viem";
5import { generatePrivateKey } from "viem/accounts";
6
7const accountClient = await createMultisigModularAccountClient({
8 chain: sepolia,
9 transport: http("RPC_URL"),
10 signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
11 owners: [], // other owners on the account
12 threshold: 2, // 2 of N signatures
13});
1import { createMultisigModularAccountClient } from "@account-kit/smart-contracts";
2import { sepolia } from "@account-kit/infra";
3import { LocalAccountSigner } from "@aa-sdk/core";
4import { generatePrivateKey } from "viem"
5
6const alchemyAccountClient = await createMultisigModularAccountClient({
7 transport: alchemy({ apiKey: "your-api-key" }),
8 chain: sepolia,
9 signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
10 owners: [...], // other owners on the account
11 threshold: 2, // 2 of N signatures
12});

Param

the parameters for configuring the multisig modular account client

Call Signature

1function createMultisigModularAccountClient<TSigner>(
2 params,
3): Promise<
4 AlchemySmartAccountClient<
5 undefined | Chain,
6 MultisigModularAccount<TSigner>,
7 ExecutionActions<
8 MultisigModularAccount<TSigner>,
9 MultisigUserOperationContext,
10 keyof EntryPointRegistryBase<unknown>
11 > &
12 ManagementActions<
13 MultisigModularAccount<TSigner>,
14 MultisigUserOperationContext,
15 keyof EntryPointRegistryBase<unknown>
16 > &
17 ReadAndEncodeActions<MultisigModularAccount<TSigner>> &
18 object &
19 object &
20 PluginManagerActions<MultisigModularAccount<TSigner>> &
21 AccountLoupeActions<MultisigModularAccount<TSigner>>,
22 MultisigUserOperationContext
23 >
24>;

Defined in: account-kit/smart-contracts/src/msca/client/client.ts:201

Type Parameters

Type ParameterDefault type

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

Parameters

ParameterType

params

AlchemyMultisigAccountClientConfig<TSigner>

Returns

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>>

Call Signature

1function createMultisigModularAccountClient<TTransport, TChain, TSigner>(
2 args,
3): Promise<
4 SmartAccountClient<
5 CustomTransport,
6 Chain,
7 MultisigModularAccount<TSigner>,
8 ExecutionActions<
9 MultisigModularAccount<TSigner>,
10 MultisigUserOperationContext,
11 keyof EntryPointRegistryBase<unknown>
12 > &
13 ManagementActions<
14 MultisigModularAccount<TSigner>,
15 MultisigUserOperationContext,
16 keyof EntryPointRegistryBase<unknown>
17 > &
18 ReadAndEncodeActions<MultisigModularAccount<TSigner>> &
19 object &
20 object &
21 PluginManagerActions<MultisigModularAccount<TSigner>> &
22 AccountLoupeActions<MultisigModularAccount<TSigner>>,
23 [
24 {
25 Method: "eth_sendUserOperation";
26 Parameters: [UserOperationRequest, `0x${string}`];
27 ReturnType: `0x${string}`;
28 },
29 {
30 Method: "eth_estimateUserOperationGas";
31 Parameters: [UserOperationRequest, `0x${string}`, RpcStateOverride?];
32 ReturnType: UserOperationEstimateGasResponse;
33 },
34 {
35 Method: "eth_getUserOperationReceipt";
36 Parameters: [`0x${string}`, ("latest" | "pending")?];
37 ReturnType: null | UserOperationReceipt;
38 },
39 {
40 Method: "eth_getUserOperationByHash";
41 Parameters: [`0x${string}`];
42 ReturnType: null | UserOperationResponse<EntryPointVersion>;
43 },
44 ],
45 MultisigUserOperationContext
46 >
47>;

Defined in: account-kit/smart-contracts/src/msca/client/client.ts:216

Type Parameters

Type ParameterDefault type

TTransport extends Transport

Transport

TChain extends undefined | Chain

undefined | Chain

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

Parameters

ParameterType

args

CreateMultisigModularAccountClientParams<TTransport, TChain, TSigner> & NotType<TTransport, AlchemyTransport>

Returns

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>>, [{ Method: "eth_sendUserOperation"; Parameters: [UserOperationRequest, `0x${string}`]; ReturnType: `0x${string}`; }, { Method: "eth_estimateUserOperationGas"; Parameters: [UserOperationRequest, `0x${string}`, RpcStateOverride?]; ReturnType: UserOperationEstimateGasResponse; }, { Method: "eth_getUserOperationReceipt"; Parameters: [`0x${string}`, ("latest" | "pending")?]; ReturnType: null | UserOperationReceipt; }, { Method: "eth_getUserOperationByHash"; Parameters: [`0x${string}`]; ReturnType: null | UserOperationResponse<EntryPointVersion>; }], MultisigUserOperationContext>>