> ## 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 Remove Policy

> Low-level instruction to remove a Squads policy via self-CPI with empty vault enforcement

# createWrapperRemovePolicyInstruction

Removes a Squads policy from the vault via self-CPI using the vault's signer seeds. This instruction enforces that the vault has zero AUM (empty vault only), preventing policy removal while depositor funds are at risk. The manager must sign to authorize the removal.

Once the vault holds depositor funds (AUM > 0), use a governance proposal with `PolicyAction` instead. See [Propose Action](/developer-strategy-vaults/typescript/governance/propose-action).

## Usage

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

const ix = createWrapperRemovePolicyInstruction({
  payer: payerKeypair.publicKey,
  vault: vaultAddress,
  manager: managerKeypair.publicKey,
  squadsSettings: squadsSettingsAddress,
  squadsSettingsTransaction: squadsSettingsTransactionPda,
  squadsProposal: squadsProposalPda,
  squadsPolicy: squadsPolicyPda,
  squadsProgram: SQUADS_PROGRAM_ID,
  systemProgram: SystemProgram.programId,
});
```

## Accounts

| Name                        | Signer | Writable | Description                           |
| --------------------------- | ------ | -------- | ------------------------------------- |
| `payer`                     | Yes    | Yes      | Fee payer for the transaction         |
| `vault`                     | No     | No       | Vault account (must have zero AUM)    |
| `manager`                   | Yes    | No       | Vault manager authorizing the removal |
| `squadsSettings`            | No     | Yes      | Squads multisig settings account      |
| `squadsSettingsTransaction` | No     | Yes      | Squads settings transaction account   |
| `squadsProposal`            | No     | Yes      | Squads proposal account               |
| `squadsPolicy`              | No     | Yes      | Squads policy account to remove       |
| `squadsProgram`             | No     | No       | Squads program                        |
| `systemProgram`             | No     | No       | System program                        |

## Args

This instruction takes no arguments.

## Returns

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