project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

DAO-Gamify

Gamify DAO is a dApp to manage tasks for micro-participation and reward them using game mechanisms (XP and LVLs). Members can take tasks and submit proof of completion while admins can create tasks and verify completion.

DAO-Gamify

Created At

ETHNewYork 2022

Winner of

🚀 Optimism — Just Deploy!

Project Description

Our solution is named “Gamify DAO'' and as the name suggests it relies on game mechanisms such as experience points and levels. Gamify DAO is a dApp with two distinct user pages. The core team of a DAO has to whitelist some addresses as Admins who can create tasks, set deadlines for these tasks and experience point rewards. The second type of users who are DAO members can then, on a different page, select the tasks they wish to do and submit proof of completion. Afterwards, Admins can either check if the task was done or if the user submitted a fake proof and refuse their entry. If a user submits fake proofs of completion three times, his wallet address will be banned. Our solution doesn’t rely on discord or telegram which are two popular group messaging tools used by DAOs. It is directly linked to the wallet address of the user and by rewarding them NFTs and ERC-20 tokens, the core team can give them privileges on the group messaging platform of their choice (E.g : Gated chatrooms for high level members). Hence, this is a platform agnostic solution for a platform agnostic problem. We invited community to try it out, and got 400 voluters and 14k bots=) There's definitely potential there.

How it's Made

Centralized backend on node-ts, with monga (trying tatum),that calcults the xp point and schedule the tasks, keep track of jobs. front-end is react-ts + wallet connect (helps a lot on mobile devices and able to work with gnosis-safe) and chose l2/sidechain frameworks. there was lots of challenges, nothing worked from the first time, here some system details: Implementation minMVP

  1. web-page for DApp Landing page with information Add task page (for admins) Tasks information Job page Verification page

  2. Data formats

  • task: { // Ex. Like some fb post id, description: string, proof_format: json, reward: number, repeats: number, status: {active, completed, canceled}, onCompleteCall: url, minLevel: number }
  • job:{id, task_id, user_id, proof: json, status: {opened, pending, approved, denied}} // task of user
  1. API for Gamefi DAO: Green = can be used in frontend now createTask(name, description, xp, deadlineMs) Returns 200 or 503 getTasksToVerificate(userAddress) // proofs that should be returned are equal to completeTask proofs Returns { taskId, name, description, xp, proofs: Record<string, string> }[] confirmTask(taskId, isConfirmed) Returns 200 or 503 getTasks() Returns {id, name, description, xp, deadlineMs}[] takeTask(userAddress, taskId) Returns 200 or 503 getUserTasks(userAddress) Returns { id, name, description, xp, deadlineMs, proofs: string[] }[] сompleteTask(userAddress, taskId, proofs: Record<string, string>) // for example if proofs for task were ‘userName’ and ‘commentUrl’, so we will send { userName: ‘someuser’, ‘commentUrl’: ‘https://link-to-comment’ } Returns 200 or 503 Need to think about LVL and XP

confirm(event_id, isConfirmed, sender) getTaskToProve(sender)

Senders - regular & priviledged, banned (if > 3 wrong approvals) If confirmed - mint X tokens to approvers If not confirmed burn tokens from those who mistaken or ban if > 3 wrong

  1. smart-contract DAO_NFT (ipfs), vestingNFTmcap(chaink), level. levelUp(address) accessControl
background image mobile

Join the mailing list

Get the latest news and updates