Snow in the middle of the year? You got it!!!
In anticipation of the upcoming snow season, help secure the Snowman Merkle Airdrop contract.
-
Snow.sol:The
Snowcontract is anERC20token that automatically makes one eligible to claim aSnowman NFT.The
Snowtoken is staked in theSnowmanAirdropcontract, and the staker receivesSnowmanNFTs in the value of how manySnowtokens they own.The
Snowtoken can either be earned for free onece a week, or bought at anytime, up until during the::FARMING_DURATIONis over.The
Snowtoken can be bought with eitherWETHor nativeETH. -
Snowman.sol:The
Snowmancontract is anERC721contract that utilizesBase64encoding to achieve total on-chain storage.Stakers of the Snow token receive this NFT.
-
SnowmanAirdrop.sol:The
SnowmanAirdropcontract utilizesMerkletrees implementation for a more efficient airdrop system.Recipients can either claim a
SnowmanNFT themselves, or have someone claim on their behalf using the recipient'sv,r,ssignatures.Recipients stake their
Snowtokens and receiveSnowmanNFTS equal to theirSnowbalance in return
Goodluck ⛄
git clone https://github.com/CodeHawks-Contests/2025-06-snowman-merkle-airdrop.git
cd 2025-06-snowman-merkle-airdrop
forge install
forge build
forge testThe Helper script is used to deploy the GenerateInput and SnowMerkle scripts, and also set up the TestSnowmanAirdrop test suite. Refactor it for your tests as you see fit to get the necessary input and output JSON files.
src/
├── Snow.sol
├── Snowman.sol
└── SnowmanAirdrop.sol
script/
├── GenerateInput.s.sol
├── Helper.s.sol
├── SnowMerkle.s.sol
└── flakes/
├── input.json
└── output.json
- Chain: Ethereum
- Token: Native
ETHandWETH
None!
