Skip to content

Fees

fact

FeeBaseDefaultHard maximumPaid byWhen
couponFeeBpsEach gross coupon2 500 (25%)5 000Reduces COUPON’s net couponEach paid observation
notionalFeeBpsMatched notional N75 (0.75%)500Debited from SHIELD’s prefundStrike
keeperRewardQuoteFlat2 USDG100 USDG (MAX_KEEPER_REWARD_UNITS)From accruedFeesFirst 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.

accruedFees(series) += fee on every event sweepFees(seriesId) → RevenueRouter.notifyFee(USDG, amount) (permissionless; amount = accruedFees − keeperReserve) RevenueRouter: buybackBps 9 000 → Buyback Auction → sNOTE rewards treasuryBps 1 000 → Treasury reserves

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.

illustrative For the worked example series (100,000 USDG, 50 bps weekly coupon, 8 observations):

ScenarioCoupon feesNotional feeKeeper paymentsSwept to RevenueRouterBuyback 90%Treasury 10%
A: autocall at 337575081,1171,005.30111.70
B: holds to maturity1,000750181,7321,558.80173.20
C: knock-in at maturity625750181,3571,221.30135.70
  • 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.

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.

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.