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

  1. Smart Contract: Deployed an oracle on Polygon Amoy(Layer 2).
  2. Chainlink Functions: Integrated Chainlink functions to interact with our backend.
  3. 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

Share this project:

Updates