# getMAV2UpgradeToData | @account-kit/smart-contracts

> Overview of the getMAV2UpgradeToData function from @account-kit/smart-contracts

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

{/* This file is auto-generated by TypeDoc. Do not edit manually. */}

```ts
function getMAV2UpgradeToData<TTransport, TChain, TSigner, TAccount>(
  client,
  args,
): Promise<UpgradeToData & object>;
```

Defined in: [account-kit/smart-contracts/src/ma-v2/utils.ts:210](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/smart-contracts/src/ma-v2/utils.ts#L210)

Retrieves the data necessary to upgrade to a Modular Account V2 (MA v2).
Note that the upgrade will be to the Semi Modular Account Storage variant

## Example

```ts
import {
  createLightAccountClient,
  getMAV2UpgradeToData,
} from "@account-kit/smart-contracts";

const client = createLightAccountClient({});
const upgradeData = await getMAV2UpgradeToData(client, {});
```

## Type Parameters

<table>
  <thead>
    <tr>
      <th align="left">Type Parameter</th>
      <th align="left">Default type</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `TTransport` *extends* [`Transport`](https://viem.sh)
      </td>

      <td>
        [`Transport`](https://viem.sh)
      </td>
    </tr>

    <tr>
      <td>
        `TChain` *extends* `undefined` | [`Chain`](https://viem.sh)
      </td>

      <td>
        `undefined` | [`Chain`](https://viem.sh)
      </td>
    </tr>

    <tr>
      <td>
        `TSigner` *extends* `SmartAccountSigner`\<`any`>
      </td>

      <td>
        `SmartAccountSigner`\<`any`>
      </td>
    </tr>

    <tr>
      <td>
        `TAccount` *extends* `undefined` | `SmartContractAccountWithSigner`\<`string`, `TSigner`>
      </td>

      <td>
        `undefined` | `SmartContractAccountWithSigner`\<`string`, `TSigner`>
      </td>
    </tr>

  </tbody>
</table>

## Parameters

<table>
  <thead>
    <tr>
      <th align="left">Parameter</th>
      <th align="left">Type</th>
      <th align="left">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `client`
      </td>

      <td>
        `SmartAccountClient`\<`TTransport`, `TChain`, `TAccount`>
      </td>

      <td>
        The smart account client
      </td>
    </tr>

    <tr>
      <td>
        `args`
      </td>

      <td>
        `GetAccountParameter`\<`TAccount`, `SmartContractAccount`\<`string`, keyof `EntryPointRegistryBase`\<`unknown`>>>
      </td>

      <td>
        The arguments required for the upgrade
      </td>
    </tr>

  </tbody>
</table>

## Returns

`Promise`\<`UpgradeToData` & `object`>

A promise that resolves to upgrade data augmented with a function to create a Modular Account V2