Technical Overview
A summary of the protocol's technical capabilities across smart contract, integrations, infrastructure, and tooling.
Smart Contract
- Built with Anchor
1.0.0on 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
u128with BigFraction math in all conversion paths; individual mint/burn amounts stayu64 - 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_signedCPI 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_keyandhmacauth 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