> For the complete documentation index, see [llms.txt](https://docs.keystonefi.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keystonefi.xyz/how-it-works/strategy-and-modes.md).

# Strategy & Modes

ksUSD runs one trade. The vault holds staked SOL and shorts the same amount of SOL on a perp market, so the two largely cancel and SOL's price mostly stops mattering. Traders call this a delta-neutral basis trade; the offset is close but not exact, which is why this book says delta-hedged.

At any moment the trade is either on or off. A funding-rate signal decides which, and a keeper bot flips the switch. Either way the vault's net SOL exposure stays near zero, so holding ksUSD is not a bet on SOL's price.

<figure><img src="/files/EimaYeZz49FEhjtDgiPf" alt="Two modes: Normal basis shorts SOL-PERP at 1× and holds jitoSOL unlevered, earning funding plus staking; Parked holds no perp and lends the entire NAV as USDC on Kamino, earning lending yield."><figcaption><p>The protocol is always in exactly one of two states.</p></figcaption></figure>

***

## The two modes

**Normal basis, the trade is on.** The vault holds jitoSOL outright, with nothing borrowed against it. This is the spot leg, and it earns staking yield — the part that pays regardless of what the perp market is doing. Against it, the vault shorts an equal amount of SOL-PERP on Phoenix, posting USDC as margin through Ember. Funding on that short is upside: it is the price of leverage on Phoenix's book, so it arrives as leveraged traders do, and Phoenix's book is still young enough to pay near zero. The long and the short offset, so SOL price moves largely cancel and net exposure sits near zero — not exactly zero, since jitoSOL can drift against SOL and delta moves between rebalances (see [Risk](/how-it-works/volatility-risk-management.md)). The vault collects both things at once: staking yield on the jitoSOL, and funding on the short. jitoSOL is never posted as perp collateral.

**Parked, the trade is off.** The vault closes the short, sells the jitoSOL back to USDC, and lends everything on Kamino. This is the default whenever funding doesn't pay enough to be worth it. The liquidity buffer stays in the vault's own USDC account the whole time, so instant withdrawals keep working.

***

## When does the vault turn the trade on?

Most basis products just ask "is funding positive?" That's the wrong question here, because the jitoSOL you hold while short is *also* earning staking yield. The real question is whether staking plus funding beats plain USDC lending, after costs.

Work that out and the break-even lands at slightly *negative* funding — **−2.6%** at the \~7% rate the network pays. Staking on its own already out-earns USDC lending, so the short has room to cost a little and still leave the vault ahead — and the faster staking runs, the more room it has.

That means the entry point isn't a fixed number. It's a formula:

```
threshold = LEND / (1 − m) − STAKE + fees + buffer
```

| Term     | Meaning                                                                 |
| -------- | ----------------------------------------------------------------------- |
| `LEND`   | USDC lending APY — what parking the cash earns                          |
| `STAKE`  | jitoSOL staking APY — what the spot leg earns                           |
| `m`      | margin fraction (\~9% of NAV, earns 0%)                                 |
| `fees`   | round-trip perp + swap cost                                             |
| `buffer` | risk cushion: perp exposure, liquidation on a rally, jitoSOL depeg tail |

Once fees and the risk cushion are in, the practical threshold lands near −2.6%. When USDC lending gets rich, parking competes harder and the threshold rises. When staking runs hot, it falls. The keeper recalculates it each cycle from live rates.

### Why there's a band, not a line

Funding is noisy. The vault picks its mode on a 7-day average but earns or pays day by day, so sitting exactly on the threshold would flip it in and out constantly — and each round trip costs 20–40 bps.

So the vault uses a band: enter only once funding is \~3% clear of the threshold, hold until it drops \~3% below, and do nothing in between.

How much that band is worth depends entirely on where the threshold sits. When the threshold was at 0% — right where funding chops — the band was the difference between a working product and a pointless one: without it the vault whipsawed down to near-zero return. At the −2.6% break-even the vault uses now, funding rarely comes near the line at all, so the band costs about 6 bps in the backtest window and changes nothing else.

**It is cheap insurance rather than a load-bearing part.** Keep it, because a sustained negative-funding regime would push funding back onto the threshold, and that is exactly when whipsaw returns.

### Why the threshold sits below zero

Rounding the threshold up to 0% costs real yield. At Phoenix's near-zero funding a zero threshold parks the vault at \~4% while the basis earns \~6.4% — about **110 bps** over the 24-month window. The modeled configuration therefore runs the break-even itself, `funding_threshold_normal_bps = -260`.

**As shipped it is −260.** `init-v1.ts` deploys the on-chain floor at the break-even itself, and the keeper can only be tighter than the floor, never looser — so the program will short through mildly negative funding, and the keeper's dynamic rule decides when it actually does. That is what earns the 110 bps above; what it gives up is the guarantee that the program can never short into negative funding.

The trade is that holding the short through mildly negative funding holds jitoSOL for longer, which is depeg exposure. The 12-hour dwell bounds how often that happens and the depeg auto-pause bounds how bad it gets.

***

## Why Parked stays in USDC lending, not T-bills

Parked always means USDC lending, never a tokenized T-bill like USDY or OUSG:

* Tokenized securities carry permissioned transfer hooks, which break permissionless holding and redemption.
* Their non-US-person restrictions shrink the addressable market.
* They add a securities-law surface.

Anyone who wants T-bill exposure can redeem and buy a bill directly. ksUSD measures itself against USDC lending, not a T-bill rate.

***

## Mode-switch guardrails

The funding signal decides *whether* to switch. These parameters bound *how*.

The keeper only executes; it doesn't decide. It's a permissioned key (`authorized_keeper`) that cannot open a position the funding rule forbids. And the drawdown, depeg, and oracle-divergence guards can pause the vault without anyone's permission.

| Guard                             | Default                                                                                                | Effect                                                                                                                          |
| --------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| Funding threshold                 | −2.6% break-even (`funding_threshold_normal_bps = -260`, which is what `init-v1.ts` deploys), ±3% band | Vault shorts only when funding clears the threshold by the band, holds until it drops below; the band + 7-day mean stop whipsaw |
| `min_dwell_seconds`               | 12 h                                                                                                   | Minimum time in a mode before it can switch again                                                                               |
| `funding_max_staleness_seconds`   | 6 h                                                                                                    | Opens revert with `FundingSignalStale` if `settle` is overdue                                                                   |
| `consecutive_dd_settles_required` | 2                                                                                                      | A drawdown trip needs two consecutive bad settles                                                                               |
| `lst_depeg_bps`                   | 5%                                                                                                     | `settle` auto-pauses the vault on a jitoSOL depeg                                                                               |
| `max_swap_slippage_bps`           | 0.5%                                                                                                   | Jupiter swaps revert past this realized slippage                                                                                |

***

## Related

* [What is ksUSD?](/keystone-finance/reserve-asset.md) — overview and yield sources
* [Risk management](/how-it-works/volatility-risk-management.md) — drawdown guard, slippage bounds, dwell timers, depeg and staleness guards
* [Whitepaper](/reference/whitepaper.md) — full design, NAV math, security, risk disclosures
