---
# System prepended metadata

title: General Grant Proposal

---

# General Grant Proposal

* **Project:** Prediction markets for content curation

## Project Overview :page_facing_up: 

### Overview

One could think of decentralised social media as subscription based architecture in which users of the platform subscribe for contents from different access points to be served on UI of their choice. Observing user generated contents on social media today, it's necessary for users to have a layer of content moderation that filters out content that violates given set of policies. Moreover, for the moderation layer to stay fair, it's necessary for moderation layer to be flexible for users and stay decentralised. 

One very interesting, and worth exploring, architecture for a decentralised & flexible moderation layer uses prediction markets on user generated contents at its core. It works as follows - 

There are 4 sets of primary actors involved - (1) Creators (the ones that create a prediction market on a content), (2) Curators (the ones that trade in prediction markets) (3) Moderation committees (a group that resolve markets) (4) Users (the ones that rely on information produced by prediction markets to choose content they want to see).

Whenever a content is posted, Creators can choose to create a prediction market on the content, along with supplying the initial funding, for the market. For example, if content posted has identifier xyz, Creators can create a prediction market for content identifier xyz with outcome tokens YES (content violates content policy) and NO (content does not violates content policy). Creators will also specify address that represents a Moderation committee that will be responsible for resolving the market. Curators are market participants that trade YES & NO tokens of content prediction markets. Moderator Committee is responsible for resolution of prediction markets created by Creators, if the need arises. Note that there can be several Moderation Committee and Creators will have flexibility to choose any of them. Since, content's prediction market gives good estimation of whether a content violates content policy or not, they can further be used by Users to filter content that gets displayed on their UI.

