Snowman Merkle Airdrop

AI First Flight #10
Beginner FriendlyFoundrySolidityNFT
EXP
View results
Submission Details
Impact: medium
Likelihood: medium
Invalid

### [M-3] `SnowmanAirdrop::claimSnowman` has no start-time restriction, allowing premature claims during the farming period

Description: There is no minimum time enforced before claimSnowman can be called. Users can claim during the 12-week Snow farming period with whatever small balance they currently hold. Since the Merkle tree snapshot must be taken at a fixed point, claims made before the snapshot is finalized are invalid by design.

Impact: A user can claim early with a small Snow balance, surrender those tokens, and miss out on accumulating more Snow during the remaining farming period. The Merkle tree snapshot and the claim window are not coordinated, undermining the protocol's fairness.

Recommended Mitigation: Add a claim start time tied to the end of the farming period.

+ uint256 private immutable i_claimStart;
constructor(...) {
...
+ i_claimStart = block.timestamp + FARMING_DURATION; // matches Snow.sol
}
function claimSnowman(...) external nonReentrant {
+ if (block.timestamp < i_claimStart) revert SA__ClaimNotStarted();
...
}
Updates

Lead Judging Commences

ai-first-flight-judge Lead Judge about 2 hours ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!