createMultiOwnerLightAccountClient

Creates a multi-owner light account client using the provided parameters. It first creates a multi-owner light account and then creates a smart account client with the provided configurations.

Examples

1import { createMultiOwnerLightAccountClient } from "@account-kit/smart-contracts";
2import { LocalAccountSigner } from "@aa-sdk/core";
3import { sepolia } from "viem/chains";
4import { http, generatePrivateKey } from "viem";
5
6const account = await createMultiOwnerLightAccountClient({
7 chain: sepolia,
8 transport: http("RPC_URL"),
9 signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
10});
1import { createMultiOwnerLightAccountClient } from "@account-kit/smart-contracts";
2import { sepolia, alchemy } from "@account-kit/infra";
3import { LocalAccountSigner } from "@aa-sdk/core";
4import { generatePrivateKey } from "viem"
5
6const lightAccountClient = await createMultiOwnerLightAccountClient({
7 transport: alchemy({
8 apiKey: "your-api-key",
9 }),
10 chain: sepolia
11 signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
12});

Param

the configuration for creating the multi-owner light / alchemy account client with the provided parameters transport

Call Signature

1function createMultiOwnerLightAccountClient<TSigner>(
2 params,
3): Promise<
4 AlchemySmartAccountClient<
5 undefined | Chain,
6 MultiOwnerLightAccount<TSigner>,
7 MultiOwnerLightAccountClientActions<TSigner>
8 >
9>;

Defined in: account-kit/smart-contracts/src/light-account/clients/multiOwnerLightAccount.ts:55

Type Parameters

Type ParameterDefault type

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

Parameters

ParameterType

params

Omit<CreateMultiOwnerLightAccountParams<HttpTransport, TSigner>, "type" | "transport"> & Omit<AlchemySmartAccountClientConfig<Chain, MultiOwnerLightAccount<TSigner>>, "account"> & object

Returns

Promise<AlchemySmartAccountClient<undefined | Chain, MultiOwnerLightAccount<TSigner>, MultiOwnerLightAccountClientActions<TSigner>>>

Call Signature

1function createMultiOwnerLightAccountClient<TTransport, TChain, TSigner>(
2 args,
3): Promise<
4 SmartAccountClient<
5 CustomTransport,
6 Chain,
7 MultiOwnerLightAccount<TSigner>,
8 SmartAccountClientActions<Chain, SmartContractAccount> &
9 MultiOwnerLightAccountClientActions<
10 TSigner,
11 MultiOwnerLightAccount<TSigner>
12 >
13 >
14>;

Defined in: account-kit/smart-contracts/src/light-account/clients/multiOwnerLightAccount.ts:69

Type Parameters

Type ParameterDefault type

TTransport extends Transport

Transport

TChain extends undefined | Chain

undefined | Chain

TSigner extends SmartAccountSigner<any>

SmartAccountSigner<any>

Parameters

ParameterType

args

object & Omit<CreateMultiOwnerLightAccountParams<TTransport, TSigner>, "chain" | "transport"> & Omit<{ account?: SmartContractAccount; addBreadCrumb?: <T>(crumb) => T; cacheTime?: number; chain?: Chain | TChain; customMiddleware?: ClientMiddlewareFn<undefined | UserOperationContext>; dummyPaymasterAndData?: ClientMiddlewareFn<undefined | UserOperationContext>; feeEstimator?: ClientMiddlewareFn<undefined | UserOperationContext>; gasEstimator?: ClientMiddlewareFn<undefined | UserOperationContext>; key?: string; name?: string; opts?: { feeOptions?: { callGasLimit?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; maxFeePerGas?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; maxPriorityFeePerGas?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; paymasterPostOpGasLimit?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; paymasterVerificationGasLimit?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; preVerificationGas?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; verificationGasLimit?: { max?: number | bigint | `0x${(...)}`; min?: number | bigint | `0x${(...)}`; multiplier?: number; }; }; txMaxRetries?: number; txRetryIntervalMs?: number; txRetryMultiplier?: number; }; paymasterAndData?: ClientMiddlewareFn<undefined | UserOperationContext>; pollingInterval?: number; signUserOperation?: ClientMiddlewareFn<undefined | UserOperationContext>; transport: TTransport; type?: string; userOperationSimulator?: ClientMiddlewareFn<undefined | UserOperationContext>; }, "account" | "chain" | "transport"> & NotType<TTransport, AlchemyTransport>

Returns

Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerLightAccount<TSigner>, SmartAccountClientActions<Chain, SmartContractAccount> & MultiOwnerLightAccountClientActions<TSigner, MultiOwnerLightAccount<TSigner>>>>