Request for Proposal: Decentralize Gitcoin Quests

Hi @owocki and everyone !

Introduction
I am a full stack developer(4 years of professional exp and my hobbies are mainly focused around learning security, devops/infrastructure and sharing knowledge). I’m also a user of Gitcoin quests. While I was really enjoying farming some Kudos and learning I noticed some problems that I’m sure you’re already aware of (dead links, limited to 1 ressource by quest, bypass of the timeout, flat view, etc.).

My side projects were mostly focused on education so I though that expending on Gitcoin quests and combining it with open source & decentralized content could be a nice hack. That’s why my awesome team mates and I have been working on a project called Discovery for 2 hackathons in a row (3 weeks each with a lot of research and brainstorm in between).

What ?
Discovery - a gamified learning platform where members of the official protocols team collaborate with content creators and researchers, developers or security experts to create high-quality courses that are built around open source trustable and verifiable content.

Learners will be able to browse courses by topic or project name and at the end of a lesson they’ll go through a quest (could be a simple quizz, a code challenge or an action such as “participate to this hackathon” or ie for a lesson about Ceramic & IDX, a quest could be “create your DID and link it to your Github account”)

Here’s the demo video and some images from the previous hackathon:


How ?
We are using Gitbook to create content (like many other protocols), so we’ve created a Github Action that can be plugged in any repo (Gitbook or code) and the files of the repo will be uploaded to FileCoin and IPFS through web3.storage.

We then generate an NFT that contains metadata such as the IPFS urls/CIDs of the files of the repo, the name of the authors, the Github commit id, etc. We then upload that NFT to NFT.storage and we also create a Ceramic Document that contains the IFPS url/CID returned by NFT.storage.

This will be used as a Token URI in our NFT Smart Contract, so the NFT will be dynamic and it will change every-time the content of the course is updated. The NFT representing the course will have variants (common, uncommon, epic, legendary) and we’ll use Chainlink’s VRF to randomly drop a common or legendary NFT to people completing the quest.

We went for Ceramic and IDX as our main data & authentication layer (it handles relationships between records and structures our data model: learners, contributors, projects, courses, quests)

For the quests, we are using Chainlink to make a GET request from our NFT SmartContract to our Ceramic Instance through an API Consumer contract in order to validate that the requester has the permission to mint an NFT(quest completed & hasn’t already minted his NFT). The answers of the questions are hashed and there is a server side rate limiter that keeps track of the attempts.

When ?
We’ll probably need 4-6 months to get a decent alpha version, 3-4 months to make changes and improvements based on the feedback and then we can do an open beta release (so 7-10 months total)

Needs ?
On monday, I’ve submitted my resignation ! I’m done working for web2 private companies and I’m going to start working full time on open source web3 projects. Discovery would be a great starting point so we’ll need funding to pay:

  • UI/UX designers
  • People deeply involved in web3 education, ideally with technical knowledge
  • Front-end developers (ideally experienced with ThreeJS, that could create a view to explore the Web3 space in 3D but not required)
  • Token engineers (interested in mechanism design and behavioral incentives)
  • More developers, security experts, dev ops (experienced in back-end & Solidity, decentralized storage solutions, etc)
  • Members from Gitcoin to give feedback and to help us co-create the future of decentralized gamified education in Web3.

Kind regards

2 Likes