split-engine takes any yield-bearing vault share and mints two tradable SPL
tokens: PT (redeems 1:1 at maturity) and YT (receives all yield accrued
before maturity).
Accounts
Market
["market", vault, maturity].
| Field | Type | Notes |
|---|---|---|
vault | Pubkey | Underlying vault (e.g. delta-vault) |
vault_share_mint | Pubkey | Vault share SPL mint |
pt_mint | Pubkey | Principal token mint (authority = market PDA) |
yt_mint | Pubkey | Yield token mint (authority = market PDA) |
vault_share_escrow | Pubkey | Holds deposited shares |
maturity | i64 | unix timestamp |
total_deposits | u64 | PT supply |
total_yt_supply | u64 | should equal total_deposits |
reward_per_share | u128 | MasterChef accumulator (9-decimal) |
last_vault_share_price | u64 | for delta computation |
accumulated_yield | u64 | total yield held in escrow |
UserPosition
["position", market, owner].
| Field | Type | Notes |
|---|---|---|
owner | Pubkey | |
market | Pubkey | |
yt_balance | u64 | |
reward_debt | u128 | yt_balance × reward_per_share at last interaction |
Instructions
| Instruction | Who | Purpose |
|---|---|---|
initialize_market | admin | Create market with maturity and mints |
deposit | user | Auto-claim pending → escrow shares → mint PT+YT 1:1 |
claim_yield | user | Transfer pending yield (vault shares) from escrow |
redeem_pt | user | At maturity: burn PT → receive vault shares 1:1 |
early_exit | user | Burn matched PT+YT → shares minus 0.3% fee |
update_rewards | anyone | Sync reward_per_share with current vault share price |
MasterChef flow
update_rewards
Anyone can crank:- Read
vault.share_price(). delta = share_price - last_vault_share_price.- If
delta > 0:reward_per_share += delta × PRECISION / total_yt_supply(clamped at 1 if supply=0). last_vault_share_price = share_price.
reward_per_share, losses are
already absorbed at the vault layer (insurance fund + NAV).
Errors
NotMatured, AlreadyMatured, SupplyInvariantViolated, NoYieldToClaim,
MathOverflow.
Read next
PT / YT concept
Why split, worked example.
yield-amm
Where PT and underlying trade.

