Glossary
Quick definitions for terms used across the ksUSD docs.
A few come up everywhere, so they're defined once here:
Carry — income you collect for holding a position, rather than for correctly guessing a price move.
Funding — a payment perp traders make to each other every few hours to keep the perp price near spot. When more traders are long than short, longs pay shorts, so a short position gets paid to sit there.
NAV — net asset value, the total dollar value of everything the vault holds.
Delta-neutral — holding an asset and shorting the same amount of it, so its price stops affecting your return.
Product
ksUSD
A dollar backed by staked SOL. It converts SOL staking yield into dollar yield by holding jitoSOL and hedging the price risk away; funding and lending add to it. The price drifts up as that accrues.
Vault
The single Anchor program and its account, which holds the assets, mints ksUSD, and runs the strategy.
Coordinates carry
ksUSD gathers jitoSOL staking, Phoenix funding, and lending carry into one token, run by one vault.
Gross effective NAV
cached_nav_usdc − queue_pending_usdc − reserve_fund_usdc. What the high-water mark is measured against.
Effective NAV
gross_effective_nav_usdc − pending_perf_fees_usdc. What holders actually own, and what deposits and withdrawals price against.
Share price
effective_nav_usdc × 1e9 / total_shares (scaled by 1e9). What 1 ksUSD is worth in USDC.
HWM
High-water mark: the highest gross share price the vault has ever reached. Performance fees accrue only above it, and it never moves down.
Accrued perf fees
pending_perf_fees_usdc. Performance fees already earned but not yet paid out. Set aside as they're earned, so the share price is always net of them.
Reserve fund
A pool of USDC built from the 5% skim on performance fees, lent on Kamino. It absorbs first losses up to its size, and it grows slowly — treat it as an operational buffer, not as depeg or exploit cover. Paying out is a discretionary admin action (pay_from_reserve), never automatic. Tracked as reserve_fund_usdc.
Modes (PositionMode)
Parked
No perp position. Everything sits in USDC, lent on Kamino via lend_idle_usdc. This is the default when funding is thin or negative. (The enum variant is named Idle.)
Normal basis
Hold jitoSOL outright for staking yield, and short an equal amount of SOL-PERP on Phoenix (1× notional) with USDC as margin. Runs when funding clears the threshold by the ±3% band. The threshold is usually near 0%, and the program floors it so the vault never shorts into negative funding.
WindDown
The shutdown mode, set by init_wind_down. No new deposits or positions; everyone redeems their share via claim_wind_down.
Dwell
The minimum time the vault must stay in one mode before it can switch again. Default 12 hours.
Funding EMA
A running average of the funding rate that weights recent readings more heavily (funding_apr_smoothed_bps). Updated on every settle and compared against funding_threshold_*_bps to pick the mode.
Withdrawal
Liquidity buffer
Idle USDC the vault keeps on hand so withdrawals can pay out instantly. Default 10% of NAV.
Instant withdrawal
withdraw_instant. One transaction, paid straight out of the buffer.
Queued withdrawal
request_withdrawal burns your shares and locks the amount you're owed. Later, process_withdrawal pays it out and closes the request. Anyone can trigger that second step.
Queue cursor
queue_next_id and queue_processed_through on the vault. Together they track which requests are still outstanding.
On-chain accounts
A PDA is an account the program controls directly, with no private key behind it. An ATA is the standard account a wallet holds a particular token in.
Vault PDA
Seeds [b"vault"]. Signs every token operation, and is the authority over the ksUSD mint and all vault-owned token accounts.
WithdrawalRequest
One account per queued request, at [b"withdrawal_request", vault, request_id]. Closed by process_withdrawal. Processed strictly in order via queue_processed_through.
Reserve ATA
A vault-owned USDC account used only for the reserve fund (vault.reserve_ata). Fixed at initialize.
Phoenix trader account
The Phoenix Perps trader and subaccount PDAs the vault owns, set up through the Rise SDK builder path. Created by enable_phoenix.
Kamino lending cTokens
The receipts for USDC lent on Kamino: vault_lend_collateral_ata for the idle-USDC leg and reserve_lend_collateral_ata for the reserve. Both fixed by enable_lending.
External protocols
"CPI" below means one Solana program calling another within a transaction, which is how the vault operates on these venues.
Phoenix Perps
The on-chain perp exchange from Ellipsis Labs, with real two-sided funding. It's the v1 hedge venue. USDC margin goes in through Ember, and the vault calls it directly on-chain using the Rise SDK. Program EtrnLzgbS7nMMy5fbD42kXiUzGg8XQzJ972Xtk1cjWih.
Ember
The program that turns USDC into Phoenix perp margin. Program EMBERpYNE6ehWmXymZZS2skiFmCa9V5dp14e1iduM5qy.
Kamino KLend
The lending protocol the vault uses for USDC (lend_idle_usdc, lend_reserve).
Marginfi
Held in reserve as a second USDC lending venue in v1.1. The vault has fields for it, but it isn't wired up yet.
Jupiter V6
A swap aggregator. Every USDC ↔ jitoSOL swap routes through it.
Pyth (pull oracles)
The price source for SOL/USD and jitoSOL/USD. Every read is checked for staleness (5 min) and confidence (2%). Set via set_oracles.
Jito (jitoSOL)
A liquid staking token. Its yield comes from staking rewards plus MEV tips, both baked into the jitoSOL/SOL exchange rate.
Off-chain
Keeper
The off-chain bot that runs the vault's routine instructions on a schedule. Its key is pinned as authorized_keeper, and it's the only signer that can open or close positions, move capital in and out of lending, or call attest_nav.
Cranker
Anyone who pays to run an instruction that needs no permission: settle, process_withdrawal, and emergency_close once tripped. One nuance on settle — anyone can call it to refresh NAV and the depeg guard, but only the keeper's call updates the funding signal that gates position entry.
Admin
Whoever holds the admin key. Required for set_pause, update_params, transfer_admin, and collect_fees. This becomes a multisig before launch.
Backtest
Target APY
Regime-dependent, so read the drawdown first: −0.3% through the 2025–26 funding compression. Yield is ~6% net when funding is thin, as it is now, scaling toward ~11% when funding is rich. That figure is fully loaded — already net of fees, trading costs, and the margin haircut.
Daily backtest
Daily figures over a 24-month window, Jul 2024 – Jun 2026, covering the two modes v1 actually runs. Phoenix only launched in Dec 2025, so it uses historical SOL-perp funding as a stand-in. Method: historical-simulation.md.
Funding proxy
Binance funding taken at face value, on the basis that Phoenix prices its own funding off CEX index feeds. It still flatters the funding leg against what Phoenix has actually paid — the staking leg is what carries the result.
Last updated