Hub
HUMAN Website
  • HUMAN Protocol Document Hub
  • HUMAN Tech Docs
    • Architecture
      • Components
        • Smart Contracts
          • Escrow.sol
          • EscrowFactory.sol
          • Contract Addresses
        • Dashboard
        • Job Launcher
          • Standard
          • HUMAN Job Launcher
        • Exchange Oracle
          • Standard
        • Recording Oracle
          • Standard
        • Reputation Oracle
          • Standard
          • HUMAN Reputation Oracle
        • HUMAN App
        • Annotation Tools
          • CVAT
          • hCaptcha
          • Fortune (test)
        • KVStore
      • Protocol Features
        • Routing Protocol
        • Abuse System
        • Qualifications System
        • Governance
    • SDK
    • Tutorials
      • Job Requesters
        • Signup
        • Launch Jobs
          • Fortune
      • Workers
        • Sign Up
        • KYC Verification
        • Wallet address registration
      • Operators
        • Sign Up
      • HMToken
        • Bridge
          • Ethereum <--> Polygon
          • Ethereum <--> Binance Smart Chain
    • Developer
      • Prerequisites
      • Initial setup
      • Run web3 in Docker
      • Run services in Docker
      • Setting up Oracles
      • Running HUMAN Protocol with CVAT
        • Running CVAT
        • Setting up Worker user
        • Launch simple CVAT job
      • FAQ
  • Routing Protocol Tokenomics
    • Status
    • Premise
    • Token design
    • Proposition for a governance minimization model
    • Liquidity provision /market making
    • Alternate Conviction voting model
    • Voting model
    • The HUMAN-RP Magistrate
    • Voting process
    • Security
    • Policies
    • Slashing and Soft-freezing
    • Staking for tool vendors
  • Grants Program
    • Introduction and Program Overview
    • Application Process
      • Application Process of the HUMAN Grants Program
    • Funded Projects
    • Community
    • Help & FAQs
    • Terms and condition
  • Guide to the HUMAN Protocol SDK's
Powered by GitBook
LogoLogo

© 2023 HPF. HUMAN Protocol® is a registered trademark

On this page
  • What is KVStore?
  • How it works?
  • Why HUMAN Protocol uses KVStore?
  • Benefits
  • Predefined keys

Was this helpful?

  1. HUMAN Tech Docs
  2. Architecture
  3. Components

KVStore

What is KVStore?

KVStore (Key‑Value Store) is a decentralized, on‑chain storage component of the HUMAN Protocol. It allows any Ethereum address (oracles, requesters or workers) to store, update, and retrieve key-value pairs securely on-chain, tied exclusively to the owner’s address.

How it works?

HUMAN Protocol uses a smart contract to store this information on chain:

  • set(key, value) – stores or updates a value under your address.

  • get(address, key) – retrieves a value tied to any Ethereum address.

  • setBulk(keys, values) – stores or updates a set of values under your address.

The interaction with this contract can be done via KVStore client and utils of the SDK:

  • Typescript.

  • Python.

Why HUMAN Protocol uses KVStore?

HUMAN Protocol uses KVStore to let participants attach extra information to their wallet addresses. For instance, oracles configure on-chain settings like roles, fees, or encryption keys in a way that everyone can read but only the oracle can modify.

Benefits

Feature
Benefit

Decentralized

Fully on-chain; no centralized database needed

Permissioned

Only the owner’s address can modify its entries

Publicly discoverable

Anyone can read what’s stored (supports transparency)

Supports rotation

Users can update keys or values anytime

SDK-integrated

Easy to use via TS/Python packages

Predefined keys

The HUMAN protocol has the following predefined keys, despite users can set any other custom key:

category

Category of jobs you can process (machine_learning, market_making).

fee

How much you charge per job processed (in %, usually 1-5).

job_types

A list of the kinds of tasks you handle (image_boxes,image_boxes_from_points, audio_transcription etc.).

name

Your oracle’s name which will be displayed to annotators on a dashboard.

public_key

public_key_hash

registration_instructions

Url to a file or page that contains registrations instructions (for annotation tools mostly).

registration_needed

True/false flag indicates whether users have to register or not (on the annotation tools mostly, e.g CVAT).

role

Your role in the protocol (job_launcher, exchange_oracle, recording_oracle, reputation_oracle)

url

Base url of your oracle API.

website

Url of your homepage.

webhook_url

The endpoint URL where you’ll receive results or notifications during the job processing.

PreviousFortune (test)NextProtocol Features

Last updated 10 hours ago

Was this helpful?

Url to a file that contains your encryption/signing public key (so others can send or verify secure data). Check this tutorial on how to generate PGP pair:

A shorter fingerprint of your public key for quick checking (should be automatically set via or )

https://docs.humanprotocol.org/hub/human-tech-docs/developer/faq#how-to-generate-pgp-key-pair
https://docs.humanprotocol.org/hub/human-tech-docs/developer/faq#how-to-generate-pgp-key-pair
https://sdk.humanprotocol.org/python-sdk/human_protocol_sdk.kvstore/human_protocol_sdk.kvstore.kvstore_client#set_file_url_and_hash-url-key-url-tx_options-none