For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 NAVcached_nav_usdc − queue_pending_usdc − reserve_fund_usdc. What the high-water mark is measured against.

  • Effective NAVgross_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, so 1_030_000_000 reads 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 feespending_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 where the vault goes when funding falls below the break-even threshold — deeply negative, not merely thin. (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 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 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 withdrawalwithdraw_instant. One transaction, paid straight out of the buffer.

  • Queued withdrawalrequest_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 cursorqueue_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).

  • 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.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