Coupon Discovery
On this page
The coupon is fixed at strike from the two sides’ deposits. Matching also limits how much notional the available stock and usable coupon prefund can support.
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
| 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 (illustrative 45 bps per observation in the mNVDA example) |
couponFloorBps, couponCapBps | Bounds; the cap (hard maximum 400); illustrative 140 bps in the mNVDA example also sizes the SHIELD prefund |
Formulas
fact
fact Discovery and Matching
D_effective is the COUPON book after any reserved-deposit exclusion. usablePrefund is the pooled prefund limited by the least-funded SHIELD stock position, scaled to the total stock. Discovery uses WAD arithmetic 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
illustrative refBps = 45, couponFloorBps = 15, couponCapBps = 140, notionalCap = 1,000,000 (display USDG amounts, no reserved-deposit exclusion and sufficient usable prefund). Other series differ; see Templates.
| D (USDG) | S at Strike (USDG) | N Matched (USDG) | 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
SHIELD must prefund the maximum coupon liability at the cap because the coupon is unknown until strike:
fact SHIELD Prefund and Refund Calculation
illustrative 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_effective, S, notionalCap, floor(usablePrefund × 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
- Deterministic. Anyone can recompute
couponBpsfrom the two on-chain totals. - Bounded. The floor is the minimum discovered coupon; 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
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 governance with the published delay. See Desk and Automation.
Keep exploring, or revisit this topic from the navigation.