Vault Depositors and LP Tokens
A Strategy Vault is a shared pool of capital managed by a manager. Depositors interact with Strategy Vaults by:- Depositing a supported token → receive Vault LP tokens representing their share
- Queuing a withdrawal → lock LP tokens and request redemption
- Filling the withdrawal (manager) → LP tokens are burned and underlying tokens are allocated
- Executing the withdrawal → receive underlying tokens
Token Entries
Each Strategy Vault can have one or more token entries — a configuration object for each accepted deposit token. A token entry specifies:mint— the token’s SPL mint addressinterfaceType— the protocol this token is deployed into (exponent,kamino,titan, etc.)priceId— how this token’s price is derived (simple oracle or multiply)tokenEscrow/tokenSquadsAccount— the onchain escrow accounts
Vault Policies
Policies are Squads-level constraints that govern what actions the vault’s smart account can take. Before any strategy interaction, a matching policy must exist onchain. See Policy Builders for setup details.Protocol Integrations
Exponent Strategy Vault Policies support several protocol interactions. Most flows are expressed as instruction descriptors and wrapped withcreateVaultSyncTransaction. Loopscale starts from raw LoopscaleClient responses.
- Exponent Core — strip yield assets into PT + YT and merge them back via Exponent Core
- Exponent AMM (Market Two) — swap PT and YT against SY on legacy Exponent Core AMM markets
- Exponent CLMM — provide concentrated liquidity, trade PT/YT, and claim farm emissions on the Exponent CLMM
- Exponent Orderbook — post limit orders, execute market orders, cancel offers, and withdraw settled funds on the Exponent Orderbook
- Kamino Lend — deposit, withdraw, borrow, and repay on Kamino lending reserves
- Kamino Vaults — deposit into and withdraw from direct Kamino vault positions
- Jupiter Lend Earn — deposit underlying tokens into Jupiter Lend jlToken vaults
- Jupiter Lend Borrow — run collateralized borrow positions on Jupiter Lend
- Loopscale — build raw strategy and loan responses with
LoopscaleClient, then prepare or build vault transactions from them - Titan — swap tokens through the Titan DEX aggregator
- Exponent Core
- Exponent AMM
- Exponent CLMM
- Exponent Orderbook
- Kamino Lend
- Kamino Vaults
- Jupiter Lend Earn
- Jupiter Lend Borrow
- Loopscale
- Titan DEX
Strip base tokens into PT + YT and merge them back through the Exponent Core program.See Core Instructions for full usage.
Vault State Assertions
VaultAssertion is an assertion runner that returns an allow / warn / block report on Strategy Vault and protocol state. It is the recommended pre-flight before sending strategy transactions, and is complementary to — not part of — the transaction builder.
See VaultAssertion for the full surface and built-in conditions.
Withdrawal Queue
Withdrawals from the vault are not instant. The process is as follow:- Queue — depositor calls
ixQueueWithdrawal({ depositor, lpAmount }). LP tokens are moved to escrow and a withdrawal account is created. The method returns{ ix, withdrawalKeypair }— save the keypair’s public key for later. - Fill — the vault manager calls
fillWithdrawalto associate underlying tokens with the withdrawal request. LP tokens are burned at this step. - Execute — depositor calls
ixExecuteWithdrawal({ owner, withdrawalAccount, tokenAccountPairs })to receive their underlying tokens.
Save the
withdrawalKeypair.publicKey returned from step 1 — you’ll need it to execute the withdrawal. If lost, you can recover it by querying withdrawal accounts via RPC.AUM Calculation
The vault tracks total AUM as:aum_in_base— tokens currently sitting in vault escrows (not deployed)aum_in_base_in_positions— tokens deployed into strategy positions, valued in base units
ExponentPrices global account, which aggregates oracle data.