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

> Low-level instruction to create a governance proposal for vault changes

# createProposeActionInstruction

Builds a raw instruction to create a governance proposal for vault settings changes or position updates. Only callable by the manager role. The proposal enters a voting period during which LP holders can vote to reject or opt out.

## Usage

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

const ix = createProposeActionInstruction(
  {
    payer: managerKeypair.publicKey,
    manager: managerKeypair.publicKey,
    vault: vaultAddress,
    proposal: proposalAddress,
    systemProgram: SystemProgram.programId,
  },
  {
    proposalId: BigInt(1),
    action: {
      vaultSettingsAction: {
        updateRejectionThresholdBps: 2500,
      },
    },
    votingPeriodSeconds: 86400,
    timelockSeconds: 3600,
  }
);
```

## Accounts

| Name            | Signer | Writable | Description                        |
| --------------- | ------ | -------- | ---------------------------------- |
| `payer`         | Yes    | Yes      | Fee payer for the transaction      |
| `manager`       | Yes    | No       | Manager authority of the vault     |
| `vault`         | No     | Yes      | Vault account the proposal targets |
| `proposal`      | No     | Yes      | Proposal account to initialize     |
| `systemProgram` | No     | No       | System program                     |

## Args

| Name                  | Type             | Description                                                    |
| --------------------- | ---------------- | -------------------------------------------------------------- |
| `proposalId`          | `u64`            | Sequential proposal ID for the vault                           |
| `action`              | `ProposalAction` | The proposed change: `VaultSettingsAction` or `PositionUpdate` |
| `votingPeriodSeconds` | `u32 \| null`    | Optional voting period override in seconds                     |
| `timelockSeconds`     | `u32 \| null`    | Optional timelock period override in seconds                   |

## Returns

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