# simulateUserOperationChanges | @account-kit/infra

> Simulates user operation changes including asset changes for a specified user operation and returns the resulting state changes.

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

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

```ts
const simulateUserOperationChanges: <TChain, TAccount>(
  client,
  args,
) => Promise<SimulateUserOperationAssetChangesResponse>;
```

Defined in: [account-kit/infra/src/actions/simulateUserOperationChanges.ts:30](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/infra/src/actions/simulateUserOperationChanges.ts#L30)

Simulates user operation changes including asset changes for a specified user operation and returns the resulting state changes.

## Example

```ts
import { simulateUserOperationChanges, createAlchemyPublicRpcClient } from "@account-kit/infra";

const client = createAlchemyPublicRpcClient(...);
const response = await simulateUserOperationChanges(client, {
 uo: ...
});
```

## Type Parameters

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

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

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

    <tr>
      <td>
        `TAccount` *extends* `SmartContractAccount` | `undefined`
      </td>

      <td>
        `SmartContractAccount` | `undefined`
      </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>
        [`Client`](https://viem.sh)\<[`Transport`](https://viem.sh), `TChain`, `TAccount`, [`AlchemyRpcSchema`](../type-aliases/AlchemyRpcSchema)>
      </td>

      <td>
        The client instance used to send the simulation request
      </td>
    </tr>

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

      <td>
        `SendUserOperationParameters`\<`TAccount`>
      </td>

      <td>
        The parameters of the user operation including the account and other overrides
      </td>
    </tr>

  </tbody>
</table>

## Returns

`Promise`\<[`SimulateUserOperationAssetChangesResponse`](../type-aliases/SimulateUserOperationAssetChangesResponse)>

A promise that resolves to the response of the simulation showing the asset changes