Proof of Personhood¶
Introduction¶
Proof of Personhood (PoP) is Polkadot's privacy-preserving way to confirm a user is a real human, without exposing which human. A user completes PoP once (in the Polkadot App); from then on, a single proof unlocks personhood-gated features — the TestNet faucet, short .dot names, alias-gated checks inside a Polkadot Product, and on-chain payments routed through personhood-aware pallets.
For a Product developer, PoP shows up in two places:
- As a primitive your Product calls into: Through the Product SDK your Product requests an alias for the current user, has the user prove control of that alias against a challenge, and gates features on the result. The Polkadot App is where the proving happens; your Product never sees the underlying biometric or the user's identity record.
- As a runtime origin your Product dispatches under: Polkadot's PoP pallets accept calls under the
under_aliasorigin, so your Product can submit on-chain operations that resolve to the user's alias inside the called pallet — pallet state stays unlinkable to the underlying account.
This reference is organized into two halves: the mechanism (Ring-VRF, aliases, the unlinkability property, how under_alias works) on its own page, and per-pallet reference for the pallets a Product is most likely to dispatch into.
The Mechanism¶
Ring-VRF and Aliases is the conceptual deep dive: how the PoP cryptography produces unlinkable per-Product aliases, what under_alias is at the runtime layer, and the privacy property the whole stack delivers.
The Pallets¶
| Pallet | What It Covers |
|---|---|
pallet-people | Personhood registration, alias-issuing, and the under_alias runtime origin. The foundational pallet the rest of the set depends on. |
pallet-game | Personhood-gated on-chain games and randomized selection flows. |
pallet-score | Personhood-anchored reputation and scoring primitives. |
pallet-identity | The identity record on People Chain associated with a PoP account. |
pallet-ubc | Universal Basic Capacity — the per-person on-chain capacity primitives. |
pallet-coinage | The personhood-aware peer-to-peer payment surface behind the App's Coinage feature. |
Where to Go Next¶
-
Learn Ring-VRF and Aliases
The cryptographic and runtime mechanism — how PoP produces unlinkable per-Product aliases, what
under_aliasis, and the privacy property the whole stack delivers. -
Learn pallet-people
The foundational pallet of the PoP set — registration, alias-issuing, and the
under_aliasruntime origin.
| Created: June 16, 2026