diff --git a/.gitignore b/.gitignore index 4d76413..81a20d1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ images/docs/mini-apps/guidelines/do-dont/nav-component-dont.png mini-apps/guidelines/do-dont.mdx scripts/check-meta-images.js scripts/add-meta-images.js +.idea/ diff --git a/docs.json b/docs.json index a24a6af..cd0ecc2 100644 --- a/docs.json +++ b/docs.json @@ -85,6 +85,7 @@ { "group": "Credentials", "pages": [ + "world-id/credentials/1", "world-id/credentials/9303", "world-id/credentials/11" ] diff --git a/images/docs/id/issuers/1/thumbnail.png b/images/docs/id/issuers/1/thumbnail.png new file mode 100644 index 0000000..d7dc49f Binary files /dev/null and b/images/docs/id/issuers/1/thumbnail.png differ diff --git a/world-id/credentials/1.mdx b/world-id/credentials/1.mdx new file mode 100644 index 0000000..bdfecca --- /dev/null +++ b/world-id/credentials/1.mdx @@ -0,0 +1,92 @@ +--- +title: "Proof of Human (PoH)" +icon: "eye" +iconType: "duotone" +description: "High assurance biometric credential captured by the Orb and used for uniqueness." +"og:image": "https://docs.world.org/images/docs/docs-meta.png" +"twitter:image": "https://docs.world.org/images/docs/docs-meta.png" +--- + +import { CredentialHero } from "/snippets/credential-hero.jsx"; + + + +## Introduction + +The Proof of Human (PoH) Credential is the highest-assurance credential issued under World ID. Enrollment is a two-step process: the user first obtains an Orb credential by completing an Orb capture process, which proves they are a live human. They then exchange that Orb credential at the **PoH Issuer Service** with a PoH credential which confirms uniqueness. + +## Use Cases + +Use the PoH Credential when you need a strong guarantee that you are interacting with a unique, live human. It is the right choice for: + +- **Sybil resistance**: enforcing one account per human for airdrops, voting, rewards, or rate limiting. +- **High-assurance authentication**: gating sensitive actions where you need biometric confidence that you're interacting with the correct, unique human. +- **Proof of personhood**: distinguishing humans from bots, agents, and synthetic identities. + +## Credential Structure + +This credential implements the following attributes beyond the defaults in the [Credential](https://docs.rs/world-id-primitives/latest/world_id_primitives/credential/struct.Credential.html). + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
+ genesis_issued_at + The Unix timestamp of the user's first PoH credential. Remains constant across credential renewals.
+ expires_at + Unix timestamp when the credential expires. This is currently three years after the most recent issuance.
+ associated_data_hash + + The PoH credential has no associated data, so this field is always{" "} + FieldElement::ZERO. +
+ +In addition, the credential implements the following claim: + +### Claim 0 - Orb Credential Commitment + +A commitment that binds the PoH credential to the Orb credential the user presented at issuance. This allows the PoH Issuer to attest that the credential was minted from a valid Orb verification without revealing the underlying Orb credential to relying parties. + +| Source | Value | +| ----------------------- | ------------------------------------------------------------------------------------------------ | +| Orb credential | `H(hashes.json)` — the hash signed by the Orb during enrollment. | + +## Credential Renewal + +Users can renew their PoH credential to extend its validity as long as the Orb capture is deemed fresh by the issuer. Each renewal updates the credential with `expires_at = now + 3 years` while `genesis_issued_at` remains constant. + +## Technical Reference + +For issuer endpoints and implementation-specific details, see the [PoH Issuer reference](/world-id/reference/poh-issuer).