Coupon discovery
Principle
Section titled “Principle”Nobody quotes the coupon. During Subscription both sides deposit; at strike, finalizeStrike reads the two totals and sets a single couponBps for the life of the series. More protection demand (SHIELD) than note demand (COUPON) pushes the coupon up toward the cap; more note demand pushes it down toward the floor. The coupon is a clearing rate, in the same spirit as a perpetual funding rate.
Inputs
Section titled “Inputs”| Symbol | Meaning |
|---|---|
D | Total COUPON USDG deposited |
S | Total SHIELD notional deposited, Stock Tokens valued at s0 (not at the provisional deposit-time price) |
notionalCap | Maximum matched notional for the series |
refBps | Per-series reference coupon set at creation (50 bps per weekly observation in the standing template) |
couponFloorBps, couponCapBps | Bounds; the cap (125 bps in the standing template, hard maximum 400) also sizes the SHIELD prefund |
Formulas
Section titled “Formulas”fact
Computed in WAD with explicit rounding down. The oversubscribed side is filled pro rata; unmatched deposits become refundable.
A reserved deposit (the Desk’s fill, posted with a coupon hurdle h = minCouponBps) enters D only as far as the book still discovers a coupon at or above h: before the clamp above, D is reduced to at most refBps × S / h by excluding part of the reserve account’s deposit, never anyone else’s. The excluded quote is refunded to the Desk at strike (ReserveExcluded). A hurdle at or below couponFloorBps excludes nothing.
Examples
Section titled “Examples”illustrative refBps = 45, couponFloorBps = 15, couponCapBps = 140, notionalCap = 1,000,000 (the mNVDA standing template; other underlyings differ, see Templates).
| D (COUPON) | S (SHIELD @ s0) | N matched | refBps × S / D | couponBps | Fill |
|---|---|---|---|---|---|
| 100 000 | 100 000 | 100 000 | 45 | 45 (0.45%) | Both sides 100% |
| 100 000 | 150 000 | 100 000 | 67 | 67 (0.67%) | SHIELD filled 66.7% |
| 150 000 | 100 000 | 100 000 | 30 | 30 (0.30%) | COUPON filled 66.7% |
| 100 000 | 400 000 | 100 000 | 180 | 140 (1.40%, cap) | SHIELD filled 25% |
| 100 000 | 25 000 | 25 000 | 11 | 15 (0.15%, floor) | COUPON filled 25% |
| 2 000 000 | 2 000 000 | 1 000 000 | 45 | 45 | Both filled 50% (notionalCap binds) |
SHIELD prefund and refund
Section titled “SHIELD prefund and refund”SHIELD must prefund the maximum coupon liability at the cap because the coupon is unknown until strike:
For a 100,000 USDG SHIELD position on a 13-timestamp mNVDA series: 100,000 × 140 × 12 / 10,000 = 16,800 USDG of coupon capacity, plus the 0.75% notional fee (750 USDG) which the implementation also draws from the prefund at strike, for a required prefund of 17,550 USDG (INoteCoreViews.requiredPrefund). Matching is additionally capped by prefund capacity: N = min(D, S, notionalCap, totalShieldPrefund × 1e4 / prefundRateBps). Once couponBps is discovered, the difference between the cap and the discovered coupon is not immediately refunded; it is released as part of settlement, along with coupons avoided by early autocall. Unmatched stock and unmatched prefund are refundable immediately after strike. See SHIELD.
Properties
Section titled “Properties”- Deterministic. Anyone can recompute
couponBpsfrom the two on-chain totals. - Bounded. The floor protects SHIELD from paying nothing for protection; the cap bounds SHIELD’s prefund.
- Manipulation surface. A large late deposit on one side moves the coupon. Mitigations:
notionalCap,minTicket, a Subscription window with a fixedsubscriptionEnd, and the Desk’s ability to fill only the COUPON side whenS > D. Deposits are not withdrawable during Subscription (refund is available only for unmatched amounts after strike), so pushing the coupon costs capital. See Market risk.
Where the Desk enters
Section titled “Where the Desk enters”The Desk may subscribe to the COUPON side during Subscription only when S > D, under per-series, per-underlying and total caps. This absorbs unmatched SHIELD supply and moderates the coupon toward refBps. The Desk cannot subscribe to SHIELD and cannot act after Subscription closes.
Fills are permissionless and rule based. DeskPolicy publishes one rule per underlying (barrier range, coupon floor, observation count, tenor and the lowest coupon the Desk accepts, minCouponBps). Inside the fill window (the last fillLead seconds of Subscription, 24 hours by default) anyone may call DeskPolicy.fill(seriesId); the policy sizes the fill so the discovered coupon stays at or above the hurdle and never beyond the SHIELD gap or the Desk’s caps, then pays the caller a fixed USDG bounty. The Desk is therefore a price-sensitive counterparty: SHIELD demand that would push the coupon below the hurdle stays unmatched, and because the fill is posted as a reserved deposit the matched part of a fill keeps the hurdle even if the SHIELD side changes after the fill. Desk.fillCoupon accepts calls from the policy only; the binding changes only through the protocol timelock with the published delay. See Desk and Automation.