A structured note is a vault with an end date. StructuredVault splits each deposit between an LPVault and a second sleeve, and after maturity it unwinds everything back to its asset.
Two modes, one split
sleeveBps is the share of every deposit that goes to the mode's own sleeve. The rest goes to the other one.
| Note | Mode | LP sleeve | Second sleeve |
|---|---|---|---|
ZKDepth Income NVDA | Income | 80 % into NVDA Hedged | 20 % idle WETH, backing a long the hedger reports |
ZKDepth Protected SPY | Protected | 15 % into SPY Hedged | 85 % SGOV, a T-bill token, from the deepest WETH/SGOV pool |
Both sit on hedged vaults, so the LP vault's price check and pause apply to the note's money too: while SPY Hedged is paused, the Protected note's deposits and withdrawals revert.
totalAssets() is the idle asset, plus the note's LP shares, plus the second sleeve: SGOV at the pool's TWAP net of its fee, or the reported sleeve equity.
The payoff at maturity
The chart draws both payoffs per unit deposited, against s, the underlying's price at maturity as a multiple of its price at deposit.
income = sleeve × (√s + feeYield) + (1 − sleeve) × min(s, 1.5)
protected = sleeve × (1 + sgovYield) + (1 − sleeve) × √s
Both value the LP sleeve as √s, what a full-range position is worth after a price move of s. In Income, the long stops gaining above 1.5x. In Protected, the first term does not depend on s, which is where the floor comes from: 0.85 × (1 + 0.045 × 90 / 365), about 0.859.
The floor is arithmetic on an SGOV sleeve sold through one Uniswap pool. It is measured in WETH, not dollars, and it leaves out the LP sleeve, which falls with √s.
Leaving the note
You can withdraw at any time. Before maturity, 50 bps goes to the FeeRouter, because an early exit unwinds part of a sleeve at that minute's prices. The ERC-4626 views include the fee, so previewRedeem shows what you will be paid.
A partial exit pays from idle asset first, then redeems LP shares and, on a Protected note, sells SGOV. If your shares are the whole supply, the note unwinds everything and pays you the rest.
settle() unwinds everything once the date has passed, and anyone can call it, once. It can revert while the LP vault is paused or the SGOV pool is off its mean, and can be retried. After settlement the note is a pile of WETH, and no exit depends on the SGOV pool or the LP vault again.
The SGOV pool
A Protected note buys, sells and values SGOV through one Uniswap pool, so every deposit, every withdrawal while the note holds SGOV, and every settlement first runs the price check on it. Each swap has a floor 1 % under the TWAP quote, and a sale below it reverts. While the pool is off its mean the check stops the sale and the exit with it.
Reporting an Income sleeve
The hedger reports an Income sleeve with reportSleeve, under the hedged vault's gate: a 15 % jump or 1 h of silence pauses the note, and a paused note takes no deposits and pays no exits. On a Protected note the call reverts, so the hedger key holds no pause over it.
contracts/src/StructuredVault.soldeposit, withdraw, settle, reportSleeve, payoffCurvepackages/core/src/payoff.tsincomePayoff and protectedPayoffcontracts/script/ZKDepthWiring.solthe splits, the term and the two seed notes