Early rate$2,400 of senior audit time for $500. Early members keep the rate as it climbs.$2,400 of senior audit time for $500See how →
F-2026-0016·spec-deviation

Deployed tier fee floors are below the agreed schedule at Verified and Expert

Fixedescrowarbitrationdispute-resolution
TL;DR

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.

Severity
MEDIUM
Impact
MEDIUM
Likelihood
MEDIUM
Method
MManual review
CAT.
Complexity
MEDIUM
Exploitability
MEDIUM
02Section · Description

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:

TierIntended floorDeployed
Community2,000tierFeeCommunity = 2_000e18
Verified3,500tierFeeVerified = 2_500e18
Expert6,000tierFeeExpert = 4_000e18

Verified is 29% below the intended floor and Expert 33% below.

Vulnerable Scenario: The following steps illustrate the issue:

  1. A dispute opens in the Verified band near its lower edge, where the sqrt(d) fee computes below the floor.
  2. _sqrtFee raises the fee to tierFeeVerified = 2,500 cNGN.
  3. Jurors are paid 2,500 where the planning schedule, the recruitment economics, and the appeal-deposit minimum all assume 3,500.
  4. _minAppealDeposit returns _caseFee(...) * 3, so the appeal deposit for that band is 7,500 rather than the 10,500 the schedule implies.
03Section · Impact

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.

04Section · Recommendation

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.

05Section · Resolution

Resolution

Fixed. Floors are now 2,000 / 3,500 / 6,000, matching the agreed schedule.

06Section · Affected files

Affected files

  • contracts/ArbitrationPool.sol#L184-L186
  • contracts/ArbitrationPool.sol#L379-L385
Status
Fixed
F-2026-0016