Introduction
This task aims to answer questions and provide insights into the integration of Roles and Reputations software into Optimism Fractal and the Respect Game. It covers various topics such as project evolution, token standards, app development, smart contract integrations, front-end integration, and future plans for Roles and Reputations. The goal is to provide a comprehensive overview of the project's goals and understand the best potential collaborations.
Table of Contents
- Introduction
- Project Overview
- Token Standards and Collections
- Dual ERC1155 Collection
- Token Standard for Reputation and Respect
- Current Status of Respect
- Questions about Roles and Reputation
- To Do
- Integrations with Hats Protocol and Respect Eligibility Module
- Implementing Roles and Reputation into the Fractal and Respect Game apps
- Improving Visibility for Respect in the Front-End
- Building a Scoreboard
- Embedded Wallet and Account Abstraction Integrations
- Integrations with EAS
- ENS Integrations
- Novel Features with Roles and Reputations
- Tracking Entities’ Trust in Relation to Each Other
- Community Gardens
- Mutual Respect Networks
- Fractal Referral Systems
- Higher order fractals
- Educational Institute and Grants Foundations
- Other Considerations
- Branding of Respect vs Reputation
- Reputation & Roles Factory and OP Rewards
- Conclusion
- Current Status of Respect
- Questions about Roles and Reputation
- To Do
- Personal Respect with Lifetime, Redeemable, and Transferrable Tokens
- Auxiliary Tokens
- Consensus as a Service
- Claiming Hats Manually or Automatically
Project Overview
- How much has the project evolved since you wrote the Optimism Mission proposal?
- I see the critical milestones on Optimism governance were set to complete in April. Are you still planning to continue further development for Optimism?
- If so is there a roadmap, direction, or goals which you are aiming to achieve?
- Is the goal of this project still to become the open source bedrock upon which all sufficiently decentralized entities tackle the challenges of defining and assigning reputation & roles through a permissionless and decentralized system?
- How could this work if it’s maximally successful in 1, 5, or 20 years? How would it look?
- What are your main goals with the project and in general?
Token Standards and Collections
Dual ERC1155 Collection
- Is there still a Dual-Token ERC1155 Collection with Redeemable and Lifetime tokens?
- Does the same ERC1155 Collection include both Redeemable and Lifetime Tokens?
- I see that there is now a transferrable token in the front-end. Is this part of the collection and is it now a Tri-Token ERC Collection?
Token Standard for Reputation and Respect
Current Status of Respect
- We’re currently considering if we should migrate the Optimism Fractal Respect token to an ERC 1155 token standard.
- The current implementation of Respect uses a unique combination of ERC721 and ERC20 token standards which allows you to see Respect in both ERC20 (fungible) and ERC 721 (nonfungible) token interfaces.
- Here is the Github repository with the current Optimism Fractal smart contracts.
- Tadas said that the best and most recent explanation of the contract’s design can be found here. You can read the explanation in the ‘background’ section near the top of the page if you’re interested. Tadas wrote this page in February to explain the unique design of the contract and improve how Respect displays in block explorers. At the end of the page he also considered the possibility of migrating the Respect token to an ERC-1155 standard.
- For more details and rationale, you can see Tadas explain how the smart contract implements interfaces of both ERC20 and NFT standard for the Respect token in this video. If you’re interested in learning about the philosophy originally behind this design, you could also see this blog post and video clip for more details.
- I’m wondering if implementing Roles and Respect could make it easier for us to migrate to ERC-1155 by adopting an open-source and well supported standard that includes many helpful integrations out of the box.
- After Tadas wrote the explanations linked below, I did a lot of research wrote the following page: Consider migrating to ERC-1155. This page includes reasons why I think that we should migrate Respect to a ERC1155 token standard and questions about doing so
Questions about Roles and Reputation
- Would Roles and Reputations work with the current implementation as well or only if we switched to ERC1155?
- We’re currently using a non-standard implementation of token standards for Respect where Respect can be viewed as both ERC721 and ERC
- We’re thinking about migrating Respect to an ERC1155, as you can see in this task: Consider migrating to ERC-1155
- Can the ERC1155 implementation accomplish all the same benefits as the current implementation with ERC721 and ERC20?
- Benefits of the current implementation include:
- Ability to set roles and permissions on a time basis (ie set councilors as top 6 respect earners over the past 12 weeks)
- This can also be flexibly used in other many ways too, such as sending awards or rewards to people who participated in OF Season 2 based upon the Respect earned in that season
- Ability to see total amount of Respect in addition to visible NFT for each token
- Would it make sense to use ERC 404 instead of ERC1155 or ERC721 and ERC20?
- I watched Jacob’s video about Trash NFT’s and learned about ERC 404. I organized details about ERC 404 in Consider implementing ERC 404 Token Standard for Respect.
- My intuition is that it’s probably better to use a more proven and supported standard like ERC1155 than ERC404, but the fact that ERC 404 uses a similar design to Tadas’ implementation is enticing….
- Does ERC404 token standard work with Roles and Reputations instead of ERC1155?
To Do
Integrations with Hats Protocol and Respect Eligibility Module
Implementing Roles and Reputation into the Fractal and Respect Game apps
- Over the past few months, we’ve been scoping and designing an application that makes it easy for communities to play the Respect Game and coordinate their governance with fractal decision-making processes. As we’ve been exploring features and designs for these apps, I’ve realized that that there is likely a need for two different apps: a Respect Game app and a Fractal app. Both of these apps are intended to make it easy for anyone to play the Respect Game, but they differentiate in their focus.
- The Fractal App is envisioned as a comprehensive app for communities and organizations to coordinate their operation with the Respect Game at weekly events (like Optimism Fractal). This includes governance features like voting with respect, forming councils, and social media networks for the community to interact between events. The Fractal app features one community token (such as OPF) that can be used to coordinate the activities and decision of the community. It is largely inspired by the original design of fractal communities at fractally.com.
- We’ve started coordinating the development of both of these apps in the following projects. Much of the work on these projects is currently in an internal Optimystics database and will be shared in the public Optimism Fractal projects as soon as possible.
- I’m wondering if/how Roles and Reputations can be integrated into both of these apps. These apps will share much of the same technical infrastructure and it seems to me that Roles and Reputations can provide much of what we need in these apps. The following sections provide an overview of some of the questions and features under consideration that may be related to Roles and Reputations:
- Can Roles and Reputations help enable the following key features we’re seeking in the Fractal and Respect Game apps?
Improving Visibility for Respect in the Front-End
The user interface enhancements, such as card views for displaying Respect, can make the Respect Game more engaging and accessible. This can also fix current issues experienced with the Optimism Fractal software. By visualizing Respect akin to a card game, communities can tap into the familiar and popular mechanics found in games like Pokémon or Magic: The Gathering, potentially increasing participation and interaction.
- This can be a solution to Improve Visibility for Optimism Fractal Respect
Building a Scoreboard
- Can the Roles and Reputations software enable the us to build a scoreboard for Respect?
- This could also be useful for Build Scoreboard for Respect and other components in our projects to Build Optimism Fractal App and Create Respect Game app
- Would it make sense and be possible to integrate the dual/tri ERC1155 Collection Front-end into the distribution of Respect tokens after a Respect Game?
- Some people might like to mint transferrable tokens and give them to their group after playing the game, whereas some people might prefer to just use lifetime and/or redeemable tokens
- It may be ideal to provide the option may be provided to the game host or the players to choose what kind of tokens they want to distribute after the game. This could be a very interesting new dynamic for the game, though we should also be careful to maintain simplicity so as to avoid overwhelming players
- Would there be a way for people to restrict whether accounts can restrict incoming token transfers i they don’t want them?
- I asked chatgpt about this somewhere and can search for it, though it’s not a big priority now. We can deal with issues of spam when they arise in the future
- Does it make sense for Vlad to also integrate this kind of ERC1155 standard for the automatic respect distribution flow for community admins/hosts as well?
Embedded Wallet and Account Abstraction Integrations
We are designing the user experience of this app for a community of older people who are not very technically savvy and have no experience with Web3, so we’re planning to use Privy and account abstraction with a paymaster account. This will make it so that the participants can simply sign in with their email and post consensus results onchain without needing to pay gas or having any knowledge about know how to use a blockchain account.
It’s very important that the UX is really smooth for this community because they are paying customers and we need to provide them with the most intuitive and enjoyable experience possible. I’m wondering if Roles and Reputations can help facilitate integrations alongside embedded wallet solutions like Privy and account abstraction services in a consumer app like this that can easily be used by grandparents.
- Will Roles and Reputations work with smart wallets in this way?
Integrations with EAS
- Could we also integrate Roles and Reputations with the Ethereum Attestation Service and Attestation Station as well so that every time the reputation/respect tokens are minted there is also an attestation with a Respect Game schema?
- We have a project to do this here where you can find details:
ENS Integrations
- We want to make the front-end for our apps compatible with ENS and I’m wondering if the Roles and Reputation front-end may help with this.
- We have a project to do this here where you can find details:
- Can Roles and Reputations facilitate the integration of ENS?
- Is Roles and Reputations already integrated with ENS?
Novel Features with Roles and Reputations
The following sections feature innovative features that we’ve been exploring for Optimism Fractal and it seems that Roles and Reputations may help enable. The first idea is about enabling features for Personal Respect in the Respect Game app and the following ideas are related to the goal of the Roles and Reputations to track trust upon for Respect between entities’.
Tracking Entities’ Trust in Relation to Each Other
Below are ideas and questions about potential integrations with Roles and Reputations and Hats Protocol to track and give Respect based upon another entities’ Respect. The goal of these ideas seem quite similar to the ideas expressed in the Roles and Reputations proposal about how the project aims to enable tracking an entity’s trust in relation to another in a completely onchain and clear way.
We’ve been developing these ideas for the past couple years and I’m very excited about how Roles and Reputations might play a role in actualizing them. It may be better to focus first on the other ideas that are easier to implement first, though these are also worth exploring on a conceptual level to see how we may best collaborate with the Roles and Reputation project going forward. The following sections provide details about ideas related to the following question: How could Optimism Fractal benefit from the ability to enable tracking an entity’s trust in relation to another in a completely onchain and clear way?
Community Gardens
Mutual Respect Networks
Respect Networks are a novel idea for ecosystems where participants can recognize each other's contributions with Respect to measure appreciation for collaborative efforts in a more expansive way across many communities and organizations. Mutual Respect Networks can include both Personal Respect, Community Respect, and any other kind of auxiliary Respect tokens that may be helpful to recognize appreciation for others.
I think these kinds of Respect Networks can work in a somewhat similar way to Community Gardens, but the Respect Network would be based upon the lifetime Respect token and not on a redeemable token. It also doesn’t include the same incentives and rationale, but it could be coupled with a Respect Network of Community Gardens where communities recognize both the lifetime and redeemable tokens of other communities. You can see details about this idea here. You can see ideas about this idea here.
Roles and Reputations may help enable this kind of decentralized graph of Respect and Trust by providing infrastructure for entities to trust each other’s opinions about who to Respect.
I’m wondering if there may be some synergies between this concept and the goal of Roles and Reputations to facilitate trust between entities, as well if the token standard design and front-end implementation of such auxiliary tokens should use the Roles and Reputations software implementation.
Fractal Referral Systems
We’re exploring ideas about implementing a referral system whereby people who invite others to play the Respect Game earn Respect to incentivize and encourage active engagement. This referral system could also be used and integrated with other communities that play the Respect Gamel; and Roles and Reputations may provide a helpful solution to facilitate the ability to refer and earn awards for respected community members. You can learn more about this in this page.
Higher order fractals
Higher order fractals are cooperative structures composed of groups or communities rather than individuals, allowing for scalable and robust consensus processes. This model enhances collaboration by integrating contributions from various groups into unified decision-making, promoting scalability in governance. You can see more about this idea on this related page: Synthesize Higher Order Fractals ideas
I’m not sure if Roles and Reputations is a fitting solution for Higher Order Fractals or if this is a high priority at this point, but am curious if it could be integrated with higher order fractals in the long-term as Roles and Reputations seems to have some similar goals regarding sharing trust between entities.
Educational Institute and Grants Foundations
I’m designing an educational institute and grants foundation called FractalJoy to support the growth of Optimism Fractal and other communities playing the Respect Game. FractalJoy will be devoted towards spreading joy and optimism with various courses and financial incentive programs that closely complement Optimism Fractal. The project is currently mostly private but will be made public soon. There is a lot of potential for FractalJoy to implement the Roles and Reputations with a JOY token that can be explored in the future.
Other Considerations
Branding of Respect vs Reputation
- Could we fork the Roles and Reputation project and call it Roles and Respect instead?
- Would this require much work to change the word Reputation to Respect in the code, front-end, and documentation?
- It’s not a huge priority as reputation is cool and generally aligned with Respect, but Respect is more so a part of our culture and brand experience with the Respect Game.
- Respect is also shorter and has some important meanings that Reputation does not, so if it’s possible to keep the naming consistent with Respect while gaining benefits from the R&R project then that would be nice
Reputation & Roles Factory and OP Rewards
Conclusion
I’m very interested in potential collaborations and integrations with Roles and Reputations. There’s a huge amount of information here and I got much more inspired than expected, so it’s worth considering the highest priorities going forward and determine what integrations might make the most sense. Looking forward to it!
Current Status of Respect
- We’re currently considering if we should migrate the Optimism Fractal Respect token to an ERC 1155 token standard.
- The current implementation of Respect uses a unique combination of ERC721 and ERC20 token standards which allows you to see Respect in both ERC20 (fungible) and ERC 721 (nonfungible) token interfaces.
- Here is the Github repository with the current Optimism Fractal smart contracts.
- Tadas said that the best and most recent explanation of the contract’s design can be found here. You can read the explanation in the ‘background’ section near the top of the page if you’re interested. Tadas wrote this page in February to explain the unique design of the contract and improve how Respect displays in block explorers. At the end of the page he also considered the possibility of migrating the Respect token to an ERC-1155 standard.
- For more details and rationale, you can see Tadas explain how the smart contract implements interfaces of both ERC20 and NFT standard for the Respect token in this video. If you’re interested in learning about the philosophy originally behind this design, you could also see this blog post and video clip for more details.
- I’m wondering if implementing Roles and Respect could make it easier for us to migrate to ERC-1155 by adopting an open-source and well supported standard that includes many helpful integrations out of the box.
- After Tadas wrote the explanations linked below, I did a lot of research wrote the following page: Consider migrating to ERC-1155. This page includes reasons why I think that we should migrate Respect to a ERC1155 token standard and questions about doing so
Questions about Roles and Reputation
- Would Roles and Reputations work with the current implementation as well or only if we switched to ERC1155?
- We’re currently using a non-standard implementation of token standards for Respect where Respect can be viewed as both ERC721 and ERC
- We’re thinking about migrating Respect to an ERC1155, as you can see in this task: Consider migrating to ERC-1155
- Can the ERC1155 implementation accomplish all the same benefits as the current implementation with ERC721 and ERC20?
- Benefits of the current implementation include:
- Ability to set roles and permissions on a time basis (ie set councilors as top 6 respect earners over the past 12 weeks)
- This can also be flexibly used in other many ways too, such as sending awards or rewards to people who participated in OF Season 2 based upon the Respect earned in that season
- Ability to see total amount of Respect in addition to visible NFT for each token
- Would it make sense to use ERC 404 instead of ERC1155 or ERC721 and ERC20?
- I watched Jacob’s video about Trash NFT’s and learned about ERC 404. I organized details about ERC 404 in Consider implementing ERC 404 Token Standard for Respect.
- My intuition is that it’s probably better to use a more proven and supported standard like ERC1155 than ERC404, but the fact that ERC 404 uses a similar design to Tadas’ implementation is enticing….
- Does ERC404 token standard work with Roles and Reputations instead of ERC1155?
To Do
Personal Respect with Lifetime, Redeemable, and Transferrable Tokens
We’re considering implementing a feature into our upcoming Respect Game app that will enable anyone to give out their own Personal Respect to fellow players at the end of the game.
This can be a very powerful way to promote the adoption of the Respect Game and potential integrations like Roles and Reputations. It can also be combined with a wide variety of different types of Respect Games via fun prompts. You can see some details about the idea of Personal Respect in this note.
I’m wondering Roles and Reputations might be able to help solve some of our questions for this kind of feature development. Here are some product requirement needs and questions that we need to resolve to implement this kind of feature:
- Send the minted tokens to other players in the same action
- Preset the amounts of Respect to send to other players
- Could we standardize the amount of Respect given out with Respect/Reputation for each game (ie ERC1155 with amounts of 55, 34, 21, etc)?
- Enable each player to personalize the image and/or text field of their personal respect (as explained here).
- Can the Roles and Reputations smart contracts help with these? Or would it make sense for us to develop our solutions with the Roles and Reputations open-source code?
- Can the Roles and Reputations front-end software enable each player to personalize the image and/or text field as they issue Personal Respect tokens after each game?
- Or perhaps this feature can be added to Roles and Reputations with a tool like Scaffold.eth?
Community Gardens is an idea where individuals can create "seeds," or redeemable NFTs, as a reward for their contributions to the community. The ability to generate these seeds is directly tied to the amount of respect each member earns from the community, ensuring a merit-based system. The more respect a member accumulates, the more seeds they can create, which can then be redeemed for various utilities or benefits within the ecosystem. You can see details about community gardens in this article and in this video.
I’m wondering if the Roles and Reputations could synergize and enable this kind of functionality. It could also be branded in different ways with similar functionality, though the ideas of community gardens is very interesting and seems to fit best. It’s also possible to identify the redeemable NFTs as something like fruits or plants instead of seeds, but so far seeds seems to be the best way to make this work. In this example, players would earn Respect as the lifetime token and a redeemable token called Seeds.
- Could the Dual-Token ERC1155 Collection with Redeemable and Lifetime tokens be useful for Personal Respect and the ideas of planting community gardens?
- If so, this could potentially be incredibly helpful…
- Perhaps we could deploy the Roles and Respect software into the Respect Game and Fractal app as we migrate to ERC1155, which could also enable the powerful primitive for non-fungibility out of fungibility where people can make collectively redeemable tokens along with their personal respect?
- People could give out their personal respect in each Respect Game (or elsewhere) and allow others to redeem goods and services (perhaps explained in terms of planting a seed)
Auxiliary Tokens
We’re exploring ideas of issuing new forms of Respect to recognize the work of all kinds of leaders in the Optimism Collective, such as an OPC token that enables various stakeholders in the Optimism Collective to vote using methods and tooling like Respect Trees or Cignals that is being pioneered at Optimism Fractal. The OPC token could also be used at events like the Optimism Town Hall to help facilitate structured, Respectful discussions with Cagendas. You can see more ideas for auxiliary tokens in this note.
Consensus as a Service
We’ve thought a lot about how fractal communities can interact with each other and how Optimism Fractal can interact with other communities like the Optimism Collective. You can see some notes about this in this note. The goal of Roles and Reputations is closely aligned with fostering trust between entities based upon Reputation which has some similaries with this idea of consensus as a service, so I’m wondering if Roles and Reputations could be useful for this and generally building a web of trust amongst communities.
- How might the Hats Protocol integration with Roles and Reputation affect Optimism Fractal?
- We’re exploring ideas to create a flexible and granular Respect Eligibility Module that enables roles to be set based upon Respect
- You can see some discussions and code created by Spencer Graham for this here or details about modules here
- Essentially we'd be able to say that to be eligible for a given hat, a wearer would need to have earned X respect within the last Y periods, where X and Y are configurable/customizable on a per-hat basis
- In theory could also do more complex stuff like "must have at least Z total respect, with X of that respect earned over the last Y periods”
- Does the Reputation token in the R&R project have it’s own eligibility module?
- Could the Roles and Reputation project integrate with a Respect Eligibility Module to be able to have this kind of flexibility and granularity based upon time periods of Optimism Fractal?
- Would there be advantages of integrating with Hats Protocol through Roles and Reputations or does it make more sense to integrate Respect directly with Hats Protocol?
- Is there any big difference in terms of time/resources required or features enabled?
- Is there much custom logic or programming built into the Hats Protocol implementation in Roles and Reputations?
- I just added these questions to a task called Consider creating Respect Eligibility Module with Hats Protocol
Claiming Hats Manually or Automatically
- Does the hat need to be claimed on the UI or can it be programmatically sent to the participant when they reach a certain level of Respect?
- Currently i think it needs to be claimed, but a bot or admin could send it without action from participants
- Ideally we’d have the option to configure it either way since both options are desirable in different use cases
- I think Spencer answered this question well, though I’m curious if it would be best for an admin to do this manually or if we should explore some solution where bots call the action (similar to how 0xSplits offers this feature). It’s not that big of a priority now though either way and manual claiming is good enough for the near term