Skip to main content

createWithdrawYtInstruction

Builds a raw instruction to withdraw YT (Yield Tokens) from a yield position back to the user’s token account.

Usage

import { createWithdrawYtInstruction } from "@exponent-labs/exponent-sdk/client/core";
import { PublicKey, SystemProgram } from "@solana/web3.js";

const ix = createWithdrawYtInstruction(
  {
    owner: wallet.publicKey,
    vault: vaultAddress,
    userYieldPosition: userYieldPositionPda,
    ytDst: userYtTokenAccount,
    escrowYt: vaultEscrowYt,
    tokenProgram: TOKEN_PROGRAM_ID,
    authority: vaultAuthority,
    syProgram: syProgramId,
    addressLookupTable: vaultLookupTable,
    yieldPosition: vaultYieldPosition,
    systemProgram: SystemProgram.programId,
    eventAuthority: eventAuthorityPda,
    program: EXPONENT_CORE_PROGRAM_ID,
  },
  {
    amount: BigInt(1_000_000),
  }
);

Accounts

NameTypeSignerWritableDescription
ownerPublicKeyYesYesThe user withdrawing YT
vaultPublicKeyNoYesVault account
userYieldPositionPublicKeyNoYesUser’s yield position PDA
ytDstPublicKeyNoYesDestination YT token account
escrowYtPublicKeyNoYesVault YT escrow account
tokenProgramPublicKeyNoNoSPL Token program
authorityPublicKeyNoNoVault authority PDA
syProgramPublicKeyNoNoSY program
addressLookupTablePublicKeyNoNoVault address lookup table
yieldPositionPublicKeyNoYesVault robot yield position
systemProgramPublicKeyNoNoSystem program
eventAuthorityPublicKeyNoNoEvent authority PDA
programPublicKeyNoNoExponent Core program

Args

NameTypeDescription
amountbigintAmount of YT to withdraw (in base units)

Returns

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