How the senior-to-junior premium is set, capped, and updated
On LayerCover, the premium is a portion of Senior yield paid to Junior depositors for providing first-loss protection.
The metavault stores one active premium rate, protectionPremiumBps. An OPERATOR_ROLE holder updates it with setProtectionPremiumRate(newRateBps). The setter runs accounting first, so the old rate applies to the elapsed window and the new rate only applies going forward.
Each vault can also define an immutable minProtectionPremiumBps at deployment. The operator can never set the premium below that floor or above 100% APR. If a vault uses a Premium Rate Module, the module holds OPERATOR_ROLE and calls the same metavault setter after applying its own curve, floor, cap, APY guard, and cooldown.
For a vault at the 4x leverage cap, composed of 80% Senior and 20% Junior depositors, both tranches start with the same base yield from the underlying strategy.
Example: if the base yield is 10% APY and the premium rate is 2%, Senior earns 8% APY after paying the premium:
Senior APY: 10% - 2% = 8%
Because Senior is four times larger than Junior, that same 2% premium becomes 8% extra APY for Junior:
Junior APY: 10% + (2% x 80% / 20%) = 18%
Junior receives amplified yield because it is protecting a larger Senior tranche.
LayerCoverAdaptivePremiumController uses an adaptive curve around a target Junior share.
Start with a target premium.
This is the premium charged when Junior is at the target share, for example 25%.
Compare Junior to target.
If Junior is below target, the premium moves up. If Junior is above target, the premium moves down.
Adapt over time.
If Junior stays below target, the target premium gradually rises. If Junior stays above target, it gradually falls.
Keep Senior protected from overcharging.
The premium is capped by the smoothed underlying APY, so Senior's modeled net yield should not go below zero.
Assume:
At 25% Junior, the premium is 2.4%.
If Junior falls to the 20% floor, the shortage is real, so the curve increases the premium from 2.4% to about 3.8%.
That comes from the curve multiplier. A fall from 25% to 20% is a 20% shortfall versus target:
Shortfall: (25% - 20%) / 25% = 20%
Premium: 2.4% x (1 + (4 - 1) x 20%) = 3.84%
If Junior remains scarce, the PRM gradually raises the target premium over time until the market has a stronger incentive to add Junior capital.
minProtectionPremiumBps <= newRateBps <= 10_000.floorRateBps can be updated only by the controller's floorSetter, which should be a TimelockController.