Skip to main content

createWrapperStripInstruction

Builds a raw instruction that wraps a base asset into SY and strips it into PT + YT in a single atomic operation. This combines the SY minting and stripping steps.

Usage

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

const ix = createWrapperStripInstruction(
  {
    depositor: wallet.publicKey,
    tokenSyDepositor: userSyTokenAccount,
    vault: vaultAddress,
    escrowSy: vaultEscrowSy,
    tokenYtDepositor: userYtTokenAccount,
    tokenPtDepositor: userPtTokenAccount,
    mintYt: ytMint,
    mintPt: ptMint,
    authority: vaultAuthority,
    vaultAddressLookupTable: vaultLookupTable,
    tokenProgram: TOKEN_PROGRAM_ID,
    escrowYt: vaultEscrowYt,
    userYieldPosition: userYieldPositionPda,
    vaultRobotYieldPosition: vaultYieldPosition,
    syProgram: syProgramId,
    systemProgram: SystemProgram.programId,
    eventAuthority: eventAuthorityPda,
    program: EXPONENT_CORE_PROGRAM_ID,
  },
  {
    amountBase: BigInt(1_000_000),
    mintSyAccountsUntil: 0,
  }
);

Accounts

NameTypeSignerWritableDescription
depositorPublicKeyYesYesThe user performing the strip
tokenSyDepositorPublicKeyNoYesUser’s SY token account (intermediate)
vaultPublicKeyNoYesVault account
escrowSyPublicKeyNoYesVault SY escrow account
tokenYtDepositorPublicKeyNoYesUser’s destination YT token account
tokenPtDepositorPublicKeyNoYesUser’s destination PT token account
mintYtPublicKeyNoYesYT mint address
mintPtPublicKeyNoYesPT mint address
authorityPublicKeyNoYesVault authority PDA
vaultAddressLookupTablePublicKeyNoNoVault address lookup table
tokenProgramPublicKeyNoNoSPL Token program
escrowYtPublicKeyNoYesVault YT escrow account
userYieldPositionPublicKeyNoYesUser’s yield position PDA
vaultRobotYieldPositionPublicKeyNoYesVault robot yield position
syProgramPublicKeyNoNoSY program
systemProgramPublicKeyNoNoSystem program
eventAuthorityPublicKeyNoNoEvent authority PDA
programPublicKeyNoNoExponent Core program

Args

NameTypeDescription
amountBasebigintAmount of base asset to wrap and strip (in base units)
mintSyAccountsUntilnumberIndex into remaining accounts for SY minting CPI accounts

Returns

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