Skip to main content

Technical Overview

A summary of the protocol's technical capabilities across smart contract, integrations, infrastructure, and tooling.

Smart Contract

  • Built with Anchor 1.0.0 on Solana
  • Core accounts: Protocol, Vault, Allocation, DepositorPosition, Depositor, DcaSchedule, GlobalAssetReserve, VaultReservePosition
  • Global reserve architecture: shared protocol reserves per asset and market, per-vault reserve share positions, multi-market per mint (e.g. USDC on Kamino and USDC on Jupiter Lend as separate reserves)
  • Idle treasury buffer with configurable thresholds (min_idle_bps, target_idle_bps) gating keeper sweep behavior
  • Cadence-gated rebalancing with annualized fee tiers: weekly (90 bps), monthly (75 bps), quarterly (50 bps)
  • Timelocked allocation updates — queued changes activate on the next rebalance after the timelock expires
  • Allocation orphan guard — removed allocations require zero reserve position shares before deletion
  • Pro-rata multi-reserve withdrawal using BigFraction fixed-point math
  • Vault shares stored as u128 with BigFraction math in all conversion paths; individual mint/burn amounts stay u64
  • On-chain performance accounting (IRR/APY baseline fields, realized/unrealized PnL tracking)
  • First-depositor share-price manipulation protection

Integrations

  • Swap routers: Jupiter and Titan, via generic invoke_signed CPI pattern
  • Oracle valuation: Pyth PriceUpdateV2 (pull oracle) with strict owner/discriminator validation, optional Switchboard fallback
  • Yield adapters: reserve-level CPI hooks for deposit, withdraw, and balance refresh — with adapters for Jupiter Lend and Kamino
  • Cross-mint rebalance: two-phase swap (begin/end) with keeper-orchestrated router execution between reserves

Deposits, Withdrawals, and DCA

  • Multi-mint deposits through global reserves with oracle-priced NAV share pricing
  • Swap-assisted deposits for non-USDC tokens via router CPI
  • Pro-rata multi-reserve withdrawal — depositors receive proportional assets from each reserve the vault holds
  • DCA schedules with configurable interval, amount per period, and max executions — keeper-executed against the same global reserve flow
  • Time-weighted loyalty points: protocol-level config, depositor + curator accrual, permissionless trigger instruction, cross-vault aggregation via global Depositor account

Keeper and Indexer

  • Keeper loops: deposit processing, rebalance, DCA execution, fee collection
  • Swap provider interface with Jupiter and Titan clients and best-quote routing
  • Route provider with file, HTTP, and hybrid modes including refresh cadence and fallback cache
  • Transaction pipeline: simulation-based compute unit sizing, priority fee estimation, configurable retry/backoff
  • Telemetry sink: webhook, Postgres, or both — with failure rate alerting and cooldown
  • RPC pool with random endpoint selection, retry rotation, and per-endpoint health tracking
  • Indexer: WebSocket log ingestion, Helius webhook ingestion, Postgres persistence

Frontend

  • Wallet adapter integration with live on-chain account reads via WebSocket subscriptions and polling fallback
  • Vault detail actions: deposit, withdraw, create/update/cancel DCA
  • Indexed events panel with bounded pagination
  • Events API with api_key and hmac auth modes and per-client rate limiting (in-memory or Postgres backend)

TypeScript SDK

  • Typed instruction builders with PDA auto-resolution for all protocol operations
  • Performance helpers: share price, position value, all-time return, annualized return, realized/unrealized PnL
  • Auto route-plan withdraw orchestration for multi-reserve vaults
  • Simulation-first transaction sending with automatic compute unit sizing and priority fees

Testing and Security

  • Rust unit tests and property-based fuzz tests
  • Anchor integration suite covering behavior and security matrix
  • Trident fuzz tests: single-reserve share conservation and multi-reserve swap + fee collection invariants
  • Security skills matrix: best-practice checks and sealevel attack vector checks
  • Stress tooling: keeper/indexer burst scripts, frontend realtime stress, retry-storm scenarios