The SSL for human-origin data. On-chain certificates proving your training data is bot-free.
Humonic is a Certificate Authority for human-origin data — an on-chain trust layer that cryptographically proves a specific digital output was produced by a verified, unique human, not a bot or AI.
The problem: AI labs spend billions sourcing training data from human workers, but there is currently no cryptographic guarantee that the data they're buying wasn't generated by AI "Sybil" bots impersonating real people. Humonic fixes this.
How it works:
Human verification via World ID — Workers verify using World ID (Worldcoin), which uses zero-knowledge proofs derived from iris biometrics to confirm uniqueness. The proof is validated on-chain and cannot be forged.
Humonic AUTHs (on-chain certificates) — Once a worker completes a task, Humonic's smart contract validates their ZK-proof and emits a HumonicAUTH event — a cryptographic receipt permanently linking a verified human identity to a specific task output.
Portable reputation via ENS & ERC-8004 — Every verified worker is issued an ENS subname (e.g., w-a1b2c3d4.humonic.eth) and tracked via the ERC-8004 standard. Their humanity score and task history travel with them across any platform that integrates Humonic.
Circle Nanopayments for settlement — Each certification triggers a sub-cent micropayment to the worker via Circle's Arc network, making the model economically viable at millions of transactions per day without prohibitive gas costs.
The result: A composable trust primitive any data marketplace, AI lab, or crowdsourcing platform can plug into — SSL for the human data economy.
Humonic is built as a full-stack Web3 application — a React + Vite frontend, a Node.js/Express API server, and a Solidity smart contract, all wired together across three partner networks.
Smart Contract (Humonic.sol) is deployed as a UUPS upgradeable proxy (OpenZeppelin) — a deliberate architectural choice so we can migrate from World ID v3 to v4 when it fully launches on mainnet without redeploying and losing state. The contract calls the World ID Router directly on-chain to validate ZK-proofs, then emits a HumonicAUTH event containing the nullifierHash, taskHash, and ENS worker name. This event is the certificate.
World ID 4.0 is integrated via a Relying Party backend flow using @worldcoin/idkit-server. The backend signs a nonce at /api/world/sign, which IDKit uses for its privacy-preserving verification. On-chain, nullifierHash values are stored in a contract mapping — so the same iris can never double-claim the same task. To illustrate this, the demo includes a simulated "bot swarm" where scripted wallets named GPT-5-Sybil and Claude-Sybil hammer the gate in real-time and get rejected, while a verified human sails through. The bots are simulated for demo purposes — the rejection logic is entirely real.
Circle / Arc Network powers nanopayments via the x402 protocol using @circle-fin/x402-batching. When an AUTH is issued, the marketplace signs an EIP-3009 off-chain authorization — no MetaMask popup, no gas drama. Circle batches these and settles on Arc, where USDC is the native gas token, making sub-cent payments (0.001 USDC per cert) actually viable. Circle Programmable Wallets handle all server-side signing, so the worker never needs a wallet at all.
ENS assigns every verified worker a subname (w-[hash].humonic.eth) and stores their reputation — cert_count, reputation_score, verified — as ENS text records using ERC-8004. The clever bit: we use ensjs setRecords multicall to update all five text records in a single transaction, keeping it gas-efficient.
The hackiest notable detail: almost all blockchain interactions — ENS registration, contract AUTH issuance, Circle settlement — happen server-side and asynchronously. The user scans a World ID QR code and the rest is invisible background automation. To avoid UI lag, subnames are written to a local database immediately for instant feedback, while the real on-chain txs catch up in the background. Classic optimistic UI, but applied to a multi-chain identity flow.

