Karam

On-chain Ungamable Social Reputation System—give, slash, and get Karam points redistributed.

Karam

Created At

ETHGlobal New Delhi

Winner of

Pyth Network

Pyth Network - Pyth Entropy Pool Prize

Project Description

NOTE: This is a World mini app that is supposed to run inside the World App

Karam : Ungameable Reputation System 🌟 Core Idea Karam is a social-good + blockchain project that gamifies kindness. Users get karma points they can give, receive, or slash (take away) based on peer judgment. It’s not algorithmic but consensus-driven social scoring, with safeguards against abuse. The vision: “The art of giving / The art of kindness” → a world-wide reputation verified by World Coin, Entropy karam redistribution with Pyth and Rewards on Leaderboard as Special Sub-domains by ENS.

⚙️ Core Mechanics

  1. Initial Setup Every new user starts with 500 Karma. Adding socials (+Twitter, GitHub, etc.) gives bonus +10 Karma each. Each user is verified via World ID (sybil resistance).

  2. Karma Giving To give Karma, you spend from your own points (zero-sum model). Limits: Max 5 karma per person per day. Max 30 karma spend per day.

  3. Karma Slashing You can “slash” (subtract) someone’s karma. But: you lose 1/5th of what you slash. (e.g., slash 10 → you lose 2 yourself). Limits: Max 20 slash points per day total. Max 5 slash points on any single person in 24 hrs.

  4. Random Redistribution Every 25–50 days, Karam triggers redistribution using Pyth Network entropy (VRF). Users <100 Karma → get fixed 30 points. Users ≥100 Karma → get 20% of current Karma. Prevents “karma death” & keeps flow alive.

🔗 Web3 Infrastructure Worldchain / World ID → identity, sybil resistance. ENS subdomains → direct profile search & Leaderboard rewards as Special domain assignments to top leaders. (e.g., god.karma.eth, angel.karma.eth). Smart contracts on Worldchain → manage balances & redistribution. Pyth Network: Entropy → randomness for redistribution cycle. Extension Browser Side-Panel + World App → user interfaces.

📱 App & Extension Flow World App Verify World ID → auto-create account (+ optional ENS subdomain). Show: Karma balance History (last 5 actions) Leaderboard Actions: Give Karma (via ENS, subdomain, address). Slash Karma Receive Karma (history + notification). Browser Extension Sidebar → verify via World ID. On Twitter/X profile → extension maps username → Karma stats (if registered). Can give/slash directly on X profiles.

🔒 Safety & Anti-Gaming Zero-sum constraint → giving reduces your own balance. Rate limits → caps on daily give/slash. Random resets → stop permanent exclusion. Peer judgment only → no algorithm gaming. World ID → no fake accounts.

🏅 Future Plans Karma-based badges/NFTs (god, angel, saint, etc.). Tiered rule sets (higher karma → different limits). Collaborations with other Web3 projects. Gradual decentralization (start centralized, then move logic on-chain).

✨ Why It’s Unique for ETH Delhi It blends social mechanics + crypto infra → not just a DeFi tool, but a social layer protocol. Uses World ID (cutting edge identity infra). Uses Pyth Network VRF. Uses ENS direct profile search & Leaderboard rewards as Special Sub-domain assignments to top leaders. Gamifies kindness + accountability → unlike typical profit-driven dApps.

👉 In short: Karam = social reputation + micro-payments app built on Worldchain, using World ID for identity and Pyth for randomness, ENS subdomains → direct profile search & Leaderboard rewards as Special Sub-domain assignments to top leaders. with an app + extension UX to gamify kindness and accountability.

How it's Made

Description Karam is an on-chain, hard-to-game social reputation system that turns everyday acts of kindness and accountability into a transparent score called Karma. Unlike algorithmic “likes,” Karma is peered and permissioned by humans: people give Karma to reward good actions or slash (subtract) Karma to discourage harmful behavior. Every account is sybil-resistant via World ID proof-of-personhood, so one real human = one account.

What problem are we solving? Online reputation today is noisy, bot-driven, and easy to game. Follower counts and likes don’t capture character or contribution. Karam proposes a verifiable, human-gated, on-chain reputation layer where social judgment—not opaque feeds—drives outcomes. World ID prevents duplicate/throwaway identities, and Karam’s rules (daily caps, penalties for slashing, and randomized redistributions) resist brigading and dogpiles.

How it works (clear rules)

  1. Joining & Identity New users verify with World ID (ZK proof via IDKit), then receive a starter balance of 500 Karma. Linking socials (e.g., Twitter, GitHub) grants +10 Karma each. World ID proofs are retrieved in-app and verified server/contract-side following the official IDKit flow.

  2. Giving Karma (positive actions) You spend from your own balance to give others Karma (zero-sum transfer). Limits: max 5 to any one person per day; max 30 total per day.

  3. Slashing Karma (accountability) You may slash someone’s Karma, but you pay a cost: you lose 1/5th of what you slash (burned). Limits: max 5 slash points per target per day; max 20 total per day.

  4. Random Redistribution (fairness over time) On a random day between 25–50, Karam triggers redistribution using Pyth Entropy (VRF-class randomness). Users < 100 → set to 30 (floor/boost). Users ≥ 100 → +20% of current Karma. This prevents “Karma death,” refreshes supply that slashing burns, and reduces predictability/coordination.

Where it runs World Chain (OP Stack L2) hosts Karam’s smart contracts (Chain ID 480, short name wc, ~2s blocks; Ethereum settlement/DA). Human-centric features like free gas for verified humans and native Mini App distribution make it ideal for a social layer.

World App Mini App + Browser Extension World App (MiniKit-JS): a lightweight, webview-based mini-app surfaces balance, history (last 5), leaderboard, and give/slash actions. Browser Extension (e.g., X/Twitter): on visiting x.com/<handle>, the sidebar shows that user’s Karam profile (if linked) with Give/Slash controls; identity gates use the World ID kits in extension contexts.

Names & recognition (ENS integration) Karam uses ENS to award rotating “trophy” subdomains (e.g., god.karma.eth, angel.karma.eth, saint.karma.eth) to leaderboard winners. We wrap names using ENS Name Wrapper so we can set fuses (permissions that, once burned, can’t be unburned until expiry), ensuring trophies behave predictably. To display live World-Chain scores through ENS lookups, we can use an off-chain/L2 resolver via CCIP-Read (EIP-3668)—mainnet resolution delegates to a signed gateway that mirrors Karam state.

Why it’s hard to game Sybil-resistance: One verified human per account via World ID proofs. Skin-in-the-game: Giving costs your balance; slashing penalizes the slasher (burn). Rate limits: Per-target and per-day caps curb brigading/harassment. Randomized epochs: Pyth Entropy randomness prevents predictable “farm the reset” timing. Transparent, on-chain events: Auditable contract logs on World Chain.

Typical user journey Verify in World App → auto-create account, receive 500 Karma; link socials (+10 each). Use: Give Karma for helpful actions; slash for harmful ones (within caps). See impact: History, notifications, and leaderboard (with ENS trophy names for top users). ENS Documentation Epochs: Every 25–50 days, redistribution uses on-chain randomness to keep the system fair and dynamic.

What makes Karam different Human-first primitives (World ID + World Chain) instead of bot-susceptible metrics. Social consensus over black-box algorithms. Verifiable randomness and explicit costs to discourage abuse. Interoperable identities and recognition via ENS, portable across the wider Ethereum ecosystem.

One-line recap On-chain, human-gated reputation: give, slash, and get fair redistributions—Karam turns kindness and accountability into a portable, verifiable score.

background image mobile

Join the mailing list

Get the latest news and updates