Fees
Schedule
Section titled “Schedule”fact
| Fee | Base | Default | Hard maximum | Paid by | When |
|---|---|---|---|---|---|
couponFeeBps | Each gross coupon | 2 500 (25%) | 5 000 | Reduces COUPON’s net coupon | Each paid observation |
notionalFeeBps | Matched notional N | 75 (0.75%) | 500 | Debited from SHIELD’s prefund | Strike |
keeperRewardQuote | Flat | 2 USDG | 100 USDG (MAX_KEEPER_REWARD_UNITS) | From accruedFees | First successful finalizeStrike / observe after closeTs |
Fees in force at createSeries are snapshotted into the series. Changing setFees affects only future series. Series created before the schedule above took effect carry the earlier snapshot of 1 500 / 25 and show it on their series page.
Where fees go
Section titled “Where fees go”Keeper rewards are paid from accruedFees first, so a series with no accrued fees (for example the very first crank before any fee exists) pays a smaller or zero reward: reward = min(keeperRewardQuote, accruedFees). sweepFees moves only sweepableFees(seriesId) = accruedFees − keeperReserve(seriesId), where the reserve is one keeper reward per crank still due on the series; it is zero once the series is terminal, so the reserve is swept then. If the fee sink’s notifyFee fails the USDG is still transferred and FeeNotifyFailed is emitted.
Worked numbers
Section titled “Worked numbers”illustrative For the worked example series (100,000 USDG, 50 bps weekly coupon, 8 observations):
| Scenario | Coupon fees | Notional fee | Keeper payments | Swept to RevenueRouter | Buyback 90% | Treasury 10% |
|---|---|---|---|---|---|---|
| A: autocall at 3 | 375 | 750 | 8 | 1,117 | 1,005.30 | 111.70 |
| B: holds to maturity | 1,000 | 750 | 18 | 1,732 | 1,558.80 | 173.20 |
| C: knock-in at maturity | 625 | 750 | 18 | 1,357 | 1,221.30 | 135.70 |
Effective cost to each side
Section titled “Effective cost to each side”- COUPON sees the fee as a lower net coupon: 0.50% gross becomes 0.375% net per weekly observation. Over the eight observations of one series, 4.00% gross becomes 3.00% net; annualised, about 26% gross becomes about 19.6% net.
- SHIELD pays the gross coupon and the notional fee. Its cost of protection is the gross coupon stream, not the net.
- Because the fee is a percentage of coupons actually paid, protocol revenue is zero at observations where the barrier fails. The protocol earns most when notes are working as intended.
Protocol revenue is not principal
Section titled “Protocol revenue is not principal”accruedFees is the only balance the protocol owns inside NoteCore. It is never used to fund coupons or redemptions and is part of the escrow invariant. The Desk’s returns and the Treasury’s reserves are separate from NoteCore fees.
Indicative scale
Section titled “Indicative scale”illustrative At a 20% blended annual coupon and the default fees, protocol fee revenue is roughly 9% to 11% of COUPON notional per year: 5.0% from coupons plus 0.75% of notional at each strike, which on a twelve-week structure that autocalls after about seven weeks on average adds another 4% to 6%. That is about $2.3m to $2.8m on $25m, $23m to $28m on $250m, $90m to $110m on $1bn of notional outstanding. Context and sources in Why on-chain.