Inspiration

We want to allow users to do some basic KYC or proofs on-chain. Country and Age.

What it does

We allow/call providers to push Year of Birth and Country on-chain using chainlink functions on an oracle contract. We allow the contract to call our backend (Cloudflare worker) for the updated data for a specific KYC provider (we assume different countries will use different providers) and push it on-chain. We allow the user to go to our website and add other wallets after registering for KYC and calling/validating the KYC. The idea is to create some abstraction where one pushed verification can be called from many addresses. The idea is to create some obfuscation and avoid overpowering or controlling narratives. The user is free to KYC with an unused wallet and, later on, connect it and add more addresses. We have getters to allow anyone to verify the last pushed data on-chain or if they want to call and update the data.

How I built it

We built an oracle on an L2. We added a chainlink function that will call our backend. Our backend is a cloudflare worker, connected to a free supabase (database). Our database basically stores 2 tables: one for allowed Providers(id and name) and other for Accounts(Id, Accounts[], Providers[], SubmissionIds[]) Our cloudflare worker than provides APIs to the frontend, and also a bitmap answer to the contract with the Year of Birth and CountryCode.

Challenges I ran into

Accomplishments that I'm proud of

What I learned

What's next for KycWonder

Built With

Share this project:

Updates