Skip to content

Commit c95a1f7

Browse files
authored
Merge pull request #36 from kleros/feat/PoHv2-integrations
feat: integration doc, first version
2 parents 68c1b50 + 59337dd commit c95a1f7

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# **Proof of Humanity (PoHv2): Integration Guide**
2+
3+
## Introduction
4+
5+
Welcome to the Proof of Humanity v2 (PoHv2) integration documentation. This guide will walk you through the process of integrating the PoHv2 smart contracts into your DApp project. We've designed our platform to make interacting with the multichain curated list of humans seamless and secure.
6+
7+
## Key Features
8+
9+
- A sybil resistant protocol (non-duplicate and bot-proof) registry of humans.
10+
- Prevents duplicate accounts, ensuring each entry represents a distinct individual.
11+
- Trusted list of humans curated by a decentralized community.
12+
- Consultable human identities registered through a unique wallet account, enhancing transparency and trustworthiness.
13+
- Airdrop feasibility, enabling seamless token distribution to verified human identities.
14+
- Ensures that accounts reached through the airdrop correspond to different humans, preventing token accumulation in a single identity.
15+
- Operates across multiple blockchain networks, allowing for widespread adoption and flexibility.
16+
- PoHv2 is currently deployed in Ethereum and Gnosis.
17+
- PoHv2 is an open-source project developed and maintained by Kleros.
18+
- The Kleros Justice Protocol is a (multichain) on-chain dispute resolution platform. It is integrated to PoHv2 and constitutes the ultimate resource utilized to verify and maintain the curated list of human identities registered in PoHv2.
19+
20+
## Smart Contract Interactions
21+
22+
### Main contracts
23+
24+
#### Ethereum
25+
26+
Main PoHv2 proxy contract: [0xbE9834097A4E97689d9B667441acafb456D0480A](https://etherscan.io/address/0xbE9834097A4E97689d9B667441acafb456D0480A)
27+
28+
CrossChain proxy contract: [0xa478095886659168E8812154fB0DE39F103E74b2](https://etherscan.io/address/0xa478095886659168E8812154fB0DE39F103E74b2)
29+
30+
#### Gnosis
31+
32+
Gnosis main PoHv2 proxy contract: [0xa4AC94C4fa65Bb352eFa30e3408e64F72aC857bc](https://gnosisscan.io/address/0xa4AC94C4fa65Bb352eFa30e3408e64F72aC857bc)
33+
34+
Gnosis CrossChain proxy contract: [0x16044E1063C08670f8653055A786b7CC2034d2b0](https://gnosisscan.io/address/0x16044E1063C08670f8653055A786b7CC2034d2b0)
35+
36+
## Basic interactions
37+
38+
### On-chain verification:
39+
40+
- For verifying if an account **is registered** in PoHv2, it is necessary to call the `isHuman(address)` function on the crossChain contract deployed on the target chain.
41+
- For verifying if the target chain is the **home chain** of a registered account, it is necessary to call the `isHuman(address)` function on the main PoHv2 contract deployed on the target chain.
42+
43+
In general, you just want to verify that an account is verified (so call the crossChain contract).
44+
45+
However if your application is deployed on multiple chains and you don't want to allow an user to be registered with the same humanity on both chains (for example if you are streaming a UBI to the user, you may want to be sure he can only claim it on one chain), you should call the PoHv2 contract to verify it is his home chain. You must also have a way to notify your app that the user does not have a home chain application anymore (as users can move their home chain to another chain, for example in the case of streaming a UBI, you can allow anyone to call a function to terminate the user stream if he is not registered on PoHv2 of this specific chain anymore).

0 commit comments

Comments
 (0)