We use cookies to enhance your browsing experience and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.. View our Privacy Policy for more information.
Your browser (Internet Explorer) is out of date. Please download one of these up-to-date, free and excellent browsers:
For more security speed and comfort.
The download is safe from the vendor's official website.


A new demonstration of HUMAN Protocol, inspired by Fortune 

HUMAN Protocol
Feb 11, 2022

A new demonstration of HUMAN Protocol, inspired by Fortune 

2 min read

To help demonstrate the basic functionality of HUMAN Protocol, we’ve released a Fortune-inspired demonstration on our GitHub. This is an example application that runs on top of the Protocol, within which lines of text can be requested from distributed workforces, that provides a standardized reference for future developers. 

Fortune is available for any developer to inspect and extrapolate from to create their own solutions. 

To learn more, see our GitHub:

What is Fortune

Fortune is based on an old Unix program, in which a pseudorandom message is displayed from a database of quotations, created by the community. Fortunes refer to any line of text (or code) related to a specific thing; the term for browser “cookies” shares the same derivation: fortune cookies. 

We’re adopting this basic idea, and decentralizing it, placing the basic ask-and-receive functionality on-chain. Within this demonstration, projects can request fortunes and provide an amount in HMT to support the work; users, on the other side, create these fortunes and receive HMT for their contributions. 

An example may be, a project requires five humorous lines about a particular topic in development, and funds the work with a total of 100 HMT. The reputation oracle ensures that each contribution is unique, and then distributes rewards evenly to the contributing workforce. 

As mentioned, this is a basic demonstration; it purposefully omits other Protocol capabilities, such as results encryption, oracle decentralization, reputation network, etc. More than anything, our intention is to use this to inspire other use cases, and to get our community thinking about the broader possibilities of crowdsourcing any type of information or input.

JobFlow diagram

How it works

To begin, projects (as the job requester) can visit the job launcher DApp available through our GitHub. There, they can connect their wallet and deploy a smart contract to “Escrow”. “Escrow” is a smart contract, which holds all information related to the job. The salient parts of this contract are:

  • Job manifest. This is a URL that leads to the specification of the job. This should include all job details, such as the number of fortunes and oracle addresses.
  • Recording oracle address. This is responsible for collecting results, storing them, and then passing them to the reputation oracle. 
  • Recording oracle stake. This is the reward available for the recording oracle. 
  • Reputation oracle address. The reputation oracle is an entity that retrieves results from the recording oracle, validates them – in this case, ensuring that each fortune is unique – and then initiates the payout to all parties: workers and oracles. 
  • Reputation oracle stake. This is the reward available for the reputation oracle. 

After Escrow is deployed to the blockchain and funded with HMT, workers can write their fortunes on the “Exchange”. This is a piece of software that has an interface for solving a specific type of job. Examples of exchanges are CVAT, for image-annotation tasks, and INCEpTION, for text-annotation tasks. 

For this demonstration, we’ve created a small application with one input, in which every user can connect their wallet and push their fortunes to the recording oracle. In this case, the recording oracle is a backend server, connected to via an API, that holds job results (fortunes) and then pushes them to the reputation oracle. 

Besides holding the data, the recording oracle can also perform an initial validation of responses. In the case that it receives a result from several contributors for a specific question, the oracle finds a consensus between the responses. 

An example may be image-binary classification. From the labels received for each piece, the oracle would send the most popular to the reputation oracle.

The reputation oracle is responsible for:

  • Validating income results;
  • Storing results;
  • Calculating the payout value for each contributor; and
  • Executing payouts for all parties via the Escrow smart contract. 

Finally, the request for fortunes will be parceled out to supported applications, including the HUMAN App. 

We’ll keep the community updated on the development of Fortune as it evolves, and as we add new capabilities. 

For the latest updates on HUMAN Protocol, follow us on Twitter or join our Discord. Alternatively, to enquire about integrations, usage, or to learn more about HUMAN Protocol, get in contact with the HUMAN team.

Legal Disclaimer

The HUMAN Protocol Foundation makes no representation, warranty, or undertaking, express or implied, as to the accuracy, reliability, completeness, or reasonableness of the information contained here. Any assumptions, opinions, and estimations expressed constitute the HUMAN Protocol Foundation's judgement as of the time of publishing and are subject to change without notice. Any projection contained within the information presented here is based on a number of assumptions, and there can be no guarantee that any projected outcomes will be achieved.

Guest post