Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.voltr.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Vault operations are operationally manual unless you automate them yourself.
Voltr does not provide managed bot hosting. You are responsible for deployment, monitoring, and key management.

Why Automation Is Needed

TaskWhy It Needs Automation
RebalancingRates and allocations change over time
Reward claimingUnclaimed rewards leave value idle
Reward swappingClaimed rewards often need conversion back to base asset
Position monitoringStrategy-specific health can degrade without alerts
Fee harvestingAccumulated fees should be collected periodically

Script Repositories

RepositoryUse Case
voltr-kamino-scriptsKamino strategy init, allocation, reward claiming
voltr-spot-scriptsJupiter spot and lend strategy flows
voltr-trustful-scriptsTrustful adaptor strategy flows
other maintained reposadaptor-specific workflows

Basic Script Shape

import { createKeyPairSignerFromBytes, createSolanaRpc } from "@solana/kit";
import {
  fetchVault,
  getPositionAndTotalValuesForVault,
} from "@voltr/vault-sdk";

async function main() {
  const rpc = createSolanaRpc(process.env.RPC_URL!);
  const managerSigner = await createKeyPairSignerFromBytes(
    Uint8Array.from(JSON.parse(process.env.MANAGER_KEY!))
  );

  const vaultAccount = await fetchVault(rpc, vaultAddress);
  const positions = await getPositionAndTotalValuesForVault(rpc, vaultAddress);

  // 1. Read idle and deployed balances
  // 2. Pull strategy-side data
  // 3. Decide on reallocations
  // 4. Build strategy deposit/withdraw instructions

  console.log(vaultAccount.data.asset.totalValue, positions.strategies.length);
}

main().catch(console.error);

Operational Requirements

  • keep manager and admin wallets funded with SOL
  • add retries and alerting
  • respect RPC limits
  • make scripts idempotent where possible
  • keep signing keys isolated from application code