Skip to content
Alchemy Logo

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.

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
});
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
});

the parameters for configuring the multisig modular account client

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

Type ParameterDefault type

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

ParameterType

params

AlchemyMultisigAccountClientConfig<TSigner>

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

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

Type ParameterDefault type

TTransport extends Transport

Transport

TChain extends undefined | Chain

undefined | Chain

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

ParameterType

args

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

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

Was this page helpful?