Open, on-chain identity verification. Let your users prove they're human with a Soulbound Token — no API key needed, 2 lines of code to integrate.
Each verification method adds points to a 0–255 Humanity Index. Higher scores mean stronger proof. All results stored as non-transferable SBTs on BNB Chain.
Non-transferable NFT permanently bound to the user's wallet. Can't be sold, stolen, or faked. On-chain proof of humanity.
Graduated scoring across 7 methods: reCAPTCHA, Google OAuth, Apple Passkey, Google 2FA, Telegram, Discord, LINE. More methods = higher score.
OAuth-based verification — we never see passwords. Passkeys and 2FA stay on-device. Zero-knowledge attestation on-chain.
No API key, no registration, no approval process. Add 2 lines of HTML and your site has humanity verification. Forever free.
Any smart contract can read SBT scores directly. No API dependency. Build Sybil-resistant DAOs, airdrops, or DeFi protocols.
Every integration source is tracked. Know how many users came from your site, bot, or agent. First-touch attribution built in.
zkHumanity works everywhere your users are. Websites, chat bots, mobile apps, AI agents — all use the same verification infrastructure.
Embed widget or popup. 2 lines of code.
✓ LiveQuery scores, verify tokens, get stats.
✓ LiveInvite bot to your group for auto-verification.
Coming SoonAdd bot to your server. Auto-assign verified role.
Coming SoonOpenClaw Skill to check if users are human.
Coming SoonQuery SBT score directly from any smart contract.
Coming SoonInstall the zkHumanity skill and your AI agent can verify if any user is a real human. Works with OpenClaw, Claude, Cursor, Codex, Copilot, and any AgentSkills-compatible system.
Download the SKILL.md into your agent's skills directory:
Or for OpenClaw:
Once installed, your agent can respond to natural language like:
Choose your platform. No API key needed — just copy, paste, and go.
Add the zkHumanity verification button to any website. No backend required. The popup handles the entire flow and returns a signed JWT token.
Handle the verification result in JavaScript:
A popup opens to zkhumanity.twin3.ai with your ref identifier for
attribution tracking.
reCAPTCHA, social logins, passkeys, 2FA — each adds to their Humanity Index (0–255).
Popup closes and your callback receives the wallet address, score, and a signed JWT token.
Query any wallet address for verification status, score, referral source, and method proofs.
🔑 Protected endpoints require an X-API-Key header. Apply for a key
→
After the SDK returns a token, verify it on your backend to ensure the user is authenticated. The token contains the wallet address, score, and referral source.
⏳ Telegram Bot is coming soon. Join our channel for launch updates.
Protect your Telegram group from bots and spam. Install the zkHumanity verification bot — new members must verify their humanity before participating.
@zkhumanity_bot to your groupOpen your group settings → Add Members → search @zkhumanity_bot → Add as Admin (needs: Send Messages, Restrict Members).
/zkh setup in your groupThe bot configures itself automatically. Options: /zkh min_score 100 to
require a minimum score, /zkh method g2fa to require 2FA.
When someone joins, the bot sends a "Verify Human" button. Users complete verification in a Telegram Mini App — no need to leave the chat.
Your group's referral ID is tg:your_group. Use the REST API to monitor
verified users and average scores.
⏳ Discord Bot is coming soon. Join our server for launch updates.
Protect your Discord server from bots and raids. Install the zkHumanity bot — members verify and receive a "Verified Human" role automatically.
Click the invite link below. Grant permissions: Send Messages, Manage Roles, Create Channels.
/zkh setup in any channelBot creates a #verify-human channel with a verification prompt. Options:
/zkh min_score 100, /zkh role @YourRole.
Members open the verification page, complete the flow, and the bot assigns a "✅ Verified Human" role automatically.
Your server's referral ID is dc:your_server. Monitor verified members and
their average scores in real-time.
Telegram and Discord partners install our bot directly — no key needed. For websites
and apps, apply below to receive an API key for accessing verification data.
Rate limit: 1,000 requests/day per key.
Need more? Contact us.
Fill the form above. You’ll receive an Application ID immediately.
Check status anytime: GET /api/v1/keys/{id}/status
Once approved, use it with: X-API-Key: sk_live_... header on all API
requests.
🔒 Protected endpoints require an X-API-Key
header. Apply for a key →
Base URL: https://zkhumanity.twin3.ai
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/verify/:address |
🔑 Verification status, score, referral source, and completed methods |
| GET | /api/v1/verify/:address?min_score=N |
🔑 Score threshold check — returns meets_threshold: true/false |
| GET | /api/v1/verify/:address/method/:method |
🔑 ZK method proof — check if user passed a specific method (returns signed JWT) |
| GET | /api/v1/stats/:ref |
🔑 Referral statistics (scoped to your own ref_id) |
| POST | /api/v1/keys/apply |
🌐 Apply for an API key (Web / App partners) |
| GET | /api/v1/keys/:id/status |
🌐 Check application status |
| GET | /api/v1/token/verify |
🌐 Validate a JWT token — pass ?token=... or
Authorization: Bearer ...
|
| Score Range | Level | Meaning |
|---|---|---|
0 |
Unverified | No verification completed |
15–50 |
Basic | Passed reCAPTCHA + 1 social login |
50–120 |
Moderate | Multiple social + passkey |
120–200 |
Strong | Multi-factor with 2FA |
200–255 |
Maximum | All active methods completed |
Any website can add zkHumanity verification with just a script tag and a div. No backend, no API key, no approval required.