Snowman Merkle Airdrop

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

earnSnow Mints 1 Wei Instead of 1 Full Token

Root + Impact

Description

earnSnow is intended to reward users with 1 full Snow token per successful claim. Since Snow is an ERC20, a full token corresponds to 1 * 10^decimals() (i.e. 1e18).

The function mints a raw value of 1, which represents 1 wei of the token, not 1 full token. This results in rewards that are effectively negligible and not aligned with the intended token economics.

function earnSnow() external canFarmSnow {
...
_mint(msg.sender, 1); // @> mints 1 wei, not 1 token
s_earnTimer = block.timestamp;
}
​

Risk

Likelihood:

  • Occurs on every successful call to earnSnow

Independent of user behavior or timing

Impact:

  • Users receive near-zero rewards instead of meaningful incentives

Farming mechanism becomes economically ineffective

Proof of Concept

​

Recommended Mitigation

Mint rewards using the token’s decimal precision (which is 18 decimal).

function earnSnow() external canFarmSnow {
...
- _mint(msg.sender, 1);
+ _mint(msg.sender, 1 * PRECISION);
}
​
Updates

Lead Judging Commences

ai-first-flight-judge Lead Judge 10 months 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!