Human App serves as the entry point to Human Protocol for both workers and Oracle operators.

A backend-for-frontend proxy is employed to streamline interactions with other components of the protocol.

Workers Workflows

Worker Registration

1. Registration Process

  • To begin the registration process, workers provide their verified email and password on the Human App. The frontend of Human App communicates with the Reputation Oracle backend to facilitate this registration.

2. KYC (Know Your Customer)

  • Verification Process: Utilize the Synaps provider ( for user verification, requiring users to submit a legal document such as a driver's license or passport.

  • Notification to Reputation Oracle: The KYC provider notifies the Reputation Oracle backend of the verification results.

  • Blockchain Address Registration: Users register a Blockchain address associated to their account. This address will be used to pay the worker out for solving tasks.

  • KYC information registry: The Reputation Oracle generates a signed message containing the user's registered blockchain address. Human App guides users in choosing a network for storing KYC information, ensuring a seamless user experience. Workers must approve with their wallet (WalletConnect) the transaction to store the information on KVStore contract. KYC information is securely stored in a KVStore contract under the worker's wallet address.

KVStore record format:



1. Login Process

  • Registered users access Human App through the login process, via web2 (user and password) or web3 (WalletConnect).

2. Reputation Oracle Verification

  • Upon logging in, Human App interfaces with the Reputation Oracle backend to verify user credentials. The Reputation Oracle generates a JWT containing pertinent user information and transmits it back to Human App. Users gain access to Human App functionalities based on the JWT payload.

JWT information:

    "email": "",
    "address": "0x.....",
    "kycStatus": "PASSED"

Job Discovery

1. Oracles Discovery

  • Using the SDK, Human App retrieves a list of available Exchange Oracles from KVStore and fetches their URLs to obtain the list of available jobs.

2. Jobs Discovery

  • Based on a URLs list obtained, Human App dispatches requests to all Exchange Oracles to fetch available jobs. The retrieved list is then presented to the worker.

  • User Token Inclusion: When sending requests to Exchange Oracles, Human App includes the JWT generated previously by the Reputation Oracle, to address scenarios where certain oracles restrict job visibility for specific users (e.g., participation limitations).

Job Assignment

  • Workers select a job to undertake based on Exchange Oracle statistics and job type.

  • Human App sends a request to the Exchange Oracle to assign the chosen job to the user (job identifier + user identifier).

  • Human App displays a comprehensive list of jobs assigned to the user.

  • Each job has a link to the respective annotation tool for completion.


MetricData originEndpoint

Number of escrows user participated in. Based on payouts.


Total amount paid out.


Tasks stats

Exchange Oracle


(Note: Details on hCaptcha are pending clarification.)

Operators Workflows

Operator Registration

1. Connect Wallet

  • Operators initiate web 3 registration process on Human App using WalletConnect.

  • The frontend of Human App interfaces with the Reputation Oracle backend. (questionable, probably going to use a so-called backend-for-frontend proxy to interact with other protocol parts).

2. Stake

  • Human App requests to the operator to approve two transactions to stake HMT.

    • Approve: allow the staking contract to use the HMT tokens to stake.

    • Stake: stake the tokens on staking contract.

3. Configure Oracle on KVStore

  • Human App guides the operator to set the following keys on KVStore:

    • PublicKey

    • WebhookUrl

    • Role

    • Fee

4. Add to Oracles list.

  • Reputation Oracle adds the new oracle to the list of available oracles in the network.

Last updated


© 2023 HPF. HUMAN Protocol® is a registered trademark