The use of prediction markets is justified for its ability to give accurate estimations, in most cases, about the probability of each outcome in the outcome set (in our case, it's the probability of a content violating policy - YES, or content not violating policy - NO). Thus, the information inferred from trading activity on a content prediction market, can be used for content curation of a user's feed.

One problem that remains is sheer volume of user generated data. It's unreasonable to expect Moderator committees (even if there are several of them) to be able to resolve every market in which they are listed as the arbitrator for market resolution. Expecting so will lead to less thoughtful resolution and burn out, thus in general a very undesirable situation. Therefore, it's necessary to minimise the need for Moderator committees to resolve the market. 

One way that minimises the need for Moderator committees to resolve the market is described as follows - 

Prediction market on a content is set to expire within a fixed amount of time upon creation. Upon market expiration (i.e. no more trades can happen), the market will go into buffer period. During buffer period anyone can put up a stake backing one of the outcomes. If none of the outcomes are backed, then market resolves to the favoured outcome (i.e. the outcome token which is trading at higher price than rest). If someone puts up a stake backing an outcome, then the market enters into double-or-nothing lawsuits type game. If double-or-nothing game isn't able to resolve the market within a limited number of iterations, then market resolution will be passed on to the assigned Moderator Committee. 

I believe a mechanism such as described above, will massively reduce the number of times market resolution is passed to Moderator Committee, thus solving problems mentioned earlier.

### Project Details 

For this grant, I plan develop a low stakes (& fun) model of a moderation layer described above that can be used in production and then further help in developing content moderation of social media in general.

I plan to develop a platform for meme curation that classifies memes into different categories of humours. Users will post memes on the platform, after which prediction markets will be created to determine whether a meme belongs to a specific humour or not. The trade statistics of the prediction market will be used by users of the platform to populate their different humours feeds with suitable memes. 

The platform has 4 primary market participants (1) Creators (2) Curators (3) Moderation Committees (4) Users. Creators receive every user posted meme, on which they choose to create predictions market for predicting whether a posted meme falls under a particular humour category or not. The outcome of every such prediction market is binary, that is YES - the meme falls under the humour category or NO - the meme does not falls under the humour category. Moreover. Curators are market participants that trade YES & NO tokens of the prediction markets, thus signalling the probability of YES and NO. Users, based on the information they infer from prediction markets, can populate their different humour feeds with suitable memes with suitable accuracy. 

Prediction markets can use any token as collateral and will be decided by the Creator. However, I plan on releasing a token (Meme Reputation Token) that will likely be used as collateral by market participants initially. The Moderation Committee for a market will be set by its Creator at time of market creation. Since the markets facilitates trades using AMM, the initial liquidity will be supplied by the market Creator.

#### Technical details
The development will consist of smart contracts + backend (storage and APIs for retrieving and posting memes) + frontend.



## Team :busts_in_silhouette:

### Team members
* Janmajaya Mall ([email](janmajayamall18@gmail.com), [twitter](http://twitter.com/janmajaya_mall))


### Team Website	
* https://github.com/Janmajayamall

### Team's experience


### Team Code Repos
* https://github.com/Janmajayamall/meme-curator
* https://github.com/Janmajayamall/meme-curator-subgraphs
* https://github.com/Janmajayamall/meme-curator-backend
* https://github.com/Janmajayamall/meme-curator-frontend


## Development Roadmap :nut_and_bolt: 

Milestones are be divided into -

(1) Smart contracts (2.5 weeks)

(2) Backend + Designing UI (2 weeks)

(3)  Developing Frontend (2 weeks)

(4) Finalising for testnet launch + writing docs + trying to get people use it. (1 week)

### Overview
* **Total Estimated Duration:** 7.5 weeks
* **Full-time equivalent (FTE):**  1
* **Total Costs:** -

### Milestone 1
* **Estimated Duration:** 2.5 weeks
* **FTE:**  1
* **Costs:** $5500

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 1. | Functionality: Market factory contract | Implements functionality for market creation and fund them. | 
| 2. | Functionality: Market contract |  Implements low level functions for a prediction market including (1) AMM (CPMM or LMSR) to facilitate token trades. (2) resolution mechanism as described above. | 
| 3. | Functionality: OutcomeToken Contract | Implements a ERC20 token contract with added functions making it suitable to be used as Outcome tokens for prediction markets. | 
| 4. | Functionality: Market Router Contract | Implements a router that handles high level & necessary checks for interacting with prediction market contract (Market factory & Market).|
| 5. | Functionality: MultiSig Contract | Implements a MultiSig contract used by Moderation Committees for market resolution.

### Milestone 2
* **Estimated Duration:** 2.5 weeks
* **FTE:**  1
* **Costs:** $4400

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
|1. | Functionality: Subgraphs | Implements subgraphs for indexing market factory and the prediction markets |
|2. | Functionality: Backend & APIs | Implements a node js backend for servicing API requests related to feed, posts, user, moderators, and others. The APIs will be used by the front end developed later for users & moderation committee |
|3. | Functionality: Image storage | Renting a sotrage provider for hosting images|

### Milestone 3
* **Estimated Duration:** 2.5 weeks
* **FTE:**  1
* **Costs:** $4400

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 1. | Functionality: UIs | I will develop UI for - Market Creators to watch posted memes & create markets, Curators to place their bets, Users to explore feeds (plus place bets in-feed), and Moderators committee to resolve markets. | 

### Milestone 4
* **Estimated Duration:** 2.5 weeks
* **FTE:**  1
* **Costs:** $2200

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 1. | Functionality: Testnet launch & Testing| I will testing the platform throughout so that every thing works as expect + prepare for testnet launch.| 
| 2. | Documentation | Will prepare documentation that explains the entire platform & how it works to a general audience |
| 3. | Functionality: Airdrop tokens & Create awareness |The users of the platform will need a way to receive reputation tokens, I believe a sort of airdrop can be done to achieve this. For example, users will have to post about the platform on twitter to receive certain number of reputation tokens to get started. This will help in 2 ways - (1) Fairly, to some extent, distribute tokens (possibly can switch to different way later on) (2)  Create awareness of the platform, thus bringing in more people to experiment |

*Note: We generally expect any grant to be concluded with a written publication such as a blogpost.*

## Additional Information :heavy_plus_sign: 

Preliminary version of prediction markets for contenct curation was deployed [here](http://social-prediction-market.vercel.app). You can find the code [here](https://github.com/Janmajayamall/PM-system).