KYC-Free Identity Verification with Blockchain and AI Agents
Nipun Bandara
Tech enthusiast building future-proof AI + Web3 solutions.
Traditional Know Your Customer (KYC) processes are invasive, slow, and centralized. But what if users could prove their humanness and identity using biometrics without handing over sensitive documents? In this blog, we'll build a KYC-Free Identity Verification System using AI agents and blockchain smart contracts.
Why Go KYC-Free?
In decentralized apps (dApps), verifying users without centralized control is challenging. KYC-free systems enable:
- Privacy-preserving identity
- Scam and bot prevention
- Reusable credentials across platforms
How It Works
The user speaks a random phrase while moving their face. An AI agent verifies both voice and facial movement. If valid, a smart contract issues a non-transferable NFT as proof of humanity.
Tech Stack
- Frontend: React + MetaMask Wallet Integration
- Backend: FastAPI for AI verification
- AI Models: dlib (facial landmarks), Google Speech API (voice match)
- Blockchain: Solidity Smart Contract deployed on Sepolia Testnet
Project Structure
project/
├── backend/ # FastAPI for verification
│ ├── main.py
│ ├── verification.py
│ └── utils/
├── frontend/ # React + Wallet Connect
│ ├── public/
│ └── src/
├── contracts/
│ └── HumanProofSBT.sol
Smart Contract
The HumanProofSBT
contract issues a Soulbound Token (SBT) if verification passes. It prevents duplicate claims and stores user status immutably.
Voice & Face Verification
The backend uses:
- dlib: for detecting facial movements
- Google Cloud Speech-to-Text: for validating spoken phrase
Errors like >“Unable to open shape_predictor_68_face_landmarks.dat” indicate missing model files.
Ensure the .dat
file is present in your project and correctly referenced in your code.
On mobile or small screens, check your file paths and permissions if you encounter this error.
Handling CORS & API Errors
For your React app to communicate with FastAPI, set proper CORS headers:
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:3000"],
allow_methods=["*"],
allow_headers=["*"],
)
Final Touch: MetaMask + UI
Once verified, the user can connect their wallet and claim a proof NFT. If already verified, show a badge and skip re-verification.
Source Code
You can explore the full source code and try it yourself via GitHub:
🔗 github.com/nipunbandara/Identity-Verifier
Conclusion
This KYC-Free identity system proves how AI and blockchain can work together to replace centralized verification. You preserve privacy while offering strong proof of personhood—ideal for Web3 platforms, DAOs, and more.
About the Author
Nipun Bandara
Tech enthusiast building future-proof AI + Web3 solutions.