Most social media and content aggregation platforms use "likes" to curate content. Reddit is an example of that. Engaging material receives more likes and rises to the top, low quality submissions remain obscure. Users compete with each other for these likes for the sake of personal satisfaction and "clout" despite them having no commercial value.

However in this system there is a particular kind of contributor that is under-appreciated. Most users sort content by popularity, and as such simply view and like or dislike some of the posts with the most likes, effectively contributing nothing to curation, and leaving no real impact on the site.

Some users however sort by "new", viewing the most recent submissions, good or bad, and judging them. They sift through the bad, and find the good. Their judgement leads to certain posts gaining traction, and consequently, they are far more influential than those who simply look at popular content, and their decisions make the system work. However, these users are not all made equal. Some of them boost content that ultimately does not become popular. Others might have a better sense of what the crowd will consider good and they choose things that turn viral.

They are similar to savvy investors who correctly pick undervalued stocks before the masses put their money into them.

Eris seeks to incentivize these discerning users, by rewarding them with tokens when they are right and early, and taking tokens from those who are wrong or late. As a result, original posters (who are always the earliest to boost) are also rewarded for their good posts, and all users are incentivized to find undervalued content, on Eris or elsewhere, and boost it or post it.

What it does

Eris' design was inspired by content aggregators such as Reddit and Hacker News. Users can create their own "subroots" (similar to subreddits) which are independent, and independently moderated. Through a Solana transaction, a post can be created, as well as replies to a post, and so on. No Eris tokens are required for posting, the only cost is the transaction fee.

By depositing Eris tokens into a post, a user "boosts" it; the more Eris tokens are in a post's pool, the higher it is boosted. This is analogous to "likes".

Whenever a user deposits their tokens into such a pool, they receive "shares" of the pool in exchange for their deposit. These shares can later be redeemed for Eris tokens from the pool. However, the amount of shares the user receives is such that they will initially only be holding enough to claim 95% of the amount they deposited by redeeming them. Therefore, depositing results in an immediate 5% impermanent loss. Effectively, that 5% is being "distributed" between every user who previously deposited into the same post's pool, because their shares will be worth more. Eventually, if enough users deposit enough afterwards, one will be able to break even and make a profit. However, the more have already deposited before you, the more the pool would have to grow before you make a profit. Users would know this, and avoid investing in posts that are already "pumped", as there is no chance for profit. In any case the maximum loss (in Eris) is the initial 5%. There's an additional 2% protocol fee on top of the full boost amount, which will be used to reward liquidity providers for the ERIS/USDC pair.

Private Subroots

A subroot can be marked as private, meaning only the creator can create posts in it; anyone can boost or comment on posts. This is equivalent to a blogging system, and could be compared to Twitter, or any other microblogging platform.

How we built it

Eris was built with Anchor on the smart contract side, anchor's Typescript library along with React on the client side, and Aleph and IPFS for the storage of post content. At the moment indexing of posts is centralized, but we are hoping to move to Aleph VMs for that in the future, and are in talks with them regarding that.

Challenges we ran into

Solana's rent depends on the price of SOL, it rises with it and so does the cost of posting on Eris. We are working on a system to make ephemeral posts that can avoid being rent-free and disappear after a while. There is a way we can do it without pool investors losing all their money when the post is deleted. This system is already in the contract, but not yet enabled.

Indexing was a big challenge. Originally we built an on-chain solution which was functional, but proved expensive and was not scalable. We decided to move to Aleph's MicroVMs, though at present we use a centralized content indexer. Users who wish to be independent can run their own instance.

TheGraph does not seem to support Solana yet.

Accomplishments that we're proud of

Creating a fully decentralized alternative to a form of social media. We believe there is demand for this, however without an incentive for participating, the barrier of having to pay for Solana transactions is very high. We think the incentives we built can attract users and create a community that is worth being a part of in itself.

What we learned

The blockchain is not the solution for everything, even if Solana is much cheaper than other blockchains. Protocols such as Aleph or TheGraph can allow for entirely new classes of applications to be created without centralized parts.

What's next for Eris

  • The moderation system is in the smart contract, but needs further testing and integration into our front-end.

  • Decentralized indexing is a big priority.

  • Eris would benefit from a name system for users and subroots. We will likely integrate with Bonfida's name system for that. Subroots should be reachable from their names, and users will have their username displayed. Currently we use PDAs and wallet addresses.

  • If SOL's price continues to rise, and rent does not decrease, we will have to implement our strategy of letting users make ephemeral, non-rent-free posts that disappear. Users boosting will be able to contribute SOL to the continued existence of a post, and even if the post is deleted, at least the 95% of a user's initial deposit will be recoverable.


Join our discord: Website:

Built With

Share this project: