Skip to main content

YtPosition Instructions

The YtPosition class manages a user’s yield position for a specific vault. It provides instructions for depositing and withdrawing YT, staging yield, and collecting earned interest and emissions.

Loading a YtPosition

import { Vault, YtPosition, LOCAL_ENV } from "@exponent-labs/exponent-sdk";
import { Connection, PublicKey } from "@solana/web3.js";

const connection = new Connection("https://api.mainnet-beta.solana.com");
const vault = await Vault.load(LOCAL_ENV, connection, vaultAddress);

// Load by owner (requires vault)
const ytPosition = await YtPosition.loadByOwner(
  LOCAL_ENV,
  connection,
  wallet.publicKey,
  vault,
);
Before loading a YtPosition, the position must be initialized via vault.ixInitializeYieldPosition().

Yield Collection Workflow

Collecting yield from a YT position is a three-step process:
  1. Deposit YT — Transfer YT tokens into the position to start accruing
  2. Stage Yield — Compute earned interest and emissions from the exchange rate delta
  3. Collect — Withdraw staged interest (as SY) or emissions (as reward tokens)

Instructions