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

# Execute Withdrawal

> Low-level instruction to execute a previously queued and filled withdrawal

# createExecuteWithdrawalInstruction

Builds a raw instruction to execute a previously queued and filled withdrawal. Transfers the underlying tokens to the depositor. LP tokens are burned during the vault manager's `fill_withdrawal` step. The withdrawal account must have been filled before execution. Called by the withdrawal account owner.

## Usage

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

const ix = createExecuteWithdrawalInstruction(
  {
    vault: vaultAddress,
    exponentPrices: exponentPricesPda,
    owner: wallet.publicKey,
    withdrawalAccount: withdrawalAccountAddress,
    tokenLpEscrow: vaultLpEscrowAccount,
    feeTreasury: feeTreasuryAddress,
    mintLp: lpMintAddress,
    tokenProgram: TOKEN_PROGRAM_ID,
    systemProgram: SYSTEM_PROGRAM_ID,
    rent: SYSVAR_RENT_PUBKEY,
  },
  {
    tokenTransferAccountsUntil: 2,
  }
);
```

## Accounts

| Name                | Signer | Writable | Description                                        |
| ------------------- | ------ | -------- | -------------------------------------------------- |
| `vault`             | No     | Yes      | The Strategy Vault account                         |
| `exponentPrices`    | No     | No       | Global ExponentPrices account for AUM calculations |
| `owner`             | Yes    | Yes      | The withdrawal account owner                       |
| `withdrawalAccount` | No     | Yes      | The withdrawal request account                     |
| `tokenLpEscrow`     | No     | Yes      | Vault's LP token escrow account                    |
| `feeTreasury`       | No     | Yes      | Fee treasury account for withdrawal fees           |
| `mintLp`            | No     | Yes      | The vault's LP token mint                          |
| `tokenProgram`      | No     | No       | SPL Token program                                  |
| `systemProgram`     | No     | No       | System program                                     |
| `rent`              | No     | No       | Rent sysvar                                        |

## Args

| Name                         | Type     | Description                                                     |
| ---------------------------- | -------- | --------------------------------------------------------------- |
| `tokenTransferAccountsUntil` | `number` | Number of remaining accounts that are token transfer pairs (u8) |

## Returns

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