Community-bound Tokens
{"type": "project", "title": "Community-bound Tokens", "logoImg": "bafkreigjceomdcxyhjw25ozmmlciyllyq3dvdjy2xwqzvpniews6zo7u2u", "website": "https://trooplabs.lol", "bannerImg": "bafkreicrpd6bksi4y5et27u5fpar3lr2v355uo3rlqgou3bw744sexsqb4", "createdAt": 1692052574087, "userGithub": "chazzaoui", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..hJuP73KKFaQXe6VurHLKsu520ZWnllH9gBgEd10g4KF1bdARcJvXwwviJ2-pIEmTKXGGpoGAlCcOPNq_lpnJCg", "type": "Ed25519Signature2018", "created": "2023-08-14T23:14:42.950Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-08-14T23:14:42.950Z", "expirationDate": "2023-11-12T23:14:42.950Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x84e1056eD1B76fB03b43e924EF98833dBA394b2B", "hash": "v0.0.0:r10Ibx/DVsUpETyiFdHIJ52s/Dc34lSkmoHAPicGiRg=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#TroopFinance#104836687"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..purO2xnod9YuYvBU-11dYWBn7hjoVsBne3xUF4E5rQqRm1qlkOib2aqn2iHx6zC2dnPJHL21jlkTmhwp2P3yBQ", "type": "Ed25519Signature2018", "created": "2023-08-14T22:35:12.651Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-08-14T22:35:12.651Z", "expirationDate": "2023-11-12T22:35:12.651Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x84e1056eD1B76fB03b43e924EF98833dBA394b2B", "hash": "v0.0.0:LoVKpBF8pXCVavjnP4eTGEqHdmMzu1IVxS/8P+6aiKM=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#communitybound_"}}}, "description": "Community-bound Tokens (CBTs) are modified ERC-20 tokens that can only be transferred among members of a community, which can be used for reputation, community merit based governance, opt-in social credit score, coordination games or engagement scores.\n\nCommunity-bound Tokens (CBTs) are tight to a specific community of members (or a group of addresses), as defined by mathematics (cryptographically) through for example memberships of a multi-signature wallet, an ERC-721 or a membership Soulbound token.\n\nThe philosophy behind it is, that although Soulbound NFTs can be used as badges, it's hard to quantify them for reputation, and mostly require more work, since they need to be done one by one.\n\nCBTs allow communities to decide how much they value certain actions and how many reputation points they attach to them. Preferably these actions are onchain so the CBTs can be dropped automatically to the earners, but they can also be off-chain by allowing the community to give CBTs retroactively based on a performed activity in the real world. Later on, these tokens can be used as a merit-based governance, for reputation, as a community credit score for under-collaterlised loans, or any creative ways the community can think of.\n\nFor this specific example project, with which we were finalists at ETHGlobal Paris, we forked a Safe{Wallet} and added a social layer to it. The purpose was to showcase how you can attach a specific value of CBTs to specific actions inside a Safe, and make a multi-sig more engaging to interact with by adding a Feed/Chat and reputation points to the proposed actions. When a proposal is passed, the proposer receives the reputation points (RP) that are attached to these specific types of proposals. They can range from proposing a new member, to proposing swaps, buying an ENS, or putting the community treasury to generate yield.\n\nSince the creation of the Community-bound tokens a couple of weeks ago, another team built another use-case around it for the Superhack, and we received a lot of interest from web3 communities who want to implement this to measure the engagement of their members, and gamify their communities\n\nHow it's Made:\nWe modified two parameters of the standard ERC-20 token to make it transferable to only a whitelist of addresses that comes, for example, from a Safe.\n\nThe deployed ERC-20 can only be ownable by community members, which in this case can only be added by the Safe multi-sig owner (the Safe itself). The functions mint() and transfer() can only be executed by the members of that community.\n\nWe forked Safe{Wallet} and integrated Push Chat into it. We then used Hardhat to deploy our custom made ERC-20 Community Bound Token to Sepolia, Linea, Gnosis Chain, Mantle, Zetachain and Celo.\n\n", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "TroopFinance", "projectTwitter": "communitybound_"}