Core Interface
TheIProofOfHumanity interface exposes the functions needed to query and interact with the PoH V2 registry.
Identity Queries
Registration Functions
Cross-Chain Interface
TheICrossChainProofOfHumanity contract mirrors identity state on foreign chains. It exposes the same read functions:
Data Structures
Humanity
Each registered human is represented by aHumanity struct containing the registration state:
| Field | Type | Description |
|---|---|---|
owner | address | Current wallet address bound to this humanity |
humanityId | bytes20 | Unique soulbound identifier |
expirationTime | uint40 | When the registration expires and requires renewal |
nbPendingRequests | uint256 | Number of active registration or renewal claims |
Challenge Reasons
Challenges must specify a reason code:| Code | Reason | Description |
|---|---|---|
| 0 | None | Invalid |
| 1 | IncorrectSubmission | Profile does not meet registration policy requirements |
| 2 | Deceased | The registered human is deceased |
| 3 | Duplicate | The submitter is already registered under a different humanityId |
| 4 | DoesNotExist | The submitter does not exist or the video is fabricated |
Events
Dispute Integration
When a registration is challenged, PoH creates a dispute in Kleros Court with the following parameters:| Parameter | Value |
|---|---|
| Arbitrator | KlerosCore on the home chain |
| Court | Humanity Court (courtId configured at deployment) |
| Choices | 2 (Accept Registration / Reject Registration) |
| Ruling 0 | Refuse to arbitrate |
| Ruling 1 | Accept -> registration is valid |
| Ruling 2 | Reject —> registration is invalid |