EthCC Hackathon 2022: Building a decentralized version of Discourse

We are having a shared bounty this year with Ceramic to encourage developers to build a decentralized version of the Discourse forum on top of Ceramic and the Orbis SDK. And another bounty to encourage developers to build a web3 Patreon concept leveraging NFTs and a social layer built on Orbis.

Bounty #1: Decentralized Discourse

Goal: Build a decentralized version of Discourse on top of Ceramic / Orbis

Prize: 2500€ (1250€ from Ceramic + 1250€ from Orbis)

Bounty #2: Web3 Social Membership

Goal: Build the best app around the web3 social membership concept leveraging NFTs and a social layer built on Orbis.

Prize: 2000€ from Orbis

Workshop video

Here is a quick video covering the basics of the usage of the Orbis SDK.

Suggestions for the Decentralized Discourse concept

Here are some suggestions to explain how we would structure this:

  • Each individual forum would be a group
  • This forum/group would have different channels for each topic in the forum
  • Then users would share proposals or discussions as posts in the specific topics/channels using the channel_id as the context.
  • Finally users could reply / comment in each discussions by sharing post with the master or parent set to the initial post_id
  • As a bonus you could even have token gated channels/topics by using the encryptionRules object in the channels and posts.

The great thing if you implement it like this is that it would follow our architecture and because all of the content shared on Orbis is stored on Ceramic using our schemas, every independent forum could also be accessed with UIs built on our SDK (like And the proposals / discussions would also be visible on the feed.

Suggestions for the Web3 Social Membership concept

We would recommend using the token gated concept we have for posts or channels.

  • Posts can be token gated using specific encryption rules in the createPost function. In that case the post is still shared on ceramic but is encrypted by Lit Protocol.
  • The posts then need to be decrypted using the decryptPost function. Only users owning the specific token (can be ERC20, ERC721 or ERC1155) can decrypt the content.


Feel free to ask any questions you might have in our developer-chat channel while tagging @Baptiste, also make sure to use Cerscan to track/debug the streams you are creating on Ceramic.