Personalizing Our Hats: A Sewing Proposal 🪡

The Hats Protocol introduces a unique concept where every member can have a “Hat” representing their role in the DAO. These hats are non-fungible tokens (NFTs) that describe the role. The individual who “wears” the hat assumes the respective job role. To foster community involvement, Hats Protocol minted “community hats” as roles and distributed them among community members.

My Thoughts:
I genuinely value my Community Hat and feel privileged to wear it. It symbolizes a promising facet of the decentralized work landscape. However, I believe there’s room for enhancement.

One concern is the fungibility of the hat. Despite being an NFT, it feels identical to other community hats. If our roles were tailored to be more individualistic and detailed, they could better encapsulate our unique contributions to the community.

What do you all think about “sewing” our own personal touches into these hats? By customizing and minting our community hats, we can make them more personal and representative of our skills and contributions.

Technical Considerations:
From a technical standpoint, there are a couple of ways we can approach this personalization. One option is to enhance the metadata of each hat by adding a “wearer description” field. This field would detail the specific role or unique attributes associated with the hat, allowing for a more tailored representation. Alternatively and without development changes, we could opt to mint entirely distinct hats, each with its own unique description, rather than producing identical copies.


This is fascinating! And actually something that another hat-wearer just requested today, so there may be some convergence happening here. “Sewing” is a great meme too. Curious to get @spengrah’s take on the technical feasibility/constraints at play here and what options might be available to us.

1 Like

This is very interesting! I agree with @davehrlichman, the sewing meme is great.

I have a couple thoughts.

First, one of the really beneficial properties that we get from ERC1155 is that a single hat can have multiple wearers. This is valuable for the purposes of granting authorities to those wearers via the hat, since all you have to do is set up the token gating once and then it works for everybody wearing that hat.

Similarly, I think there’s a lot of value in ensuring that the same role — as I’ll define here as a unique permutation of responsibilities, authorities, and accountabilities — is manifested as the same hat. The primary benefit is that we can identify — eg via the hat id — that role without ambiguity.

Meanwhile, I think @punterored.eth’s point is a really good one. There’s something very interesting about infusing a personal expression of identity into one’s own hat, even if that hat is also worn by multiple other people.

So we have a challenge: how might we enable personal expression by wearers of the same hat?

@punterored.eth suggests two potential approaches:

  1. Change the metadata of each person’s hat. Unfortunately, this is not feasible since changing the metadata of one person’s hat will change the metadata for everybody’s hat of the same id. It’s the same hat.

  2. Mint separate hats. This can work, but we want to be careful that we don’t ruin the beneficial properties I described above. Fortunately, the protocol gives us some helpful tools.

The primary idea is to take advantage of the protocol’s semantic id system. Every hat id provides a lot of information about the hat, including its exact location within its tree, which level its at, as well as the id of all of its admins. Another way to say this is that every child of a given hat is in the namespace of that hat.

Let’s take our Hats Community Member hat as an example. It has id Any hat that has id is guaranteed to be a direct child of — in the namespace of — the Hats Community Member hat. There can be up to 65,500+ of these direct children.

Any wearer of the Hats Community Member hat can create a child hat. This is already the case today; it’s how the protocol works. But this could be made easier and standardized by creating a utility that enables wearers of the Hats Community Member hat to create a new personalized child hat, complete with custom details and image. Everybody would then know that a given community member x’s hat is the “sewn” version of their Hats Community Member hat.

We would want to ensure that such hats took the following form:

  • immutable — to ensure that no other Hats Community Member hat wearers could change somebody else’s sewn hat, or transfer anybody else’s sewn hat to somebody else.
  • maxSupply = 1 — to ensure that each sewn hat is unique and personalized to the community member
  • eligibility tied to continuing to wear the Hats Community Member hat — to ensure that if you lose or renounce your community hat, for whatever reason, you also lose your personalized sewn hat

We may also want to establish a registry to create a clear 1-1 mapping between individual community members and their sewn hats, primarily to ensure that if they temporarily lose and then regain their Hats Community Member hat, they can regain their sewn hat.


Great! Sounds like an elegant solution.
Just one point to refinement in the non-tech aspect.
I strongly support the Hat as a Role concept and don’t want the personalization to suggest that the sewing is about the wearer personality or even personal skills.
We should stick to the role aspect of it. The thing is IMO the responsibility should be slightly personalized.
It is true and great that each ERC1155 represents the same Hat and generally the same role, but I think that a little sewing with a little personal stance of how the wearer is planning to wear it, can make the difference (pun intended).

Awesome discussion. I love the sewing meme and the value this could bring. Quick thoughts:

Another way to say this is that every child of a given hat is in the namespace of that hat. […] Let’s take our Hats Community Member hat as an example. It has id Any hat that has id is guaranteed to be a direct child of — in the namespace of — the Hats Community Member hat.

This is a great mental model, I think we’ll likely refer back to this concept a lot.

The thing is IMO the responsibility should be slightly personalized.

I think that may cross into the territory of different Hats. The Community Hat for example has a specific set of responsibilities, authorities, and accountabilities. If there are new responsibilities (or authorities) to keep track of, why not make those their own hat?

@punterored.eth suggests two potential approaches[…]

Third possibility could be to handle this at the application layer by interpolating some custom address-specific data into the details string or the hat image when displayed for each wearer. Would be an opinionated approach, of course, and not all Hats front-ends would handle it out of the box. But for example, you could imagine a hat image for hat that has a space for an address-specific hat pin image that gets combined behind the scenes.

Thanks for sharing!

1 Like

I appreciate you all taking the time to address and discuss.
In the first post, I wrote “personal skills and contributions”. But I think about it a lot, and the discussion is helpful.

Let’s take the Community Hats as an example.
Today, the responsibilities are:


It is linked to the Community Agreements & Code of Conduct.

It is clear and detailed, but I’m asking myself, do I meet my responsibility? Can I take on more responsibilities as a community member? Should it be just a general code of behavior, or can it/should it be things I can do personally? If so, is it the same for all community members? Can we compare how responsible a single wearer behaves to other community wearers, or is it just a thing to avoid - not meeting the responsibility and shamefully losing the Hat?

Those are not rhetorical questions. If the team/community wants fungible community hats and just for the members to be aligned about how to act in the community, it is still Okay, and the Hats are still lovely.

But again, if we can add to the Hats ‘personalized responsibly’, that will drive us to contribute more and better.

That is also fine if we don’t want to touch ‘Responsibility’. We can add it to a different field. It is just that it should be an aspect of the role, and it will be awesome if the wearer can communicate it (like in another topic that I posted).

BTW, I agree that authorities (and accountabilities) don’t need to change, but can’t some community members have the same authorities but different fields of responsibility.

And finally, yes, @nintynick, I agree that perhaps different or another hat with different responsibilities, but this is a way to avoid the need to predefine each Hat and take more responsibility.

@davehrlichman what was the other wearer thinking/requesting?


I like this as a potential idea!

@punterored.eth the other person was requesting something very similar: a way for people who were wearing a shared hat to personalize their hat (or create a dedicated individual child hat) with specific details about their individual approach to the role and/or contributions they intend to make in that role. E.g., there may be many people wearing the Steward hat, but each Steward will have their unique contribution to make as a Steward and thus will play a differentiated role in the ecosystem even when wearing the same hat as others

1 Like