Logo
  • About
  • Learn
  • Build
  • Lead
  • Explore
  • Connect
RSVP
Logo

About

Home

Intents

Events

Account

Feedback

Learn

Videos

Show Notes

Welcome Guide

Benefits Article

Optimism.io

Build

Optimystics Tools

Code Repositories

Community Notion

Development Hub

Lead

Sages Council

Snapshot Space

Optimism Town Hall

OTH Topics

Explore

Related Events

Youtube Channel

Optimystics Blog

Eden Fractal Blog

Connect

Discord

Farcaster

Twitter

Contact

DiscordXGitHubYouTube

Review answers to follow up questions for Spencer in Hats Protocol + Optimism Fractal chat

Context

Review questions and answers in Respond to Spencer about Hats Protocol and Optimism Fractal UpdatesRespond to Spencer about Hats Protocol and Optimism Fractal Updates
No access
No access
‣

Welcome Zaal! Thank you for joining. I know you’ve been thinking about integrating the Respect Game and Hats Protocol with your musical communities and am excited to hear more about your plans. Feel free to share any thoughts related to Optimism Fractal, Hats Protocol, or integrating these kinds of tools with your communities :)

image

Amazing, thank you for sharing. I love the vision and reading the blog post helped me better understand the potential of Hats Protocol. The interoperable programmable graph sounds really cool and it’s exciting to think about how network effects accrue from each integration with Hats. I also enjoyed listening to the recent recording of the Hats Town Hall about this 🧢 🙌🏽

After reading the article I shared it with AI to draft some documents about benefits of integrating Hats Protocol in Optimism Fractal, potential roles for Optimism Fractal, and an overview of synergies between the Respect Game and Hats Protocol. The documents are early works in progress and I’ll write more soon, but it might be helpful for inspiration now and anyone is welcome to improve upon them. I’ve also been continuing to update other parts of the project to integrate Optimism Fractal with Hats Protocol and can share more details soon…

Welcome Zaal, thank you for joining!

Feel free to share any thoughts related to Hats Protocol, Optimism Fractal, and/or integrating the Respect Game with your communities :)

image

You’re welcome! Sounds good, I’m interested to hear your ideas and looking forward to our chat. Let me know when is good for you, I’m travelling now but can meet later in the week or next week if you’d like

Thanks so much for all the answers, that’s very helpful to know!

Here are some follow up questions:

  1. What happens if a community wants to change or update an agreement? For example, suppose a community wants to start with a very simple agreement that’s only a couple sentences long then add to it and release a new version(s) that participants would need to sign again in the future.
    1. Would this require deploying a new instance of the Hats Agreement Module again, giving out new Hats, and updating permissions to require the new Hats whenever the community wants to update the agreement?
    2. If so, how much time and resources would it take to do so? What would happen with the old hats?
    3. If not, is there some easier way to update an agreement that doesn’t require deploying a new instance of the module?
    4. I recently watched the video clip of the Hat-claim mini app with the All In For Sport’s claim page featured a Hats Town Hall and see that this Hat is mutable. Does this mean that the agreement is mutable without needing to change the Hat as well?
    5. Would it be possible to only give a membership Hat to people who sign the agreement AND who are invited into the community by another account (or x accounts) that have a Hat? For example, this could be used to create a qualification requirement whereby newcomers must sign an agreement and be invited onchain by 3 members who have earned x amount of Respect (perhaps in the past y weeks) in order to join the community.
image
‣
image
  • The timestamp actually starts at about 44:45
  • All In For Sport's claim page: https://claim.hatsprotocol.xyz/10/78.1.5
  • Video No access
  1. How much time and resources would it take to set up the agreement module? What would be the next steps?
image
  1. How much time and resources would it take to set up a Respect Eligibility Module? What would be the next steps?
    1. I’ve also been doing a lot of research into @jacob’s project for Roles and Reputations and am wondering if it uses it’s own eligibility module or if it could be integrated with a Respect Eligibility Module. If we implemented the Roles and Reputation project into Optimism Fractal, then would we also still be able to use a granular and flexible Respect Eligibility Module like you described in this message?
    2. We’ve been considering migrating Optimism Fractal// Respect to a ERC-1155 token standard and I recently learned about the ERC-404 token standard, which bears some similarities to the Respect token’s current implementation that displays in both ERC-721 and ERC-20 interfaces. I’ve curated research about potential migration to ERC-1155 here and ERC-404 here, but we haven’t yet decided on the best token standard to use going forward. Would you recommend that we decide if we’ll migrate to a different token standard before creating a Respect Eligibility Module (and do you have any thoughts on what token standard might be best)?
image
  1. Would there interdependencies between the agreement module and the respect eligibility module? Or would these be these entirely separate modules that are deployed independently of each other?
