Skip to main content

Strategy Vaults can also be created through the Strategy Vault manager frontend, which simplifies setup by offering a guided interface for configuring vault metadata, policies, roles, and other core vault parameters.
This guide walks through the vault setup workflow, from loading a vault to configuring policies and executing strategy operations, as well as managing withdrawals.

Exponent SDK Installation

Strategy Vault Setup

Vault Creation

Strategy Vaults are created by the vault manager using ExponentVault.ixInitializeVault. This sets up the vault PDA, mints initial LP tokens, and creates the Squads smart account for policy-gated execution. See Initialize Vault for the full parameter reference.

Loading a Vault

Configuring Policies

Before the vault can execute any strategy operations, the manager must add policies that authorize specific interactions. Each policy defines which programs, instructions, and accounts the vault is permitted to interact with. Policies are added using vault.ixWrapperAddPolicy. This instruction enforces that the vault has zero AUM — policies must be configured before any deposits are accepted.
Once the vault holds depositor funds (AUM > 0), policy changes must go through a governance proposal using PolicyAction. See Governance for the proposal flow.

Available Policy Builders

The SDK provides policy builders for each supported integration: See Policy Builders for detailed parameters and examples for each builder.
Policies are enforced onchain. Any transaction that does not match an approved policy is rejected. Ensure the correct policies are in place before attempting strategy operations.

Executing Strategy Operations

Strategy operations use a two-step pattern:
  1. Build instruction descriptors using a protocol-specific action builder (kaminoAction, orderbookAction, coreAction, marketTwoAction, clmmAction, orcaWhirlpoolAction, titanAction). Each builder returns a lightweight descriptor — it does not execute anything on its own.
  2. Wrap in a sync transaction by passing the descriptors to createVaultSyncTransaction, which resolves all required accounts, builds the Squads sync transaction, and returns the final instructions to send.

Action Builders

Each integration has its own action builder namespace:
For Titan swaps, the instruction descriptor wraps a pre-built TransactionInstruction obtained from TitanGatewayClient.quoteVaultSwapInstruction. See Titan Instructions for the full flow.
See the individual instruction pages for full usage and parameter details:

Policy Builders

Start here to define what your vault is allowed to do.

Core Instructions

Strip and merge tokens through Exponent Core.

Kamino Lend Instructions

Deposit, withdraw, borrow, and repay on Kamino Lend.

Kamino Vault Instructions

Deposit into and withdraw from direct Kamino Vault positions.

Order Book Instructions

Trade PT and YT on Exponent Orderbook, place limit orders.

Orca Whirlpool Instructions

Wrap Orca Whirlpool position and swap instructions for vault execution.

CLMM Instructions

Provide liquidity and trade on the Exponent CLMM.

Loopscale Instructions

Build raw Loopscale responses and turn them into executable vault transactions.

Titan Instructions

Swap tokens through the Titan DEX aggregator.

Managing Withdrawals

When depositors queue withdrawals, the vault manager fills them from available liquidity:
  1. Queue — A depositor calls ixQueueWithdrawal to lock LP tokens and create a withdrawal request.
  2. Fill — The vault manager calls fillWithdrawal to associate underlying tokens with the pending request. LP tokens are burned at this step.
  3. Execute — The depositor calls ixExecuteWithdrawal to receive their underlying tokens.
See Moving Capital In/Out for the full depositor-facing flow.