ThirdFi.org
  • Introduction to ThirdFi
  • Product
    • ThirdFi Developer
      • Overview
      • Swap API
      • Invest API
        • Market Weighted Index - MWI
        • Low-risk Crypto Index - LCI
      • Earn API
      • Pay API
      • Borrow & Lend API
      • Price Oracle
        • Price Oracle API
        • Price Oracle WebSocket
        • Price Oracle Use Case
      • Developer Dashboard
      • Developer Sandbox
      • Testnet Faucet
      • Webhook
      • Use Case
        • DeFi Alert
        • Price Alert Chrome Extension
      • FAQ
    • ThirdFi v2
      • Vision & Mission
      • Overview
        • How does it works?
        • Economic Model
      • Technical Overview
        • Network Architecture
        • Node Operations
        • Data Management and Security
        • Consensus and Security
        • Differentiators
        • Use Cases and Applications
      • Token Model
        • Proof of Trading (PoT)
        • T-Node
        • $THI
        • $oTHI
        • Conversion of $oTHI to $THI
    • Data to Earn Program
      • Introduction of Data-to-Earn
      • How to participate as a Data Provider?
      • Ways to collect Data Points
      • Reward Hash (Explanation)
      • Reward Hash (Technical)
      • How to verify your Reward Hash?
    • Roadmap
  • Disclaimer
  • Grants
    • Request For Builders
      • Season 1
  • Let's connect
    • Blog
    • Twitter
    • Discord
    • Linkedin
    • Youtube
    • Link3
Powered by GitBook
On this page
  1. Product
  2. Data to Earn Program

Reward Hash (Technical)

Technical Description of Reward Hash

PreviousReward Hash (Explanation)NextHow to verify your Reward Hash?

Last updated 10 months ago

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

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.

keccak256
How to Verify your Reward Hash