# High Prizes might not be claimed

Claimer's max fee was capped by the smallest prize size, so when gas exceeded minPrize, solvers had no incentive to claim large prizes.

- Payout: Contest reward
- Severity: medium
- Program: PoolTogether
- Credited: markus\_ether
- Disclosed: 2023-09-27
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2023-07-pooltogether-findings/issues/415
- Library page: https://bugbountylibrary.com/r/c4%3A2023-07-pooltogether%3AM-09
- Tags: domain:web3 impact:dos kind:contest platform:code4rena sev:medium tech:solidity technique:source-review vuln:accounting-error vuln:business-logic

**Target:** Claimer.sol _computeMaxFee / claimPrize incentive logic
**Root cause:** _computeMaxFee for non-canary tiers returned the fee based on the canary tier's (smallest) prize size rather than the tier being claimed, capping solver reward at minPrize regardless of prize size.
**Steps:**
1. Read Claimer.sol L173/L210: _computeMaxFee(_tier,_numTiers) returns _computeMaxFee(prizePool.getTierPrizeSize(_canaryTier - 1)) for non-canary tiers.
2. Observe fee = min(auction fee, %maxFeePortionOfPrize * minPrize), so reward is bounded by smallest prize.
3. When gas price rises above minPrize value, solver profit is negative for any tier.
4. A high-tier prize drawn during high gas goes unclaimed since winner doesn't self-claim.
5. Fix: use getTierPrizeSize(_tier) so max fee scales with the actual tier prize.
**How found:** Code reading of the fee computation: noticed the max fee referenced the canary tier's prize size instead of the claimed tier, then reasoned about gas-vs-minPrize economics to show high prizes become unclaimable.
**Insight:** In auction-based claim/keeper incentive designs, check that the reward cap scales with the value being claimed, not a global minimum; misaligned caps create unclaimable high-value items when gas spikes.
