Describe the normal behavior ; The EIP-712 signature verification flow should allow users to sign a structured message off-chain and submit the signature on-chain, where the contract re-generates the same hash and recovers the signer’s address using ECDSA.recover
. The MESSAGE_TYPEHASH
must exactly match the off-chain typed data schema for this to work.
The struct definition in the type hash incorrectly uses "addres"
instead of "address"
The struct name uses "addres"
(missing one “s”). Off‑chain signatures generated against the correct definition (address
) will fail to verify.
Likelihood:
Reason 1 // **Always triggered ** This is a deterministic failure — every signature verification will fail unless the same typo is duplicated off-chain (which is highly unlikely). Even a correct signature from MetaMask or a backend using the correct EIP-712 schema will mismatch.
Reason 2// The string "SnowmanClaim(addres receiver, uint256 amount)"
contains a typo in the word "address"
→ "addres"
.This causes the keccak256
hash to be different from the expected struct type hash.
Impact 1 Off-chain signatures will be invalid and verification will fail. All valid claim signatures will be rejected, blocking every user from claiming.
A typo in the `MESSAGE_TYPEHASH` variable of the `SnowmanAirdrop` contract will prevent signature verification claims. Used `addres` instead of `address`
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.