Skip to content
Alchemy Logo

How to manage ownership of a Multi-Owner Light Account

A MultiOwnerLightAccount has one or more ECDSA or SCA owners. This lets your account integrate with multiple owners at once, and supports recovering your account if one owner is lost.

The MultiOwnerLightAccount is able to:

  • Update (add or remove) owners for an account.
  • Show all owners of an account.
  • Validate signed signatures of ERC-4337 enabled transactions as well as regular transactions.

When you connect your MultiOwnerLightAccount to SmartAccountClient you can extend the client with multiOwnerLightAccountClientActions, which exposes a set of methods available to call the MultiOwnerLightAccount with the client connected to the account.

When using createMultiOwnerLightAccountAlchemyClient in @account-kit/smart-contracts, the SmartAccountClient comes automatically extended with multiOwnerLightAccountClientActions as defaults available for use.

You can use the getOwnerAddresses method on the MultiOwnerLightAccount object, which can be accessed from a connected client.

import { multiOwnerLightAccountClient } from "./client";
 
const owners = await multiOwnerLightAccountClient.account.getOwnerAddresses();

You can use the updateOwners method on the multiOwnerLightAccountClientActions extended smart account client to add or remove owners from the MultiOwnerLightAccount.

import { multiOwnerLightAccountClient } from "./client";
 
const ownersToAdd = []; // the addresses of owners to be added
const ownersToRemove = []; // the addresses of owners to be removed
 
const opHash = await multiOwnerLightAccountClient.updateOwners({
  ownersToAdd,
  ownersToRemove,
});
 
const txHash =
  await multiOwnerLightAccountClient.waitForUserOperationTransaction({
    hash: opHash,
  });
Was this page helpful?