> ## 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 Manage Vault Settings

> Low-level instruction to apply vault settings changes via self-CPI with empty vault enforcement

# createWrapperManageVaultSettingsInstruction

Applies vault settings changes via self-CPI using the vault's signer seeds. This instruction enforces that the vault has zero AUM (empty vault only), ensuring configuration is finalized before deposits are accepted. Typically called during initial vault setup to configure token entries, withdrawal periods, and other vault parameters.

## Usage

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

const ix = createWrapperManageVaultSettingsInstruction(
  {
    manager: managerKeypair.publicKey,
    vault: vaultAddress,
    exponentPrices: exponentPricesAddress,
    systemProgram: SystemProgram.programId,
  },
  {
    actions: [
      { addTokenEntry: { mint: usdcMint, oracle: usdcOracleAddress } },
      { setWithdrawalPeriod: { seconds: 86400 } },
    ],
  }
);
```

## Accounts

| Name             | Signer | Writable | Description                                 |
| ---------------- | ------ | -------- | ------------------------------------------- |
| `manager`        | Yes    | Yes      | Vault manager applying the settings         |
| `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                                                                                 |
| --------- | ----------------------- | ------------------------------------------------------------------------------------------- |
| `actions` | `VaultSettingsAction[]` | Array of settings actions to apply (e.g., add/remove token entries, set withdrawal periods) |

## Returns

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