image
  1. How independent is Hats Protocol from the ProtoDAO and Haberdasher Labs?
    1. I see this section of the new blog post about Hats Protocol’s dedication to being a credibly neutral core infrastructure with immutable smart contracts that developers can depend upon, so I think I know the answers to these questions… but just want to make sure there aren’t some dependencies that I’m missing.
    2. Is the Hats Protocol code all entirely open source with an AGPL-3.0 license and located in this Github repository? For anyone who’s interested, I just asked ChatGPT about this license and the conversation can be seen here. As a high level overview, the AGPL-3.0 license is a type of open source license that requires anyone who uses the software and modifies it to make sure the original and modified code is available to others.
    3. ‣

      what is AGPL-3.0 license? how restrictive is it? can people fork this software for anything basically without an issue?

      The GNU Affero General Public License version 3 (AGPL-3.0) is a free, copyleft license published by the Free Software Foundation. This license is particularly designed for software that is used over a network. The AGPL-3.0 shares many similarities with the GNU General Public License version 3 (GPL-3.0), but with an additional provision designed to close a loophole associated with server-side applications.

      Here's how the AGPL-3.0 works and its restrictions:

      1. Source Code Disclosure: Similar to the GPL, the AGPL requires that the source code must be made available to users of the software. However, the AGPL stipulates that if a program is run over a network, the source code must also be made available to all users interacting with it over the network. This is the main distinction from the GPL, which does not require distribution of source code for network use.
      2. Derivative Works: If you modify AGPL-licensed software, or create a derivative work, your modified version must also be distributed under the AGPL. This means any modifications must also be open sourced under the same terms.
      3. Network Use is Distribution: Under the AGPL, using the software over a network is considered as distribution of the software. Therefore, any service that uses software licensed under AGPL must make the source available to its users, which does not apply under the standard GPL.

      Regarding forking the software, here's what it means:

      • Forking: Anyone can fork (i.e., create a personal copy of the source code repository) an AGPL-licensed project. However, if they distribute the forked software, especially in a networked manner, they must do so under the same AGPL license. This includes making their modifications available as source code to users of the software.
      • Restrictions: The main restriction is about maintaining the copyleft nature of the license. If the software or any derivatives are used in a networked environment, the AGPL requires that the complete source code be made available to any user of that network service. This can be restrictive for some commercial uses, as companies might not want to share modifications or proprietary extensions they have added to the software.

      Thus, while the AGPL-3.0 is quite permissive in terms of allowing people to use, modify, and share the software, it imposes strict requirements on transparency and sharing improvements, especially in networked use cases. This can potentially limit its suitability for certain commercial applications where companies prefer to keep their source code private.

      image

      Explain in simpler terms. Also, does the AGPL 3.0 mean that an entire app needs to use the same license or just the component of the software that uses the AGPL 3.0 code? Is there any barrier to deploying AGPL 3.0 license or can someone just easily select it in GitHub?

      ChatGPT

      Certainly, let's break down the AGPL-3.0 license and its implications in simpler terms:

      What is AGPL-3.0?

      The AGPL-3.0 license is a type of "open source" license that requires anyone who uses the software, and modifies it, to make sure the original and modified code is available to others. This license is particularly focused on software that is used over a network (like web applications).

      Key Points of AGPL-3.0

      1. Share the Source Code: If you use AGPL-3.0 licensed software, and you run it on a server that people access over a network, you must make the source code (including any changes you've made) available to those users.
      2. Modifications Must Share the Same License: If you change or add to the AGPL-3.0 software, the new program must also be shared under the AGPL-3.0.

      Scope of the License Requirement

      • Just the Component vs. Entire Application: If your application only uses a part (component) that is AGPL-3.0 licensed, you generally do not need to apply AGPL-3.0 to the entire application. However, the AGPL-3.0 is often considered "viral" in that it can affect how you distribute your entire application, especially if the AGPL-covered part is not merely "used" but integrated deeply into your application. The interpretation can vary, so it's often a good idea to consult with a legal expert on how this might apply specifically.
      • Barriers to Using AGPL-3.0: Choosing to use the AGPL-3.0 license for your project is straightforward. On platforms like GitHub, you can simply select AGPL-3.0 from a list of licenses when you create or update your project's repository. There are no technical barriers to selecting this license; the main considerations are about your willingness to share your modifications and understanding the implications of networked use.

      Conclusion

      Using the AGPL-3.0 license means committing to sharing your software in a way that benefits the community, especially when your software is used over a network. It doesn't necessarily apply to your entire application unless the AGPL-3.0 components are integrated in such a way that they become inseparable from other parts of the application. Deploying or selecting the AGPL-3.0 license is easy on platforms like GitHub, but understanding and managing its implications requires careful consideration.

    4. How dependent is the Hats Protocol code on the ProtoDAO and Haberdasher Labs? Do either of these organizations have custody or ability to change the Hats Protocol code that we deploy in our apps and community?
    5. If we decide to use Hats Protocol for critical infrastructure like an agreement or automated council that changes based upon Respect, then would this create risks or vulnerabilities for us if there are changes from the ProtoDAO or Haberdasher Labs?
    6. Are there any other dependencies of Hats Protocol’s that someone building a business with the protocol should be aware of?
image
  1. Is there anything that builders using Hats Protocol should be aware of with regards to upcoming changes to the OP Stack or Ethereum protocol (such as EIP 3074 or 7702)? For example, do you expect that apps using Hats Protocol will have any interruptions in service or experience large upgrades in the near future? I know this is a rather general question with many potential answers so feel free to be brief of course, but I mainly want to confirm that we’ll be able to provide a seamless experience for clients and be aware if there are any expected reasons why issues may arise.
image

More details

work on No access
work on No access
  • I think the first version of Joshua’s app may be better to deploy without hats if it takes much time
    • The first version could just have his own contract for neothink and then they wouldn’t need Hats as much, but Hats would still be helpful to implement at first if it’s easy enough and there may be a lot of develop support to do this now
  • I can scope out multiple buckets with different iterations over time
    • V2 or V3
      • WebRTC Integration
      • Livepeer Integration
      • Personal Respect?
      • Provable Randomization
      • Private Voting with Shutter
      • Shared Consensus Algorithm Game Mode Option
      • Roles and Reputations
        • Mighty Network Spaces Integration
        • Claiming can be claimed by admin, bot, or user
        • We can call hats ‘badges’ or something else if joshua prefers
      • Decentralized front-end via Psinq, ICP, etc
      • Automated smart contract by Respect or Delegates

1. How to Create/Admin Community in Fractal App with Hats

I’m exploring a design for an app where participants register to join a fractal community by signing a brief agreement, then automatically receive a Hat that signifies that they are a member of the community. I’d like to design it so that participants are only eligible to play the Respect Game in this community if they have the member Hat for the community.

I’m wondering how this would technically work and at what point the Hat would permit access to the game. In this design, could the lack of a Hat prevent participants from interacting with the contract or joining the game lobby? Or would it technically work better to make it so that people can still join the game but can’t earn Respect unless they have a Hat?

image

Follow Up Questions

see if i should inclide any of the follow up questions or if i already asked all of these
  • How much time and resources would it take to set up agreement? what are the next steps?
    • No access
  • how much time and resources would it take to set up Respect Eligibility Module? what are the next steps?
    • Explore and Test Integrations with Respect Eligibility ModuleExplore and Test Integrations with Respect Eligibility Module
  • Does the agreement module require respect eligibility module or is this separate?
  • I think i remember seeing an open-source front-end for the agreement module as well. Is this true? Is there any additional work required to set up front-end for agreement?
  • Review Watch Hats Protocol Town Halls
  • Is the Hats Protocol entirely independent from the ProtoDAO and Haberdasher Labs?
    • What are Hats Protocol’s dependencies?
    • If we decide to use Hats Protocol for critical infrastructure like an agreement or automated council that changes based upon Respect, then would this create vulnerabilities for us if there are changes from the ProtoDAO or Haberdasher Labs?
    • Is the Hats Protocol code all entirely open source?
    • How dependent is the Hats Protocol code on the ProtoDAO or Haberdasher Labs? Do either of these organizations have custody or ability to change the code that we would deploy in our app and community?
  • Can we make Account Abstraction work with Hats Protocol where only people with Hats can get gasless transactions sponsored by paymaster on this app / smart contract?
    • Would this be easy to configure for our clients that may want to create their own smart contracts using our code?
  • Can we make account abstraction work to give gas-less transactions to both metamask users and privy users can get free transactions?
    • Is this a Hats specific question or more general?
  • Is there anything we should be aware of with regards to Hats Protocol, our app development, and upcoming upgrades to Ethereum protocol changes or upgrades (such as EIP 3074?)
  • Explore Integrations with Hats Protocol and EASExplore Integrations with Hats Protocol and EAS
  • See No access for more questions

Review the following earlier questions

‣
https://t.me/hatsprotocolandoptimismfractal/60

Questions for Spencer

See No access for more questions

I want to build app that enables people to give hats to people in their community who are eligible to log in to play the respect game and earn respect
how much time would it take to set up agreement?
Does this require respect eligibility module or is this separate?
Would it be possible to give a hat to people who sign the agreement but only to people who are invited by the host/admin/council or someone in the community?
Would it be possible to make it so that only people who have the hat could play the game and join the breakout group or earn respect or have consensus submission count?
Can Account Abstraction work with Hats Protocol, where people with metamask can get free transatctions on this app if they have the hat?
x.com

x.com

‣
Spencer Graham on X: "@hatsprotocol And crucially, because Hats is an open-source and immutable smart contract protocol, they get all the above without taking on platform risk" / X