KycWonder
Inspiration
In today's digital age, identity verification is crucial for numerous online services. However, current KYC (Know Your Customer) processes often lack privacy and decentralization. We aimed to create a solution that allows users to perform basic KYC on-chain, focusing on essential identity aspects like country, age, adulthood status (over 18), and credit score. We aimed to combine transparency, security, and privacy in a single system.
What It Does
KycWonder provides an on-chain KYC solution using Chainlink oracles and smart contracts. Here's how it works:
Providers Push Data: Providers can push the year of birth and country information on-chain using Chainlink functions. Backend Integration: Our smart contract can call our backend (a Cloudflare worker) to fetch updated KYC data for specific providers, which is then pushed on-chain. Different countries can use different KYC providers. User Interaction: Users can register for KYC on our website and link multiple wallets to their verified identity. This allows them to use a primary wallet for KYC and later add other wallets, creating a layer of abstraction and obfuscation. Verification: Through our contract, anyone can verify the latest KYC data on-chain. Users can also update their data if needed.
How I Built It
- Smart Contract: Deployed an oracle on Polygon Amoy(Layer 2).
- Chainlink Functions: Integrated Chainlink functions to interact with our backend.
- Backend: Built a Cloudflare worker connected to a D1 Database. We used:
- Bun: A fast JavaScript runtime for our backend.
- Hono: A router for handling requests.
- Drizzle-ORM: For database management.
- Zod: For data validation and type consistency.
Challenges I Ran Into
Testing: All tests had to be mocked since real KYC processes couldn't be performed for a demo. Frontend Development: Created a simple page to mock provider data and establish relationships. API Key Management: Cloudflare workers have limited API key management capabilities, requiring us to hardcode some keys. Balancing Transparency and Anonymity: Designing a system that ensures both transparency in verification and anonymity for users was challenging.
Accomplishments That I'm Proud Of
Successfully building a backend using the chosen stack. Integrating Chainlink functions to fetch and push KYC data on-chain securely. Creating a functional prototype that demonstrates the concept of decentralized and anonymous KYC.
What I Learned
Hono: Learned to use Hono for efficient routing in our backend. Chainlink Functions: Gained experience in integrating Chainlink functions with smart contracts. Cloudflare Workers: Mastered deploying and managing a backend on Cloudflare workers.
What's Next for KycWonder
Add CCIP: Integrate Cross-Chain Interoperability Protocol (CCIP) for enhanced multi-chain functionality. Improve API Key Management: Develop a more robust API key management system for better security. Remove Mocks: Eliminate mock data and fully integrate Drizzle-ORM for live KYC processes. Enhance Frontend: Build a more sophisticated frontend for a better user experience.
KycWonder is poised to revolutionize identity verification by combining the strengths of blockchain technology with practical, user-friendly solutions.
Built With
- alchemyapi
- amazon-web-services
- chainlink
- cloudflare
- d1database
- docker
- drizzle
- fastapi
- hono
- nextjs
- optimism
- python
- react
- skicit-learn
- solidity
- typescript
- wrangler
- zod
Log in or sign up for Devpost to join the conversation.