Skip to main content

createDepositYtInstruction

Builds a raw instruction to deposit YT (Yield Tokens) into a yield position. Deposited YT accrues interest and emission rewards over time.

Usage

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

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

Accounts

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

Args

NameTypeDescription
amountbigintAmount of YT to deposit (in base units)

Returns

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