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

# Finalize Proposal

> Low-level instruction to finalize a governance proposal after voting ends

# createFinalizeProposalInstruction

Builds a raw instruction to finalize a governance proposal after the voting period has ended. The instruction determines whether the proposal passes or is rejected based on the rejection threshold. If total reject votes exceed the threshold percentage of LP supply, the proposal is rejected. This instruction is permissionless and can be called by anyone.

## Usage

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

const ix = createFinalizeProposalInstruction({
  payer: payerKeypair.publicKey,
  vault: vaultAddress,
  mintLp: lpMintAddress,
  proposal: proposalAddress,
});
```

## Accounts

| Name       | Signer | Writable | Description                                         |
| ---------- | ------ | -------- | --------------------------------------------------- |
| `payer`    | Yes    | Yes      | Fee payer for the transaction                       |
| `vault`    | No     | No       | Vault account associated with the proposal          |
| `mintLp`   | No     | No       | LP token mint used to calculate rejection threshold |
| `proposal` | No     | Yes      | Proposal account to finalize                        |

## Returns

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