Running Bots & Scripts

Vault operations require automation for optimal performance. This page covers why automation is needed, available scripts, and infrastructure recommendations.

triangle-exclamation

Why Automation Is Needed

Task
Why It Needs Automation

Rebalancing

Yield rates change frequently; manual rebalancing misses optimal allocations

Reward claiming

Protocol rewards accrue continuously; manual claiming leaves value uncollected

Reward swapping

Claimed reward tokens need to be swapped to base asset to compound

Position monitoring

Raydium CLMM positions go out-of-range; Drift positions need risk monitoring

Fee harvesting

Accumulated fees should be harvested periodically

Script Repositories

The Voltr team provides reference scripts for common operations:

Repository
Use Case

Lending strategy init (Project0, Save)

Kamino strategy init, rewards claiming

Drift vaults/lend/perps strategy init, position management

Jupiter Swap/Lend strategy init

Trustful adaptor strategy init

Production-ready rebalance bot (equal-weight allocation)

Rebalance Bot Template

The rebalance-bot-templatearrow-up-right is a production-ready bot that handles the core automation tasks listed above. It distributes funds equally across lending strategies on a fixed schedule and includes:

  • Rebalance loop — equal-weight allocation across all strategies, triggered on interval and on new deposits

  • Refresh loop — keeps on-chain receipt values up to date

  • Harvest fee loop — collects protocol/admin/manager fees

  • Claim reward loops — claims Kamino farm rewards and swaps them back via Jupiter

Supports Drift, Jupiter Lend, Kamino Market, and Kamino Vault strategies out of the box.

Run on Replitarrow-up-right

See the repository READMEarrow-up-right for full configuration options and Replit deployment instructions.

Script Structure Example

A basic rebalancing script:

Key Considerations

  • Gas budget: Ensure your manager wallet has enough SOL for all automated transactions. Monitor and top up regularly.

  • Error handling: Scripts should handle transaction failures gracefully (retry logic, alerting).

  • Rate limiting: Respect RPC provider rate limits. Use exponential backoff on failures.

  • Idempotency: Design scripts to be safely re-runnable in case of partial failures.

Last updated