> 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="https://54366478-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKGeChFh17iBDmI2WymJg%2Fuploads%2Fgit-blob-522088733452f823bb43484d00e0063223a2efdf%2Fmodes-1-two-modes.svg?alt=media" 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 whatever the perp market is doing.

Against it, the vault shorts an equal amount of SOL-PERP on Phoenix, posting USDC as margin through Ember. jitoSOL is never posted as perp collateral. Funding on the short is the price of leverage on Phoenix's book, so it swings with the traders on it: since the venue opened it has averaged +3.49% APR, from −14% to +22% by month.

The vault collects both at once: staking on the jitoSOL and funding on the short. SOL price moves largely cancel, but not exactly, since jitoSOL can drift against SOL and delta moves between rebalances (see [Risk](/start-here/volatility-risk-management.md)).

**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 *positive* funding: **+0.12%** at jitoSOL's 4.94% published pool APY and the 4.51% Kamino USDC rate (seven-day median, measured 13 Oct 2026). Staking on its own falls just short of USDC lending once the margin earns nothing, so the short has to earn a little before hedging beats parking.

Use the pool's rate here, not Solana's 5.30% *network* rate. The vault holds jitoSOL, so what counts is what the pool pays after validator commission and Jito's fee.

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.1% of deployed capital, 8.2% of NAV; earns 0%)       |
| `fees`   | round-trip perp + swap cost                                             |
| `buffer` | risk cushion: perp exposure, liquidation on a rally, jitoSOL depeg tail |

When USDC lending gets rich, parking competes harder and the threshold rises: at 5.00% lending it would be **+0.66%**. When staking runs hot it falls, crossing zero at 5.06% jitoSOL. 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 switch costs about 20 bps.

So the vault uses a band of ±3 percentage points around the threshold. At +0.12% it enters Normal basis only above **+3.12%** funding, exits below **−2.88%**, and does nothing in between.

The band is the largest modelling choice in the backtest, worth **351 bps**. Removing it drops net APY from 7.19% to 3.68%, below lending, because Phoenix's funding swings between −14% and +22% by month. The band cuts the switches from 22 to 4, which avoids about 416 bps a year of switching cost (18 × 20 bps over 316 days), and gives about 65 bps back in worse mode selection.

The entry gate sits just below Phoenix's mean funding (+3.49%) but above its median day (+1.25%), so on a typical day the band binds. On a flat-zero funding series the vault would never enter Normal basis and would park permanently. 3 points is the best width tested on this window, but it comes from a 30-day payback rule rather than from fitting; the [historical simulation](/how-it-works/strategy-and-modes/historical-simulation.md#the-hysteresis-band) has the derivation and the sweep. Because the band is centred on the threshold, it moves when the threshold does.

### Why the threshold sits just above zero

Staking and lending set the threshold: while the hedge is on, jitoSOL earns 4.94% on 81.8% of NAV whether funding is positive or not. At 4.51% lending that is just short of enough on its own, so the short has to earn at least 12 bps a year before parking loses.

The vault deploys with its on-chain floor at that break-even, `funding_threshold_normal_bps = 12`, and the keeper can only be tighter than the floor, never looser. So the program never opens a short below +0.12% funding, and the keeper's dynamic rule decides when above that it actually does.

The band still holds an open short through negative funding down to −2.88%, which holds jitoSOL for longer, and that 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.

***

## Keeping the hedge the right size

The two legs cancel on the day the position opens. They don't stay cancelled.

jitoSOL earns its yield by appreciating against SOL, so the spot leg gains SOL value while the short stays exactly the size it was: about 1.35 bps a day, the staking rate. Left alone, the vault accumulates real directional exposure to SOL without ever placing a trade. That is the opposite of what it promises to hold.

So the short gets resized. Two different operations do it, and the difference between them is the whole point.

|                      | Short exposure | Long (jitoSOL) exposure | Net exposure           |
| -------------------- | -------------- | ----------------------- | ---------------------- |
| **Resize the hedge** | changes        | unchanged               | moves back toward zero |
| **De-lever**         | decreases      | decreases               | **stays where it was** |

**Resizing the hedge moves one leg.** The vault reads its own jitoSOL balance and the jitoSOL/SOL rate, works out how much SOL it is actually holding, and trades the perp to match. It takes no size instruction from anyone; the target is arithmetic on the balance. Under-hedged, it sells more; over-hedged, it buys some back. Either direction, it only ever moves net exposure *toward* zero, never past it. There is no way to use it to take a position.

It also has a ceiling. Growing a short raises the margin the venue demands, so the increase is capped at what the posted collateral can actually carry. If the target needs more than that, the vault does as much as it can afford and flags the shortfall rather than rebalancing itself toward a liquidation.

**De-levering moves both legs together.** Buy back part of the short, sell the matching slice of jitoSOL. The position gets smaller, net exposure doesn't move. This is what funds a withdrawal queue larger than the buffer, and what defends margin when it runs thin.

The obvious shortcut, selling some jitoSOL to raise cash, is the one thing that must not happen. Margin runs short when SOL **rallies**, because that is when the short is losing. Selling jitoSOL then would shrink the long leg while the short stayed whole, leaving the vault net **short** into a rising market, with losses compounding in exactly the scenario that triggered the top-up. Moving both legs by the same fraction is what stops the rescue from becoming the risk.

Below a hard margin floor, anyone can trigger the de-lever, not just the keeper. A defence that depends on our bot being awake is not a defence. Such a caller can only push the proceeds back to margin, never to the buffer, so it cannot be used to drain the position.

***

## 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                 | +0.12% break-even (on-chain floor +12), ±3-point band | Vault shorts only above +3.12% and holds until funding drops below −2.88%; the band and the 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?](/start-here/reserve-asset.md) — overview and yield sources
* [Risk management](/start-here/volatility-risk-management.md) — drawdown guard, slippage bounds, dwell timers, depeg and staleness guards
* [Whitepaper](/how-it-works/whitepaper.md) — full design, NAV math, security, risk disclosures
