Skip to content

humanprotocol/human-protocol

Repository files navigation

Lint Check Protocol Check Python SDK Check Node.js SDK Check
Subgraph Check Dashboard UI Check Faucet Server Check Contract Deploy
Core NPM Publish Python SDK Publish Node.js SDK Publish Subgraph Deploy

All work on-chain

Tokenized, verified, rewarded.

Join us on Discord

What is the HUMAN Network?

HUMAN is a permissionless protocol to facilitate the exchange of HUMAN work, knowledge, and contribution. Using HUMAN, individuals, organizations or businesses can either create or complete tasks. These are tasks that cannot typically be automated or completed by a machine. The types of work that are currently being completed using the HUMAN Protocol are:

  • Data labeling - HUMAN is currently being used to label raw image data which can subsequently be used to train Machine Learning algorithms. Last month over 20 Million images were labeled by HUMAN workers: HUMAN Escrow Scanner
  • IMOO - An on-chain oracle for decentralized prediction markets
  • POH - A system that brings bot-blocking applications on-chain

Documentation

For a more detailed description of the HUMAN Protocol architecture and vision see here

Description

As part of our efforts to increase open source contributions we have consolidated all our codebase into a single monorepo. This monorepo provides an easy and reliable way to build applications that interact with the HUMAN Protocol. It has been designed so that it can be extended to meet the requirements of a wide variety of blockchain application use-cases involving human work or contribution. We have also included various example applications and reference implementations for the core infrastructure components that make up the HUMAN Protocol.

Contributing to this repository

The contribution guidelines are as per the CONTRIBUTING.MD file.

Project Structure

├── packages
│   ├── apps
│   │   ├── dashboard
│   │   │   ├── ui                           # A UI that queries The Graph for escrow data
│   │   │   ├── admin                        # Dashboard content admin app
│   │   ├── faucet-server                    # Faucet server
│   │   ├── fortune                          # Fortune application
│   │   ├── job-launcher                     # Job launcher server, and UI
│   │   ├── human-app                        # Human App server
│   │   ├── reputation-oracle                # Reputation Oracle server
│   ├── core                                 # EVM compatible smart contracts for HUMAN
│   ├── examples
│   │   ├── cvat                             # An open source annotation tool for labeling video and images
│   ├── sdk
│   │   ├── python
│   │   │   ├── human-protocol-sdk           # Python SDK to interact with Human Protocol
│   │   ├── typescript
│   │   │   ├── human-protocol-sdk           # Node.js SDK to interact with Human Protocol
│   │   │   ├── subgraph                     # Human Protocol Subgraph

Smart contracts

To access comprehensive information about the smart contracts, please visit the following URL: https://tech-docs.humanprotocol.org/contracts. This resource provides detailed documentation that covers various aspects of the smart contracts used within the Human Protocol ecosystem.

How To Use This Repo

If you would like to join the HUMAN network as an operator please see the apps folder. Users may participate as any of the following roles:

Building New Applications for HUMAN

If you are a developer and would like to build on top of HUMAN please see examples and sdk folders.

Usage and Installation

Navigate to the folder that you would like to install and follow the instructions in the README file

Managing Git Blame with .git-blame-ignore-revs

To improve git blame accuracy by ignoring non-functional commits (e.g., formatting or refactoring), we've added a .git-blame-ignore-revs file at the root of the repository.

To enable this:
Run:

git config blame.ignoreRevsFile .git-blame-ignore-revs
git config blame.markIgnoredLines true
git config blame.markUnblamableLines true

LEGAL NOTICE

The Protocol is an open-source, blockchain-based network that organizes, evaluates, and compensates human labor (the “Protocol”). Your use of the Protocol is entirely at your own risk. The Protocol is available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement. You assume all risks associated with using the Protocol, and digital assets and decentralized systems generally, including but not limited to, that: (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to digital assets; and (d) you may lose some or all of your tokens or other digital assets. You agree that you will have no recourse against anyone else for any losses due to the use of the Protocol. For example, these losses may arise from or relate to: (i) incorrect information; (ii) software or network failures; (iii) corrupted digital wallet files; (iv) unauthorized access; (v) errors, mistakes, or inaccuracies; or (vi) third-party activities. The Protocol does not collect any personal data, and your interaction with the Protocol will solely be through your public digital wallet address. Any personal or other data that you may make available in connection with the Protocol may not be private or secure.