Deployed tier fee floors are below the agreed schedule at Verified and Expert
The deployed Verified and Expert fee floors are 29% and 33% below the agreed schedule. Jurors in those tiers are underpaid on every floor-bound case, and appeal deposits in those bands are under-collateralised by the same proportion.
Description
The tier fee floors are intended to equal the launch governance fee B for each tier, so that flat-rate planning and the on-chain sqrt(d) fee agree for floor-bound cases. The agreed launch values are 2,000 / 3,500 / 6,000 cNGN.
The deployed defaults are:
| Tier | Intended floor | Deployed |
|---|---|---|
| Community | 2,000 | tierFeeCommunity = 2_000e18 |
| Verified | 3,500 | tierFeeVerified = 2_500e18 |
| Expert | 6,000 | tierFeeExpert = 4_000e18 |
Verified is 29% below the intended floor and Expert 33% below.
Vulnerable Scenario: The following steps illustrate the issue:
- A dispute opens in the Verified band near its lower edge, where the sqrt(d) fee computes below the floor.
_sqrtFeeraises the fee totierFeeVerified= 2,500 cNGN.- Jurors are paid 2,500 where the planning schedule, the recruitment economics, and the appeal-deposit minimum all assume 3,500.
_minAppealDepositreturns_caseFee(...) * 3, so the appeal deposit for that band is 7,500 rather than the 10,500 the schedule implies.
Impact
Juror compensation is materially below the published schedule at two of three tiers for every floor-bound case, and appeal deposits in those bands are under-collateralised by the same proportion. Recruitment terms presented to prospective jurors will not match what the contract pays.
Recommendation
Set the three floors to the agreed values. These are governance-tunable through setTierFees, so this requires a configuration call rather than a redeploy — but note that setTierFees validates only monotonicity (community <= verified <= expert) and not the intended magnitudes, so the deployed defaults are what a launch would use unless the call is made explicitly as part of deployment.
Change the constructor defaults as well as calling the setter. A setTierFees call fixes the live deployment but is lost on any redeploy, and the deployed defaults are what a fresh factory would use.
Note the Expert floor becomes inert once F-2026-0003 is fixed. With the corrected Expert coefficient the computed fee at the bottom of the Expert band is already above 6,000 cNGN, so the floor never binds and only the Verified change has a runtime effect.
Resolution
Fixed. Floors are now 2,000 / 3,500 / 6,000, matching the agreed schedule.
Affected files
contracts/ArbitrationPool.sol#L184-L186contracts/ArbitrationPool.sol#L379-L385