Strategy & Modes

ksUSD runs a single delta-neutral carry strategy through three internal modes, picked automatically by the smoothed funding signal — no discretion, no manual switching. Gross SOL exposure stays ≈ 0 in every mode.

Net carry yield versus perp funding rate: reverse basis (go long) on the deeply-negative left, a USDC lending floor through the middle dead zone, and normal basis (go short) on the positive right.
The three modes mapped onto the funding rate — reverse basis below −12%, USDC lending in the dead zone, normal basis above +2%. Carry is captured on both sides; lending holds the floor.

The three modes

1. Normal basis — funding positive (default ≥ +2% APR smoothed)

  • Net SOL delta: zero

  • Earns jitoSOL staking yield (collateral leg) + Drift funding (perp leg)

  • Activates when funding_apr_smoothed_bps ≥ funding_threshold_normal_bps and the dwell timer has elapsed

2. Reverse basis — funding deeply negative (default ≤ −12% APR smoothed)

  • Same delta-neutral shape, opposite trade

  • Earns the negative funding paid by the crowded short side, less the Kamino borrow-vs-lend spread

  • Real-data reverse-mode share: 2–4% of days — the regime that bleeds one-way products by design

3. Idle — funding dead zone

  • Funding signal sits between the two thresholds → neither active mode produces positive net carry

  • Vault closes any open position; parks the entire NAV in USDC lending on Kamino

  • Liquidity buffer fraction always stays in the vault's USDC ATA so withdraw_instant keeps working

Wind-down is a terminal admin escape hatch (init_wind_down), not a normal operating mode. It blocks new deposits and routes shareholders to pro-rata redemption via claim_wind_down. Documented under Admin operations.


Mode-switch guardrails

Guard
Default
Effect

Funding smoothed EMA threshold

±200 bps / −1200 bps

Single-tick noise can't flip modes

min_dwell_seconds

12 h

Minimum time the vault stays in a mode before switching

funding_max_staleness_seconds

6 h

Opens revert with FundingSignalStale if settle is overdue

consecutive_dd_settles_required

2

Drawdown trip needs two consecutive bad settles

lst_depeg_bps

5%

settle auto-pauses the vault on jitoSOL depeg

max_swap_slippage_bps

0.5%

Jupiter swaps revert past this realized slippage


Why this composes only on Solana

Three primitives must co-locate on one chain:

  • High-yield borrowable LST — jitoSOL on Kamino (45% LTV at scale)

  • On-chain perp DEX with real two-sided funding — Drift Perps (not the borrow-fee-to-LP model on most EVM perp venues)

  • Sub-cent composability — Solana's fee model lets the vault switch modes hourly without bleeding gas

Doesn't exist on Ethereum (stETH borrow is capped on Aave) or on EVM L2s (GMX V2 uses borrow-fee, not funding). ksUSD is mechanically Solana-only.


  • What is ksUSD? — overview and yield sources

  • Risk management — drawdown guard, slippage bounds, dwell timers, depeg / staleness guards

  • Whitepaper — full design, NAV math, security, risk disclosures

Last updated