Reputation DAO is a soulbound, on-chain reputation system built on the Internet Computer Protocol (ICP) using Motoko.
Create a transparent, tamper-proof trust layer that lets any community issue, track, and manage reputation points.
-
Members earn reputation points for contributing value (good actions, reliable work, provable impact) as defined by each organization.
-
Reputation points are non-transferable ("soulbound") β they stay attached to the wallet/identity that earned them.
-
In case a wallet is lost or compromised, the system offers optional recovery logic.
-
To ensure relevance over time, reputation includes a freshness factor:
repWeight = baseRep * freshnessFactor -
All activity is fully on-chain, verifiable by anyone.
--> get your plug principal id --> paste that plug id in main.mo like shown below
stable var owner : Principal = Principal.fromText("<your-principal-id>"); # Start local replica
$ dfx start --background --clean
# Deploy canister
$ dfx deploy --network playground
ps : this playground will only host the backend for 20 mins
copy the canister id generated by playground
Reserved canister 'reputation_dao' with id 2uurk-ziaaa-aaaab-qacla-cai with the playground.--> paste this canister id inside frontend/src/components/canister/reputationDao.ts as canisterid
cd frontend
npm install
npm run devSee main.mo for method docs and logic.
In many communities, trust is:
- Scattered
- Unverifiable
- Centralized
Reputation DAO makes trust on-chain: open, auditable, transparent, and portable.
This section outlines how Reputation DAO functions in four distinct domains.
Use Case: Reward meaningful posts, helpful replies, and verified contributions.
- User: Posts or contributes content.
- Moderator (Admin): Authorized to mint reputation.
- Reputation DAO Canister: Manages on-chain data.
1. User submits a helpful post.
2. Moderator reviews and approves.
3. Moderator calls:
awardRep(userPrincipal, 5, "Helpful reply in #tech-support thread")
4. Canister validates and records it.
5. Userβs reputation updates publicly.
Use Case: Freelancers and teams earn rep for task completion; clients can verify credibility.
- Freelancer: Completes work.
- Client (Admin): Awards rep after task verification.
- Frontend Platform: Interfaces with DAO.
1. Freelancer completes a task.
2. Client verifies and calls:
awardRep(freelancerWallet, 10, "Landing page completed on time")
3. Canister updates reputation.
4. Future clients check rep via getBalance().
Use Case: Contributors earn rep for PRs, bounties, and governance participation.
- Contributor: Completes contributions.
- Maintainer / DAO Admin: Awards or revokes rep.
- DAO Frontend: Uses rep for governance/voting.
1. Contributor merges PR.
2. Maintainer calls:
awardRep(contributorPrincipal, 20, "Smart contract PR merged")
3. Reputation updated and recorded.
4. Used in DAO voting.
5. Abuse handled by:
revokeRep(contributorPrincipal, 20, "PR flagged as plagiarized")
Use Case: Reputation acts as a verified skills badge or learning progress indicator.
- Student: Completes a course or task.
- Instructor (Admin): Verifies and awards rep.
- LMS/Frontend: Displays credentials.
1. Student finishes module.
2. Instructor awards:
awardRep(studentPrincipal, 15, "Completed Blockchain Basics Module")
3. Rep shown on student profile.
4. Recruiters verify via getBalance().
5. Tags (e.g., "blockchain", "frontend") categorize achievements.
- Soulbound: Reputation cannot be transferred.
- Controlled Minting: Only trusted awarders (e.g., HR manager, team lead) can assign rep.
- Daily Mint Limits: Prevent abuse and inflation.
- System Revocation: Admins/system can revoke fake or farmed rep.
- Public Ledger: All actions are visible and verifiable.
- Written in Motoko
- Stores balances, award logs, daily mint limits
awardRep(user: Principal, amount: Nat, reason: Text)
revokeRep(user: Principal, amount: Nat, reason: Text)
getBalance(user: Principal): Nat
getAwardHistory(user: Principal): [AwardLog]- Web/mobile compatible
- No gas fees for users β backend handles all transactions
-
Other dApps or DAOs can fetch rep to:
- Gate access
- Modify privileges
- Weight votes
- Tamper-proof trust system
- Transparent and verifiable
- Portable across ecosystems
- Fully on-chain and decentralized
- Modular: Easy to extend with perks, tags, or categories
-
Build Motoko canister
-
Deploy to ICP testnet β then mainnet
-
Connect to any frontend/bot
-
Implement/test award + revoke + balance logic
-
Prepare:
- Open-source repo
- MIT/Apache license
- README + demo video
- []
main.mo+dfx.json(Deployed Canister) - [] Clear Documentation
- [] Demo Video (Award/Revoke flow)
- [] Defined Rules for Minting, Revoking, Usage
Reputation DAO is a modular, transparent, and secure reputation framework for communities, teams, and decentralized organizations.
Built on the ICP stack with Motoko, it transforms human contribution into on-chain credibility that canβt be bought, sold, or faked.