Rewards Mechanism

Zero Knowledge verification of guesses

Step 1: Guess the story that inspired the art

Each NFT in our collection is inspired by an Edgar Allan Poe short story. As the title owner, you can submit a guess for which story inspired your piece's art on the Rewards Page.

Step 1
Step 2: Generate the guess signature

Your "guess" isn't actually the title of the short story. We use the token ID and story title as the seed for an externally owned account (EOA). That EOA signs a EIP-191 message that contains the token's ID and a nonce on the Rewards Contract. This all happens client-side.

Step 2
Step 3: Submit the guess signature to the Rewards Contract

The EOA signature from step 2 is submitted to the Rewards Contract. The smart contract was deployed with a mapping from Token ID to the pre-computed answer EOA for each piece. Why not store the raw answers? Because everything on the blockchain is public! Anyone could read the smart contract's data and ruin the fun...

Step 3
Step 4: Verification and Reward

The smart contract recovers the signing ("guess") EOA using ecrecover and checks if it matches the answer EOA stored for that token ID. If it does, then the submitter has proven that they knew the short story title without revealing it! The contract sends them a tiny ETH reward :P.

Step 4