> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exponent.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Wrapper Manager Update Position

> Low-level instruction to update strategy positions via self-CPI with empty vault enforcement

# createWrapperManagerUpdatePositionInstruction

Updates strategy position entries on the vault via self-CPI using the vault's signer seeds. This instruction enforces that the vault has zero AUM (empty vault only), ensuring the position configuration is set before any deposits are accepted. Used to add or remove strategy positions that define where the vault can allocate capital.

## Usage

```typescript theme={null}
import { createWrapperManagerUpdatePositionInstruction } from "@exponent-labs/exponent-sdk/client/vaults";
import { PublicKey, SystemProgram } from "@solana/web3.js";

const ix = createWrapperManagerUpdatePositionInstruction(
  {
    manager: managerKeypair.publicKey,
    vault: vaultAddress,
    exponentPrices: exponentPricesAddress,
    systemProgram: SystemProgram.programId,
  },
  {
    update: {
      addPosition: {
        strategyAddress: kaminoStrategyAddress,
        tokenEntryIndex: 0,
        positionType: { kamino: {} },
      },
    },
  }
);
```

## Accounts

| Name             | Signer | Writable | Description                                 |
| ---------------- | ------ | -------- | ------------------------------------------- |
| `manager`        | Yes    | Yes      | Vault manager updating the positions        |
| `vault`          | No     | Yes      | Vault account (must have zero AUM)          |
| `exponentPrices` | No     | Yes      | ExponentPrices account for token valuations |
| `systemProgram`  | No     | No       | System program                              |

## Args

| Name     | Type             | Description                                                      |
| -------- | ---------------- | ---------------------------------------------------------------- |
| `update` | `PositionUpdate` | Position update action (add or remove a strategy position entry) |

## Returns

`TransactionInstruction` — a transaction instruction ready to be added to a transaction.
