# How to manage ownership of a Multi-Owner Light Account

> Follow this guide to manage ownership of a Multi-Owner Light

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

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.

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

### 1. Get all current owners of a `MultiOwnerLightAccount`

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

<CodeBlocks>
  ```ts example.ts
  import { multiOwnerLightAccountClient } from "./client";

  const owners = await multiOwnerLightAccountClient.account.getOwnerAddresses();
  ```

  ```ts client.ts
import { LocalAccountSigner } from "@aa-sdk/core";
import { alchemy, sepolia } from "@account-kit/infra";
import { createMultiOwnerLightAccountAlchemyClient } from "@account-kit/smart-contracts";
import { generatePrivateKey } from "viem/accounts";

export const multiOwnerLightAccountClient =
  await createMultiOwnerLightAccountAlchemyClient({
    signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
    chain: sepolia,
    transport: alchemy({
      apiKey: "YOUR_API_KEY",
    }),
  });
```

</CodeBlocks>

### 2. Add or remove owners for a `MultiOwnerLightAccount`

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

<CodeBlocks>
  ```ts example.ts
  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,
    });
  ```

  ```ts client.ts
import { LocalAccountSigner } from "@aa-sdk/core";
import { alchemy, sepolia } from "@account-kit/infra";
import { createMultiOwnerLightAccountAlchemyClient } from "@account-kit/smart-contracts";
import { generatePrivateKey } from "viem/accounts";

export const multiOwnerLightAccountClient =
  await createMultiOwnerLightAccountAlchemyClient({
    signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
    chain: sepolia,
    transport: alchemy({
      apiKey: "YOUR_API_KEY",
    }),
  });
```

</CodeBlocks>