/human-protocol

Human Protocol python/js/ts Monorepo with example

Primary LanguageTypeScriptMIT LicenseMIT

Lint Check

Protocol Check

Python SDK Check

Python Base Models Check

Node.js SDK Check

Node.js Base Models Check

Subgraph Check

Fortune Check

Escrow Dashboard Check

Core NPM Publish

Python SDK Publish

Python Base Models Publish

Node.js SDK Publish

Node.js Base Models Publish

Subgraph Deploy

HUMAN-LOGO

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

~~ Main ~~
├── packages
│   ├── apps
	    ├── escrow-dashboard: A UI that queries The Graph for escrow data
│   ├── core: EVM compatible smart contracts for HUMAN
│   ├── examples
	    ├── cvat: An open source annotation tool for labeling video and images
	    ├── eth-kvstore: An on-chain key value store for publishing and rotating public keys
	    ├── fortune:  An example application that combines all the core
                      components of HUMAN
	    ├── launcher: A reference implementation of a Job Launcher
	    ├── oracles:  Reference implementations for Recording and Reputation
                      Oracles
│   ├── sdk: Python and Typescript libraries for building applications on
             HUMAN

How To Use This Repo

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

Job Launcher Operator
Recording Oracle Operator

Exchange Oracle Operator

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