Skip to content
Hashspace Karma System

Hashspace Karma System

channel engagement ❤️ —> token rewards 📈

Created on 27th June 2024

•

Hashspace Karma System

Hashspace Karma System

channel engagement ❤️ —> token rewards 📈

The problem Hashspace Karma System solves

Problem

Communities are built on 3 forms of contributions :
Content creation
Content curation and distribution
Content consumption and engagement
Currently, online platforms reward creators (influencers) who capitalize on the engagement of their followers to drive growth and consumption. However, this approach overlooks the crucial roles of curators and engaged consumers.
How can we reward every form of participation within a community in a manner that benefits all members and incentivizes continuous engagement?

Solution

Karma System: A reward system that acknowledges and incentivizes every community contributor based on verifiable engagement.

How Is Karma Earned:

Content Creators: Earn karma for producing valuable content.
Content Curators: Gain karma by discovering and distributing quality content.
Engaged Consumers: Receive karma for meaningful interactions, such as comments, shares, and likes.

Benefits:

Inclusivity: Every community member is recognized and rewarded for their contributions.
Sustainability: Encourages a virtuous cycle of continuous engagement and growth.
Transparency: Built with Farcaster and on-chain verification ensuring that all engagement and rewards are verifiable

Channel Karma System

The channel karma system operates in epochs with two phases:
1. Accumulation of Points
Engage: Earn points by casting, replying, recasting, and liking within the Farcaster channel.
On-Chain Points: calculated with function encoded on-chain.
Verification: Engagement is verified on the Degen Chain.
2. Claiming Points at the end of an Epoch
Claim Points: Accrued points can be claimed at the end of each epoch.
Token Rewards: Points distribute ERC20 tokens or other configurable token types.
Epochs drive continuous participation and reward cycles.

Challenges we ran into

Product

Building a score system that is an accurate proxy to engagement and resistant to spam:
We devise a protocol that takes a sum of social interactions and produces a point score. In order to prevent spamming, we built a sigmoid dampening function to ensure optimal engagement. This required us to used Fixed Point Math so as not to create to much error

Smart Contract

Building on-chain cast verification(e.g. EDDSA, Blake3):
In order to make the karma system completely decentralized, we had to have the ability to verify social interactions on-chain. Finding an efficient way to verify casts is difficult since Farcaster messages use signature and hashing schemes that are NOT native to EVM ; e.g. EVMS support ECDSA signatures Keccak256 hashing whereas Farcaster uses EDDSA signatures and Blake3 hashes. This led us to use L3 degen chain .
We contributed to a solidity library that performs off-chain EDDSA public key transforms to save ~20% on signature verification.
Optimizing chain storage calls:
We use bit-twiddling hacks for compressed counters to limit storage usage. We compress a number of engagement counters into a single uint256 via bit twiddling hacks. This allows a single storage slot to store 7 social engagment counters ( e.g incoming likes, outgoing likes, incoming replies, outgoing replies, incoming recasts, outgoing recasts, and casts) and build a richer formulation
Creating an on-chain verifiable claim process using Farcaster frame actions:
once we obtained frame action signer data we could reuse our existing on-chain verification logic

Web-App

Handling and indexing the amount of data coming from Farcaster hub consistently:
dealing with potential out-of-order messages
Generating dynamic images for Farcaster frames UI:
used vercel/og library

Tracks Applied (2)

OnchainKit

we used onchainkit to create frames used to check karma scores and claim karma we also used onchainkit's framegear dev t...Read More

Social Track

The Karma System is a social engagement score tracking engine built on top of Farcaster protocol. The goal of karma is ...Read More

SOCIAL with Farcaster

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio