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. It is the price of leverage on that venue, so a young book with few directional traders pays near zero regardless of what the asset does elsewhere.
NAV — net asset value, the total dollar value of everything the vault holds.
Delta-hedged — holding an asset and shorting the same amount of it, so its price largely stops affecting your return. Traders call the trade delta-neutral; the offset here is close but not exact, so this book says hedged.
Product
ksUSD — Solana staking yield, hedged. A vault share, not a pegged dollar: a share is worth whatever the vault's assets are worth, drifts up as yield accrues, and can fall. What the vault does to earn it is the Introduction.
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 — what 1 ksUSD is worth in USDC: the dollars the vault holds for shareholders, divided by the ksUSD outstanding. On-chain that is
effective_nav_usdc × 1e9 / total_shares, stored as dollars × 1e9, so1_030_000_000reads as $1.03. Deposits mint at it, redemptions burn at it.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 asreserve_fund_usdc.
Modes (PositionMode)
Parked — no perp position. Everything sits in USDC, lent on Kamino via
lend_idle_usdc. This is where the vault goes when funding falls below the break-even threshold — deeply negative, not merely thin. (The enum variant is namedIdle.)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 the basis-vs-parked break-even, −0.78% at the current staking and lending rates — staking still out-earns lending, so the short can cost a little and still leave the vault ahead, but the headroom is thin. It moves with both rates. The on-chain floor ships at −78.
WindDown — the shutdown mode, set by
init_wind_down. No new deposits or positions; everyone redeems their share viaclaim_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 everysettleand compared againstfunding_threshold_*_bpsto 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_withdrawalburns your shares and locks the amount you're owed. Later,process_withdrawalpays it out and closes the request. Anyone can trigger that second step.Queue cursor —
queue_next_idandqueue_processed_throughon 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 byprocess_withdrawal. Processed strictly in order viaqueue_processed_through.Reserve ATA — a vault-owned USDC account used only for the reserve fund (
vault.reserve_ata). Fixed atinitialize.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_atafor the idle-USDC leg andreserve_lend_collateral_atafor the reserve. Both fixed byenable_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).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 callattest_nav.Cranker — anyone who pays to run an instruction that needs no permission:
settle,process_withdrawal, andemergency_closeonce tripped. One nuance onsettle— 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, andcollect_fees. This becomes a multisig before launch.
Backtest
Target APY — regime-dependent, so read the drawdown first: −0.392%, carried through a month in which Phoenix funding averaged −14%. Yield is 5.04% net on the venue's own measured funding. Fully loaded — already net of fees, trading costs, and the margin haircut. The window is 286 days, the whole life of the venue, so there is no through-cycle band to quote.
Daily backtest — daily figures over 2025-11-19 – 2026-08-31, every day Phoenix has quoted a SOL perp, covering the two modes v1 actually runs. Funding is Phoenix's own, unscaled. Method: historical-simulation.md.
Funding proxy — retired. The backtest reads Phoenix's own funding history and applies no scale factor. A CEX proxy does not survive the comparison: over the 286 days both cover, Phoenix averaged +1.58% APR while Binance averaged −0.11%, and the two disagree on sign for weeks. Funding is set by which side of Phoenix's book is crowded.
Last updated