According to the protocol design, users should only be able to claim rewards within the 90-day claim window after a contest is created.
After the claim period ends, the manager closes the pot, takes the manager cut from unclaimed rewards, and the remaining amount is redistributed to eligible claimants.
Pot.claimCut() does not enforce the 90-day deadline, so a user can still claim after the claim window has expired as long as closePot() has not been executed yet.
This causes reward distribution to deviate from the documented policy, because late claimants can receive rewards that should have remained in the unclaimed pool for manager/claimant post-close distribution.
Likelihood:
when claim window expiry if closePot() has not been called yet.
Impact:
Late claims are possible after 90 days before the pot is closed, which deviates from the documented claim policy.
This does not always lead to direct loss, but it can alter expected reward accounting and produce unfair distribution relative to the intended 90-day cutoff.
The following test demonstrates that a player can still successfully claim rewards after the documented 90-day claim period has elapsed.
Create and fund a contest with two players and fixed rewards (500, 500).
Advance time by more than 90 days using vm.warp(block.timestamp + 91 days).
Let player1 call Pot(contest).claimCut().
Compare player1 token balance before and after the call.
Expected behavior (per README): claims should no longer be allowed after 90 days.
Actual behavior: claimCut() succeeds and player1 receives tokens, proving that late claims are still possible until closePot() is executed.
Enforce the 90-day claim deadline directly in claimCut() so expired claims always revert, regardless of whether closePot() has been called.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.