Skip to main content

Introduction

Proof of Humanity (PoH) is a Sybil-resistant registry of unique human identities. This page covers both V1 (Ethereum Mainnet) and V2 (Gnosis Chain). Each verified human receives a soulbound humanity ID (humanityId) that persists across wallet changes. PoH V2 uses Kleros Court for dispute resolution when profiles are challenged. Unlike V1, where each registration was bound to a specific wallet address, V2 decouples identity from address. One human maps to one humanity ID, which maps to one wallet address at any time. If a user loses wallet access, they can remove the lost address and re-register with a new one using the same humanityId.

Smart Contracts

Core interfaces, data structures, and contract addresses

V1 (Ethereum Mainnet)

PoH V1 runs on Ethereum Mainnet and V1 integration remains available. A Fork Module allows V1 registrations to be recognized by V2. The EPNS/Push Protocol integration that was active in V1 has been discontinued, and is replaced in V2 by Atlas + SendGrid. For V1 contract addresses, see Deployment Addresses.

V2 (Gnosis Chain)

The sections below document PoH V2 technical details. Technical notes for integrators:
  • PNK airdrop: the first 10,000 verified humans can claim 1,200 PNK, doubled by staking in the Humanity Court. A dashboard tracks registrations and airdrop claims.
  • Ledger limitation: hardware wallets do not currently support EIP-7702 on Gnosis Chain, which the standard airdrop claim flow requires. A manual claiming guide is available.
  • Email notifications: every step of the profile flow triggers notifications processed end-to-end by Atlas, including pending revocation, vouching activity, disputed flows, and challenge outcomes.
  • Evidence keys: the interface writes evidence files with the correct evidence key. Court V1 and the Dispute Resolver include a normalization workaround for older submissions that used the wrong key.
  • Execution pipeline: profile advancement uses a rewritten auto-advance execute pipeline.
  • Security: frontend security reviews cover XSS attack vectors, and the app runs on a patched NextJS 15.
  • In progress: a voucher reward distributor contract and a referral system (technical specifications under review).
Atlas is an internal backend library for Kleros development teams only. It is not intended for community use or integration.

Contract Addresses

PoH V2 operates on Gnosis Chain as the home chain. Cross-chain state is synchronized to other chains through bridge contracts. V1 registrations remain accessible through a Fork Module.

Architecture

PoH V2 consists of three layers:
1

Identity Registry

Core contract managing humanity IDs, registration claims, vouching, and challenge periods. Each humanity ID is a bytes20 value that uniquely identifies a verified human.
2

Cross-Chain Synchronization

Bridge contracts propagate humanity state across chains, enabling isHuman() checks on any supported network.
3

Dispute Resolution

Challenged registrations create disputes in Kleros Court. Jurors evaluate video evidence and vouching validity according to the registration policy.

Identity Model

V1 users have a humanityId equal to their original registration address (bytes20(address)). V2 users receive a new unique humanityId at registration.

Registration Lifecycle


Key Features

Humanity IDs persist across wallet changes. Applications that store data by humanityId rather than address preserve user reputation and assets even when the underlying wallet changes.
The isHuman() function is available on multiple chains through CrossChainProofOfHumanity contracts. Synchronization uses bridge infrastructure to propagate registration state.
A Fork Module allows V1 registrations to be recognized by V2. The isHuman() call automatically checks both V2 native registrations and V1 registrations.
New registrants need a vouch from an existing verified human. The keeper bot processes vouches and reward withdrawals automatically, reducing manual intervention.

Resources

GitHub Repository

Smart contracts source code

Live Application

Production PoH interface

Discord

Developer support