Alchemy Logo

createModularAccountV2

Creates a ModularAccount V2 account, with the mode depending on the provided "mode" field. Possible modes include: "default", which is SMA Bytecode, and "7702", which is SMA 7702. Handles nonce generation, transaction encoding, and mode variant-specific behavior like initcode construction.

import { createModularAccountV2 } from "@account-kit/smart-contracts";
import { LocalAccountSigner } from "@aa-sdk/core";
import { alchemy, sepolia } from "@account-kit/infra";
 
const MNEMONIC = "...";
const RPC_URL = "...";
 
const signer = LocalAccountSigner.mnemonicToAccountSigner(MNEMONIC);
 
const chain = sepolia;
 
const transport = alchemy({ rpcUrl: RPC_URL });
 
const modularAccountV2 = await createModularAccountV2({
  mode: "default", // or "7702"
  chain,
  signer,
  transport,
});

Configuration parameters for creating a Modular Account V2.

function createModularAccountV2<TTransport, TSigner>(
  config,
): Promise<ModularAccountV2<TSigner>>;

Defined in: account-kit/smart-contracts/src/ma-v2/account/modularAccountV2.ts:87

Type ParameterDefault type

TTransport extends Transport

Transport

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

ParameterType

config

CreateModularAccountV2Params<TTransport, TSigner>

Promise<ModularAccountV2<TSigner>>

function createModularAccountV2<TTransport>(
  config,
): Promise<WebauthnModularAccountV2>;

Defined in: account-kit/smart-contracts/src/ma-v2/account/modularAccountV2.ts:94

Type ParameterDefault type

TTransport extends Transport

Transport

ParameterType

config

CreateWebauthnModularAccountV2Params<TTransport>

Promise<WebauthnModularAccountV2>

Was this page helpful?