MVP

[Quest fields stored in chain]

  • Title
  • ERC21 Token used for funding the quest or send bounty to player
  • Description as an IPFS hash
  • Expiration as a timestamp
  • Govern address given by Quest Factory contract
  • Funds recovery address
  • Creator address
  • Creator deposit token and ammount
  • Player Claims array

Create a quest as a CREATOR

  • Title
  • Description with requirements (will be stored as IPFS hash)
    • Details about what the quest entails.
    • What evidence must be submitted by users claiming a reward for completing the quest.
    • The payout amount. This could be a constant amount for quests that payout multiple times, a range with reference to what determines what amount, the contracts balance at time of claim. This shouldn’t be a percentage of the contracts balance though as claims are not guaranteed to happen in order as they can be cancelled, messing up the valid claim amounts.
    • Optionally a whitelist of addresses or set of addresses that can receive rewards for this quest.
  • Funds fallback address (default is Creator wallet address)
  • Expire time
  • Initial funding wich can be zero (used to funds the quest)
  • The creator will have to place a collateral deposit wich will be reclaimable when the quest is expired

List & Filter quests as a USER

  • Simple infinite scroll with last created on top
  • Filtering by :
    • Title
    • Description
    • Expiration
    • Bounty available
    • State (active or expired)

Quest summary

Card containing :

  • Title
  • Description
  • Address
  • Bounty Available

Quest detail

Modal containing :

  • Title
  • Description
  • Address
  • Bounty Available
  • Claim deposit
  • List of Player claiming the Quest containing :
    • Evidence of completion
    • Amount requested
    • Time until Claim challenge delay expiration
  • Claim button
  • Fund button
  • Expire time
  • Creation time

Fund quest as a PATRON

  • Fund button in Quest detail
  • Send fund directly to the token bound to the quest
  • UI fetch the total available bounty

Claim a quest as a PLAYER

  • Player click the Claim button
  • Player provides :
    • Evidence of completion (IPFS)
    • Requested amount
    • His wallet address where claim will be transferred
  • Player should place a collateral deposit wich is restored if claim is executed.
  • Call Aragon Govern Queue with Claim function of Quest contract with a delay of 7 days
  • If any account challenge the claim during this delay, the claim is frozen and the Dispute will be raised to Celeste
  • If the Dispute is ruled in favor of the Challenger, he earns the Player deposit and the Claim is denied.
  • If the Dispute is ruled in favor of the Player, he earns the Challenger deposit and the Claim is immediatly executed.
  • Each time a Dispute has been ruled in Celeste, someone needs to resolve it from the Quests UI.

Challenge a claim

  • Any stakeholder can go to a quest detail
  • If a Claim is pending, it is challengable
  • The Challenger should place a collateral deposit and pay a challenge fee
  • The Claim will then be raised to celeste
  • If Challenger wins the dispute, he collects Player deposit