Skip to main content
Tokenized Vaults require accurate pricing to function correctly. Subscription and redemption flow require a precise calculation of Assets Under Management (AUM) in order to issue or burn vault shares. To determine AUM, GLAM prices each individual asset (token or DeFi position) held by the vault and sums them up:
AUM=tTokensvt+iDriftVaultsvi+jKaminoLendingvj+\text{AUM} = \sum_{t \in \text{Tokens}} v_t+ \sum_{i \in \text{DriftVaults}} v_i + \sum_{j \in \text{KaminoLending}} v_j + \cdots Where:
  • vtv_t is the value of each individual token held by the vault
  • viv_i is the value of each individual position in Drift Vaults
  • vjv_j is the value of each individual position in Kamino Lending
GLAM supports pricing AUM in any base asset, using a curated set of oracles from Pyth and Switchboard.

How Pricing Works

For integrated protocols like Drift and Kamino, we implement the protocol’s native calculation, including underlying fees (e.g., Drift vault performance fees). The pricing process involves the following steps:
  • Any transaction that requires AUM must include price instructions for all enabled protocols. These instructions save per-protocol price data to the GLAM State Account’s PricedProtocols field.
  • AUM is calculated by summing the valuations in PricedProtocols. Validations ensure all vault assets and positions use fresh oracle data.
  • NAV (Net Asset Value) is calculated as AUM divided by the total share supply.
    • For subscriptions, the number of shares to issue is calculated from NAV and the subscription amount, subject to applicable fees.
    • For redemptions, the payout amount is calculated from NAV and the number of shares being redeemed, subject to applicable fees.

Functional Pricing for LSTs

For liquid staking tokens (LSTs), GLAM uses functional pricing whenever possible. Each LST (like mSOL, jitoSOL, bSOL, etc.) represents a claim on staked SOL plus staking rewards, therefore they have an intrinsic value backed by SOL in the pool. The conversion rate can be calculated onchain from the LST’s pool state account: ConversionRate=Stake Pool SOL BalanceLST Token Supply\text{ConversionRate} = \frac{\text{Stake Pool SOL Balance}}{\text{LST Token Supply}} With the conversion rate, the functional price of the LST can be calculated as: FuncPrice=SOL Price (USD)×ConversionRate\text{FuncPrice} = \text{SOL Price (USD)} \times \text{ConversionRate}

Benefits of Functional Pricing

  • Depeg Protection: Protects users from temporary market depegging events where LST spot prices may trade below their intrinsic value
  • Accurate Valuation: Reflects the true underlying value based on staked SOL and accrued rewards, not market sentiment
  • Reduced Manipulation Risk: Eliminates the risk of oracle manipulation or flash loan attacks on LST spot prices
  • Consistent Pricing: Provides stable, predictable pricing that follows the actual staking yield mechanics
  • Fair Entry/Exit: Ensures users receive fair value when subscribing to or redeeming from vaults holding LSTs
I