Solana Vaults
Native Anchor-based Upshift vaults on Solana with on-chain share pricing and instant redemptions.
Upshift Solana Vaults bring the same institutional-grade vault infrastructure to the Solana ecosystem. Built as a native Anchor program, Solana vaults offer fast, non-custodial yield generation transparently on-chain, with actively managed strategies.
| Property | Value |
|---|---|
| Program | up12bytoZBmwofqsySf2uqKQ7zpfeKiAWwfvqzJjtRt |
| Framework | Anchor (v0.1.0) |
| Deposit Asset | Any SPL Token |
| Share Token | PDA-minted receipt token with on-chain metadata |
| Redemptions | Instant, no lock-ups |
Vault Architecture
Each Upshift Solana vault is deployed as an instance of the august_vault program. A vault is initialized with three roles (admin, operator, and fee recipient), and is bound to a single SPL deposit token (e.g. USDC). On initialization, the program creates:
- A VaultState PDA that stores all vault configuration and accounting
- A share mint PDA used to mint receipt tokens to depositors
- A vault token ATA PDA that holds the vault's deposit token balance
Deposit Flow
- User calls
deposit(amount)with their SPL tokens - The vault transfers tokens from the user's account to the vault token ATA
- Share tokens are minted to the user proportional to the current NAV:
shares_minted = deposit_amount * total_share_supply / total_AUMlocal_aumincreases by the deposit amount- A
DepositEvtis emitted withcaller,receiver,amount, andshares
Redemption Flow
- User calls
redeem(shares)with the number of share tokens to burn - The vault calculates the underlying token amount based on current NAV:
tokens_returned = shares * total_AUM / total_share_supply- If a withdrawal fee is configured, the fee portion (in bps) is routed to the
fee_recipient - Share tokens are burned and underlying tokens are transferred to the user
local_aumdecreases by the redeemed amount- A
WithdrawEvtis emitted withcaller,receiver,owner,assets, andshares
Share Price Derivation
The share token price is fully derivable on-chain:
share_price = (local_aum + deployed_aum) / total_share_supplylocal_aum— tokens held directly in the vault's token ATA. Fully verifiable on-chain.deployed_aum— value of tokens deployed in external strategies, reported by the operator viaoperator_update_aum.total_share_supply— readable from the share mint account.
Any Solana program can compute the share price by reading the VaultState account and the share mint. No external oracle is required.
The Upshift Solana program is open source at the fractal-protocol/solana-upshift-vault-programs repository on GitHub.