Strategy Setup Guide

After creating your vault, you need to set up strategies so funds can be deployed to DeFi protocols. This is a two-step process:

  1. Add the adaptor to your vault (one-time per adaptor program, you may skip this if you have done so on the UI)

  2. Initialize the strategy for each specific protocol/market you want to deploy to

circle-exclamation

Key Concepts

Adaptors vs. Strategies

  • Adaptor: An on-chain program that knows how to interact with a category of protocols (e.g., the Kamino adaptor interacts with Kamino, Drift adaptor interacts with Drift...)

  • Strategy: A specific deployment target within an adaptor (e.g., "lend USDC on Kamino Main Market")

A vault can have multiple strategies across multiple adaptors.

Adaptor Program IDs

Each adaptor has a unique on-chain program ID. You'll need these when adding adaptors and initializing strategies.

import {
  LENDING_ADAPTOR_PROGRAM_ID,
  DRIFT_ADAPTOR_PROGRAM_ID,
} from "@voltr/vault-sdk";
Adaptor
Program ID

Lending Adaptor

aVoLTRCRt3NnnchvLYH6rMYehJHwM5m45RmLBZq7PGz

Drift Adaptor

EBN93eXs5fHGBABuajQqdsKRkCgaqtJa8vEFD6vKXiP

Kamino Adaptor

to6Eti9CsC5FGkAtqiPphvKD2hiQiLsS8zWiDBqBPKR

circle-info

LENDING_ADAPTOR_PROGRAM_ID and DRIFT_ADAPTOR_PROGRAM_ID are exported directly from the SDK. For other adaptors (Kamino, Jupiter, Raydium, Trustful), check the respective script repositories for their program IDs.

Available Strategies

Strategy Type
Adaptor
Protocols
Guide

Lending

Lending Adaptor

Kamino, Marginfi, Save, Drift Spot, Jupiter Lend

Lending Strategies

Drift Perps/JLP

Drift Adaptor

Drift Protocol

Drift Strategies

Raydium CLMM

Raydium Adaptor

Raydium

Raydium LP Strategies

Off-chain

Trustful Adaptor

CEX, OTC, MPC

Trustful Adaptor

Step 1: Add Adaptor

Before initializing any strategy, you must add the corresponding adaptor program to your vault. This is a one-time operation per adaptor type. You must pass the adaptorProgram parameter specifying which adaptor to add.

Step 2: Initialize Strategy

Strategy initialization is protocol-specific — each protocol requires different remaining accounts and an instructionDiscriminator that tells the adaptor which operation to perform. You must also pass the adaptorProgram in the accounts.

Generic Code Snippet

circle-info

The instructionDiscriminator, strategy address, and remainingAccounts are all protocol-specific. Use the initialization scripts from the protocol repositories below as reference implementations.

Protocol-Specific Initialization Scripts

Lookup Tables

For strategies that require many accounts in a single transaction, you may need to set up Address Lookup Tables (LUTs) to fit within Solana's transaction size limits. See Lookup Tables (LUT).

Fund Allocation Guidechevron-right

Last updated