Search projects, hackathons, sponsors and tech

    ← All projects

    Hashspace Karma System

    channel engagement ❤️ —> token rewards 📈

    About

    The problem it 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.

    How it's made

    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