I like the idea of a reputation token standard and have been thinking about it as well.
Here are some of my thoughts:
Reputation tokens are hard to earn, but easy to burn.
Reputation tokens cannot be transferred (period), but can be minted and staked.
Reputation token supply is inflationary. Total supply of reputation tokens is constant increasing so that reputation loses value over time and must be continuously earned for an owner to maintain their share of reputation tokens.
There are lots of things to work out, but a real-world example has helped me think about this. I started life as a physicist, but switched to finance ages ago. My first job in asset management had an interesting flat culture. The management team rotated every year. My office was next to the founderās grandson and was the same modest size. No corner offices. Also, everyone in the investment team bent over backwards to help me. It was great. The way it was explained to me, everyone was enthusiastic about helping me because the sooner I got up to speed, the sooner I could help them. Sounded great. But when my first annual review came around, I learned there was a more pragmatic reason why everyone was trying so hard to help me. I received an odd email saying that I had 10 points that I could allocate to colleagues with a maximum of 5 points to any one person and could allocate to at most 10 people (1 pt each). I didnāt have to allocate any if I didnāt want to. The basis for allocation? We were to allocate points to colleagues who we felt had helped us do our jobs better the previous year. Bonuses were largely influenced by how many points you received. I always thought that was a great was to incentivize a helpful culture. Now, it seems like a total no-brainer to tokenize this concept.
With this in mind, I am thinking that once someone has achieved a certain level of reputation, e.g. maybe owning 1 reputation token, they are periodically, e.g. once a month, allowed to mint (not transfer) a limited number of tokens to others who they feel have helped them or helped the project.
The natural use case for reputation tokens would be DAO governance as means to combat the current plutocracy of purchased governance tokens. Rather than buying votes, you earn votes via reputation and you vote on initiatives by staking your reputation on them. The amount you can stake is tracked similarly to how allowance is currently tracked in ERC-20.
Need to think about Sybil attacks. Maybe some kind of modified quadratic voting?
Edit: Btw, if there is a non-transferrable token standard, I think it should also contain a consent mechanism, e.g.
Reputation tokens cannot be transferred (period), but can be ā¦ staked.
This is contradictory. Staking implies transferring. Or more specifically, staking means not being able to transfer something that you were previously able to transfer.
As I regularly get approached by people about Soulbound tokens, and especially now at devcon, Iāve pointed people here a couple of times already. I think the idea of fungible but non-transferrable points, aka experience points, resonated with many people. Iād encourage you to pursue this @dtedesco1 further.
Hey, just wanted to add that Iām using this EIP as a starting point for social tokens that can actually be redeemed for prizes. This is for an NFT project who has a āpointsā system for people who buy an NFT from the collection, or buy physical art from the artist behind the project. The social points are then used to redeem prizes (like 10% off) on the artistās shop and burned. The concept of having an operator (the artist in this case) and non-transferable (between individuals), non-valued tokens is a perfect fit for what weāre wanting to experiment with.
Iāll come back to post my implementation once I have it done, but just wanted to say that I really appreciate the thought put into this EIP, which gave me a much-needed starting point for this project. I look forward to seeing where it ends up!
EDIT: Wanted to post what Iāve put together in case anyone is curious to see a non-perfect implementation
In addition to what @0xThresh is working on, itād be great to have more implementations during the Review stage. Do you want to share what your working on @donnoh and we can see if itās a good fit?
Iām trying to implement a DAO model focused on education where a teacher (or coordinator) gives access to others via non-fungible SBTs (credentials) and can grant voting rights using fungible SBTs (karma points) based on course votes or other virtuous behavior. The teacher has a fixed amount of karma (like 50% initially) so the DAO tends to decentralize over time. I already implemented non-fungible SBTs following ERC-5192 which is compatible with EIP-712, so I thought it would make sense to also have fungible SBTs to be compatible to ERC-20, what do you think?
This use case sounds compatible. EIP-4974 ratings are similar to fungible SBTs, butāunlike ERC-20-like tokensāratings can be negative, in case you need to identify malicious or low reputation accounts. This may be useful in a highly decentralized environment. Happy to discuss more over DM/call, and even help write some code, if you want to try implementing. Let me know.
Iām sure the normies will love getting pegged with unwanted titles they didnāt ask for. Especially ones that come from authorities they donāt necessarily wish to associate with.
āDaddy government, I paid the bribe and served the time, can you please remove that title from my universal identity account?ā
Maybe someone else is who you donāt want the title from, and whom refuses to remove it. In that case does the target user demand to speak with the Ethereum department manager, or should they call you directly to complain about the ruining of Ethereum?
Layer 1 doesnāt āneedā a social credit system.
Itās important to consider potential nefarious use cases of any potential standard. The issues you raise are noted in the Drawbacks section of the latest version of this EIP:
Drawbacks
One potential drawback of using this standard is that ratings are subjective and may not always accurately reflect the true value or quality of a contract or wallet. However, the standard provides mechanisms for updating and removing ratings, allowing for flexibility and evolution over time.
Users identified in the motivation section have a strong need to identify how a contract or community evaluates another. While some users may be proud of ratings they receive, others may rightly or wrongly receive negative ratings from certain contracts. Negative ratings may allow for nefarious activities such as bullying and discrimination. We implore all implementers to be mindful of the consequences of any ratings systems they create with this standard.
As itās is still in review, feel free to make suggestions on how to improve this section or other parts of the EIP.
I discussed with my team and int8 seems too low for our purposes. Our app is meant to decentralize over time and it accomplishes this with inflation. int8 cannot inflate meaningfully over long periods of time.
I recently implemented a soulbound fungible token for a reputation system. Instead of being non-transferable it is rather once transferable from issuer to beneficiary and the minting/supply to potential issuers can be implemented independently.
I also made an extension which makes it possible to deposit the earned token as a collateral. That means giving other accounts the authority to burn the token. For example in the case of reputation so that the activities which increase reputation can also potentially lead to a loss of reputation and introduce a risk (as in stack overflow reputation). Like that, tokens can be used to bet in prediction market scenarios to gain new tokens. Or a holder can allow other accounts to burn loyalty points in exchange for rewards.
If you have the time, take a look and let me know what you think of it.