/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

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
│   │   ├── 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
│   │   ├── 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
│   │   ├── json-schema                      # JSON schema for basemodels,
│   │   │                                      which is auto-generated from pydantic models
│   │   ├── python
│   │   │   ├── human-protocol-basemodels    # Python library for basemodels
│   │   │   ├── human-protocol-sdk           # Python SDK to interact with Human Protocol
│   │   ├── typescript
│   │   │   ├── human-protocol-basemodels    # Node.js library for basemodels
│   │   │   ├── human-protocol-sdk           # Node.js SDK to interact with Human Protocol
│   │   │   ├── subgraph                     # Human Protocol Subgraph

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:

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