Protocol overview
The xVault product model — what it is, who it serves, and the non-negotiable math rules underneath it.
xVault packages tokenized equities into curated Solana index vaults. A single deposit gives you exposure to a basket (Mag 7, Semis, Dividend, SPY-Lite), a keeper rebalances to target weights, and protocol revenue is split 50/50 between vault depositors and $VLT stakers — paid in real xStock kind, not in reward-token emissions.
The product surface is intentionally small:
- Four curated vault SKUs at launch, governance-curated (no user-created vaults in v1).
- USDC-in / USDC-out deposits and withdrawals, with an optional in-kind withdrawal path.
$VLTstaking with 30/90/180-day lockups, paying weekly epoch rewards in xStocks.
Scope
| Dimension | Scope |
|---|---|
| Chain | Solana |
| Asset standard | Token-2022 with Scaled UI extension |
| Underlying assets | xStocks issued by Backed Finance |
| Execution routes | Backed xChange (atomic RFQ) during market hours, Jupiter off-hours and on halts |
| Reward asset | Real xStock baskets, funded from protocol revenue |
| Jurisdictions | Global excluding US and restricted regions (geofenced at the edge) |
Users and their jobs
| Persona | Job-to-be-done |
|---|---|
| DeFi native | "Get S&P-style exposure in one transaction without leaving my wallet." |
| Yield farmer | "Stack rewards on top of TradFi beta." |
$VLT holder | "Earn a share of protocol revenue in real stock shares." |
| Power user | "Use vault shares as collateral on Kamino / margin platforms." |
Primary user flows
Deposit
vault::deposit(usdc_amount, min_shares_out).oracle PDA.Mint. Vault shares are minted pro-rata to NAV into the user's ATA, guarded by
min_shares_out.
Rebalance. The keeper reads the deposit event, buys the basket via xChange RFQ (market hours)
or Jupiter (off-hours), and submits rebalance_leg to validate execution and move USDC from the
buffer into holdings.
Withdraw
Two modes:
- In-kind — burn shares and receive raw xStock amounts pro-rata. No market risk, no slippage, no withdrawal fee.
- USDC — burn shares and receive USDC with a user-set
max_slip_bps(1% default, 5% max). The keeper sells xStocks as needed to meet demand. 0.05% withdrawal fee applies.
Rebalance (keeper-only)
/public/assets/*/price-data and /multiplier?network=Solana.Submits vault::rebalance_leg to validate, book post-trade deltas, and enforce slippage bounds.
See Operations → Keeper and oracles for the full job cadence and failure matrix.
Stake and claim
$VLT into the rewards pool for 30d, 90d, or 180d.Each Sunday 00:00 UTC the distributor snapshots time-weighted stake balances and buys the xStock basket with the reward pool.
A Merkle root is published for that epoch; users claim with an inclusion proof from the dapp.
$VLT.Non-negotiable math rule
Token-2022 Scaled UI
All xStock balances on Solana use the Scaled UI extension.
display_balance = raw_onchain_balance × current_multiplierPrograms and transfer instructions must store and move raw amounts. Scaling happens only inside NAV computations.
This invariant is the difference between a correctly-behaved index vault and one that silently drifts during fee accrual, dividends, or splits. Every balance-moving instruction re-verifies the expected multiplier before acting; every unit test exercises a non-unit multiplier.
Functional requirements (reference)
| ID | Requirement |
|---|---|
| F-1 | NAV uses raw_amount × multiplier × price. |
| F-2 | Deposits accepted in USDC; keeper orchestrates basket buys via xChange/Jupiter. |
| F-3 | Withdrawals in USDC with slippage cap = 1% default, user-overridable up to 5%. |
| F-4 | Rebalance is idempotent; fails safely if an xChange quote expires (~60–90s blockhash window). |
| F-5 | Fees: 0.2%/yr management (streamed) + 10% of positive performance (HWM) + 0.05% withdrawal. |
| F-6 | Proof-of-Reserves badge on UI: live per-holding call to /public/proof-of-reserves/{symbol}. |
| F-7 | Corporate-action banner surfacing upcoming events from /public/corporate-actions/upcoming with all 13 caType values. |
| F-8 | Auto-pause vault on SpinOff, *Merger, Redemption, WorthlessRemoval, RightsDistribution until multisig review. |
| F-9 | Primary NAV source: /v2/oracles. Fallback: indicative price-data only. |
| F-10 | USDC cash buffer refills from deposits; keeper liquidates to maintain the buffer if it falls below 0.5% TVL. |
Out of scope for v1
- Leverage and looping (separate product).
- Perpetuals on vault shares.
- Non-Solana deployments (bridge only).
- User-created custom vaults — governance-curated only.