Hashspace Karma System
channel engagement ❤️ —> token rewards 📈
Created on 27th June 2024
•
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
Social Track
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.
