iiamhuman Developer Docsv1

PERSONHOOD CREDENTIAL INTEGRATION · STEP 1

Overview

Understand the credential types and the end-to-end consent flow.

Overview

Personhood credential integration lets your app ask a user to prove that they are a human or count as one unique person for a defined purpose. Your app does not need to operate the credential issuer.

The user's Credential Wallet stores credentials. Your app creates a presentation request. The user reviews that request in the wallet, chooses whether to share the required credential, and submits a verifiable presentation back to your app. Your backend verifies the presentation before creating an account, allowing an action, or granting access.

What Are Human and Uniqueness Credentials?

CredentialWhat it provesCommon app use
Human CredentialThe wallet holder has passed a human verification process.Reduce bot activity, gate human-only features, improve trust in user actions.
Uniqueness CredentialThe wallet holder can be treated as one unique person for a defined use case.Enforce one account, one vote, one claim, or one privileged action per person.

The exact credential type names used by the platform are:

  • HumanVerifiableCredential
  • UniquenessVerifiableCredential

Why Use Personhood Credentials?

Apps often need to answer questions that normal login does not answer:

  • Is this account controlled by a human?
  • Has this person already performed this one-time action?
  • Can this participant be counted once without collecting unnecessary identity data?
  • Can we protect a workflow from bots, duplicate accounts, or repeated claims?

Personhood credentials help your application answer these questions while requesting only the information it needs.

User Flow at a Glance

Your integration has three visible parts:

  • Your app: frontend, backend, app-owned database, and authorization logic.
  • Personhood Credential Wallet: the user-facing app that stores credentials and asks for consent.
  • Presentation Exchange Platform: the developer registration and trust layer for your app metadata, domains, request credential types, and policies.

Your app still owns its own users, sessions, product rules, storage, and final authorization decisions.

Journal makes reading public and protects comment publication. Its flow is:

sequenceDiagram
    participant User as Reader
    participant Web as Journal frontend
    participant Backend as Journal backend
    participant Wallet as Credential Wallet

    User->>Web: Select Comment
    Web->>Backend: Create verification request
    Backend-->>Web: PD fetch URL and expiry
    Web-->>User: Show QR code
    User->>Wallet: Scan and approve
    Wallet->>Backend: Fetch request and submit presentation
    Backend->>Backend: Verify and persist result
    Web->>Backend: Poll status and complete browser session
    Web-->>User: Ask for public name if missing
    User->>Web: Submit comment
    Web->>Backend: Publish comment
    Backend->>Backend: Check session, saved name, and credential state
    Backend-->>Web: Published comment or error

The ten-minute verification request and seven-day browser session have different lifetimes. A verified wallet submission alone does not authorize a browser to comment; the browser must complete its own session, and the server checks authorization again when publishing.

Download Personhood Credential Wallet from the App Store.

Next Step

Start with Before You Start, then read the Glossary.