Reward Hash (Technical)

Technical Description of Reward Hash

In order to create a pure random hash that can’t be manipulated, ThirdFi created a “reward hash” that uses ‘hash within hash’ as algo. This hash is a 32 bytes hexadecimal similar to transaction id(transaction hash). The hash is computed from tokenid, msg.sender, block.chainid, boostCount[tokenid], block.timestamp and blockhash(block.number).

tokenid - token id for NFT, each minted NFT has its own unique id. msg.sender - wallet address that executes the mint/boost function. block.chainid - chain id, i.e. 56 for BNB. boostCount[tokenid] - boost count for particular tokenid, which increases in each boost. This is used to distinguish the hash, to prevent the same hash generated within the same block. block.timestamp - timestamp(in seconds) of the block that executes the mint/boost function. blockhash(block.number) - block hash(similar to transaction hash) of the block that executes the mint/boost function.

These variables then compute with the popular hash function keccak256 into a hash that will emit through events within the mint/boost function. Users are able to check their hash through logs in Etherscan-like block explorers.

block.timestamp and blockhash(block.number) only disclose after the block is confirmed, so it is hard to predict whether a submitted transaction will get the desired hash, hence it provides some sort of randomness.

Check on How to Verify your Reward Hash.

Disclaimer:

  1. The combination NEED to be in consecutive order of “abc” or “123” ONLY.

  2. Character combination included for the LAST 3 of the rewards hash ONLY.

  3. Please note that updates will be provided periodically as we work towards finalizing the content.

Last updated