Skip to main content
The core instructions module enables vault managers and allocators to strip base tokens (e.g., LSTs) into PT (Principal Tokens) and YT (Yield Tokens), and merge them back. All interactions are executed as Squads sync transactions validated against onchain policies. For background on how stripping and merging works, see Core Concepts.

Transaction Structure

Every core interaction goes through createVaultSyncTransaction, which returns three parts:

Initialize Yield Position

Before the vault can strip or merge tokens, a yield position account must exist on the Exponent Core program. coreAction.initializeYieldPosition creates this account.
Orderbook and CLMM operations automatically initialize the yield position if it doesn’t exist. You only need to call this manually if strip or merge is your first Core interaction for a given vault.

Parameters

A matching policy must exist before executing. See Policy Builders.

Strip

coreAction.strip strips a base token (e.g., an LST like JitoSOL) into equal amounts of PT and YT through the Exponent Core program.

Parameters

A matching policy must exist before executing. See Policy Builders.

Merge

coreAction.merge merges equal amounts of PT and YT back into the base token.

Parameters

The merge operation requires the vault to hold equal amounts of PT and YT. If the vault holds 100 PT and 80 YT, you can merge at most 80.
A matching policy must exist before executing. See Policy Builders.

AMM (Market Two) Swaps

The AMM (Market Two) is the legacy AMM market type on the exponent_core program. The SDK exposes its three swap operations as marketTwoAction.tradePt, marketTwoAction.buyYt, and marketTwoAction.sellYt. Each one trades against the market’s underlying SY mint.

Trade PT

marketTwoAction.tradePt is a bidirectional PT/SY swap. The sign of netTraderPt selects the direction; syConstraint is the signed slippage bound matching the on-chain handler.

Parameters

A matching policy must exist before executing. See AMM Swap Policies.

Buy YT

marketTwoAction.buyYt buys YT with SY. PT is transient inside the same instruction.

Parameters

A matching policy must exist before executing. See AMM Swap Policies.

Sell YT

marketTwoAction.sellYt sells YT for SY. PT is transient inside the same instruction.

Parameters

A matching policy must exist before executing. See AMM Swap Policies.

Full Flow Example

This example demonstrates stripping a base token into PT + YT, then merging them back.

Step 1: Strip Base Token into PT + YT

Step 2: Merge PT + YT Back to Base Token