> ## 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.

# Propose Action

> Create a governance proposal for vault settings or position changes

# createProposeActionInstruction

Creates a new governance proposal. Only the vault **manager** can propose actions. The proposal enters a voting period where LP holders can vote to reject or opt out.

There is no high-level class method for this instruction; use the raw instruction builder directly.

## Usage

```typescript theme={null}
import {
  createProposeActionInstruction,
  proposalAction,
  vaultSettingsAction,
  priceId,
} from "@exponent-labs/exponent-sdk/client/vaults";

const ix = createProposeActionInstruction(
  {
    payer: wallet.publicKey,
    manager: wallet.publicKey,
    vault: vaultAddress,
    proposal: proposalAddress, // PDA derived from vault + proposalId
    systemProgram: SystemProgram.programId,
  },
  {
    proposalId: 1n,
    action: proposalAction("VaultSettingsAction", [
      vaultSettingsAction("AddTokenEntry", [{
        mint: newTokenMint,
        priceId: priceId("Simple", { priceId: 2n }),
        tokenSquadsAccount: tokenSquadsAddr,
        forceDeallocatePolicyIds: [],
      }]),
    ]),
    votingPeriodSeconds: 86400, // 24 hours
    timelockSeconds: 3600, // 1 hour after approval
  },
);
```

## Accounts

| Name            | Signer | Writable | Description                            |
| --------------- | ------ | -------- | -------------------------------------- |
| `payer`         | Yes    | Yes      | Transaction fee payer                  |
| `manager`       | Yes    | No       | Vault manager (must have manager role) |
| `vault`         | No     | Yes      | The vault account                      |
| `proposal`      | No     | Yes      | The proposal account PDA               |
| `systemProgram` | No     | No       | System program                         |

## Args

| Name                  | Type             | Description                                                            |                                                    |
| --------------------- | ---------------- | ---------------------------------------------------------------------- | -------------------------------------------------- |
| `proposalId`          | `u64`            | Sequential proposal identifier                                         |                                                    |
| `action`              | `ProposalAction` | The proposed change — either `VaultSettingsAction` or `PositionUpdate` |                                                    |
| `votingPeriodSeconds` | \`u32            | null\`                                                                 | Voting period override. Uses vault default if null |
| `timelockSeconds`     | \`u32            | null\`                                                                 | Timelock override. Uses vault default if null      |

The `action` field accepts a `ProposalAction` — either a `VaultSettingsAction` or `PositionUpdate`. See [ActionProposal](/developer-strategy-vaults/account-references/action-proposal) for the full type definition.

## Returns

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