SPRAG / RISK, STATED PLAINLY

What can go wrong, and what is done about each.

This page exists so nobody opens a position on the strength of the headline alone. Each risk below is real; each is followed by what the contract, the keeper or the interface does about it, and by what they cannot do.

Fee income can fall to zero. Interest does not.

The self-repaying claim rests on one comparison: fees earned against interest owed. Fees are measured from the pool's recent volume and extrapolated; volume is not a forecast. Done: the model shows both numbers side by side and refuses to call a position self-repaying when fees do not outrun interest. Not done: nothing can make a quiet pool pay.

Out of range, the position earns nothing.

A V3 position earns only between its two edges. Outside them, fees stop and interest continues. Done: the range picker shows how often a band that size would have been out over the past week; the keeper flags a position that leaves its range and, after seven days (or at once with Turbo on), moves the range beside the price unless the owner opts out. Nothing is swapped when it does. Not done: a recentre locks in the price move that pushed the position out, and a range beside the price earns only once the price comes back towards it. Turbo on a choppy token can recentre often, and each one locks in a move.

Impermanent loss is real and is not in the model.

The liquidity can be worth less than simply having held the deposit. Fees are the compensation for that; they may or may not cover it. Done: it is stated on the model, on every position card and here. Not done: it is not hedged.

Collateral can be liquidated.

If the collateral's own price falls far enough - or interest accrues long enough - the Morpho market can liquidate it at a penalty. The paired token's price does not affect this; the collateral's does. Done: liquidation protection. When debt reaches 90% of what the market would lend, anyone (the keeper, automatically) can have the vault pay the debt down out of the position's fees and part of its liquidity, never the collateral. Not done: a price that gaps through the band between blocks can still be liquidated, and unwinding liquidity realises impermanent loss.

Stock tokens trade 24/7; the stocks do not.

A tokenized stock's oracle can be stale over a weekend and jump on Monday. A position near its limit on Friday can be past it on Monday before any protection runs. Done: stock markets carry a 62.5% liquidation limit, which absorbs an ordinary gap. Not done: an extraordinary one.

The vault is unaudited.

Compiled, tested (71 contract invariants, run against the shipping compiler) and analysed, but never independently audited. Done: exposure is bounded by an immutable ceiling of 20,000 USDG and a guardian-set cap at or below it; every position borrows through its own isolated account; a pause can stop new positions but can never block a harvest, a repayment or a close. Not done: there is no insurance and no fund.

Token issuers can pause or restrict transfers.

Tokenized stocks are issued by third parties with the power to halt transfers. Done: every listed token is scanned for transfer taxes, pauses and blocklists before admission. Not done: an issuer's future decision.

Morpho and Uniswap are third parties.

Sprag holds no user funds itself: collateral sits in Morpho, liquidity in Uniswap V3. A failure in either is a failure here. Done: both are the audited, widely used deployments on this chain, and every price the vault acts on is a time-weighted average from the pool itself, never a spot price a flash loan can move. Not done: their risk is not ours to remove.

Operational keys.

The keeper key can spend its own gas and nothing else: every function it calls is permissionless and takes no amount, recipient or route the contract does not bound. The lister key can admit a token with a temporary cap and nothing else. The guardian is a 2-of-3 Safe. Not done: a compromised lister could admit a token that should not be admitted, bounded by the cap it must set, until revoked.

The rewards pool and points are bonuses, not the mechanism.

The pool pays only what has been sent to its wallet, at a stated rate, until it is empty. Points are a record, and what they become is announced separately. Neither is a promise, and a position that only works because of them is a position that does not work.

A plain borrow repays nothing by itself.

The second mode pays the whole borrow to your wallet. Interest accrues from the first block and nothing pays it down but you. Done: the interface says so before every plain borrow and recommends the self-repaying mode wherever the token allows it.