← agentwallet.md

World ID

by Tools for Humanity / Worldcoin · worldcoin.org
Identity Official
Best for: Proving the agent has a real human operator behind it; Sybil resistance; one-human-one-agent enforcement
Not ideal for: Multiple agents per person; privacy-critical applications (iris biometrics); non-Worldcoin ecosystems

Key Signals

Verification Type
Proof-of-personhood
Chain
EVM + Optimism
Integration
SDK
Pricing
Free verification

Features

👁️
Iris-Based Proof-of-Personhood
Worldcoin's Orb device scans a user's iris to generate a unique biometric commitment stored as a hash — not the raw biometric data. This creates an unforgeable proof that the holder is a unique real human, distinct from all other registered humans.
🔒
ZK Proofs (Privacy-Preserving)
World ID uses zero-knowledge proofs so users can prove personhood without revealing their identity or which specific iris registration they hold. The verifying contract learns only that the prover is a unique human — nothing else about them.
⛓️
On-chain Verification
Verification happens via on-chain smart contracts on Optimism and Ethereum. Applications can add a World ID check directly to contract logic — e.g., a DeFi protocol can require proof-of-personhood before allowing protocol participation.
🛡️
Sybil Resistance
The biometric uniqueness guarantee means each real human can only register once globally. For AI agents, this enforces one-human-one-agent policies — preventing any single operator from deploying thousands of agents that all claim "human" status.

Ratings

Sybil Resistance
4.9
Privacy Model
4.3
Ease of Integration
3.8
Adoption
3.5
Ratings based on documentation review, GitHub activity, and public developer reports. Not independently verified in production.

Integration

npm install @worldcoin/minikit-js # or for on-chain verification: npm install @worldcoin/idkit // Web app: prompt user to verify with World ID import { IDKitWidget, VerificationLevel } from '@worldcoin/idkit'; function AgentOperatorVerification({ onSuccess }) { return ( <IDKitWidget app_id="app_YOUR_APP_ID" action="verify-agent-operator" verification_level={VerificationLevel.Orb} onSuccess={onSuccess} > {({ open }) => ( <button onClick={open}>Verify with World ID</button> )} </IDKitWidget> ); } // onSuccess receives: { proof, merkle_root, nullifier_hash, verification_level } // Verify proof on your backend: const response = await fetch('https://developer.worldcoin.org/api/v1/verify/app_YOUR_APP_ID', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nullifier_hash: proof.nullifier_hash, merkle_root: proof.merkle_root, proof: proof.proof, verification_level: 'orb', action: 'verify-agent-operator', }), }); const { success } = await response.json(); // success === true → operator is a unique verified human

Alternatives

Coinbase Verifications
KYC alternative — verified identity with full name/country data, less privacy-preserving
ENS
Name-based identity — human-readable names without personhood proof, no Orb device required
EAS
Attestation-based — build flexible reputation systems without biometric requirements