Skip to content

CodeHawks-Contests/2025-06-snowman-merkle-airdrop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snowman Merkle Airdrop

Snow in the middle of the year? You got it!!!

In anticipation of the upcoming snow season, help secure the Snowman Merkle Airdrop contract.

snowman image

About

  • Snow.sol:

    The Snow contract is an ERC20 token that automatically makes one eligible to claim a Snowman NFT.

    The Snow token is staked in the SnowmanAirdrop contract, and the staker receives Snowman NFTs in the value of how many Snow tokens they own.

    The Snow token can either be earned for free onece a week, or bought at anytime, up until during the ::FARMING_DURATION is over.

    The Snow token can be bought with either WETH or native ETH.

  • Snowman.sol:

    The Snowman contract is an ERC721 contract that utilizes Base64 encoding to achieve total on-chain storage.

    Stakers of the Snow token receive this NFT.

  • SnowmanAirdrop.sol:

    The SnowmanAirdrop contract utilizes Merkle trees implementation for a more efficient airdrop system.

    Recipients can either claim a Snowman NFT themselves, or have someone claim on their behalf using the recipient's v, r, s signatures.

    Recipients stake their Snow tokens and receive Snowman NFTS equal to their Snow balance in return

Resources:

  • Learn about Merkle trees here and here
  • Learn about ECDSA signtaures here
  • Learn about Snowmen here

Goodluck ⛄

Set-up:

    git clone https://github.com/CodeHawks-Contests/2025-06-snowman-merkle-airdrop.git 
    cd 2025-06-snowman-merkle-airdrop
    forge install
    forge build
    forge test

The 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.

Scope:

src/
├── Snow.sol
├── Snowman.sol
└── SnowmanAirdrop.sol

script/
├── GenerateInput.s.sol
├── Helper.s.sol
├── SnowMerkle.s.sol
└── flakes/
    ├── input.json
    └── output.json

Compatibility:

  • Chain: Ethereum
  • Token: Native ETH and WETH

Known Issues

None!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published