[Proposal] Names - Nouns x ENS

blog-names.png

TL;DR

By integrating the practicality of ENS domain resolution with the distinctive character of Nouns avatars, Names significantly enhances the recognizability of Ethereum accounts. This transformation turns on-chain interactions into a more engaging and inviting experience.

Background

Many of us dream of a time when visiting Etherscan reveals not just complex hexadecimal addresses, but an on-chain world that’s fun and immersive. Instead of interacting with dull accounts, we envision them as characters in a deeper story.

Nouns, along with many early NFT projects, began by championing the proliferation of PFP avatars. While this was a step toward creating a more captivating narrative on-chain, there’s still untapped potential for integrating these digital identities more deeply into Ethereum to enhance user interaction and engagement.

A limitation of current PFP solutions is their incompleteness - there is no direct way to set an NFT as your account profile picture or use it as a way to identify your account. For example, owning Noun 100 does not directly link ‘Noun 100’ with your account in tools like Etherscan or MetaMask.

ENS offers solutions: you can set a designated avatar and use a memorable domain in place of your account address.

These approaches, individually, address only aspects of identity representation and interaction on the blockchain. However, by integrating them, we can create a comprehensive and seamless user experience that bridges the gap between ownership and identity.

blog-names-nouns-x-ens.png

Objectives

  1. Foster Unique On-Chain Personas: Utilize Nouns and ENS to encourage high-quality interactions on-chain, making Ethereum more accessible and inviting.
  2. Promote CC0 Art: Showcase the vast array of Nouns CC0 public domain artwork, emphasizing creativity, openness, and community collaboration.
  3. Increase Appeal of Nouns: Provide additional incentives for acquiring and holding a Noun.
  4. Increase Appeal of ENS: Provide additional incentives for acquiring and holding an ENS domain.
  5. Incorporate Nounish Mechanism Design: Apply permissionless auction mechanisms to ensure fairness and guarantee that Names with high demand are acquired by the most interested bidder.
  6. Spread The Meme: Extend Nouns’ reach with active participation in meme proliferation and cultural storytelling.

Protocol

There is a natural way to derive art directly from the domain itself, which will be used to proliferate CC0 art to domain owners.

In Nouns, art is generated via pseudorandomness created from the blockhash and noun ID:

uint256 pseudorandomness = uint256(
    keccak256(abi.encodePacked(blockhash(block.number - 1), nounId))
);

Similarly, in Names, the art is generated directly from the ENS namehash:

uint256 namehash = uint256(keccak256(abi.encodePacked(BASE_NODE, keccak256(bytes(domain)))));

Just as pseudorandomness determines Nouns traits, the namehash determines Names traits.

The namehash is extensively used as a reference to a domain in the ENS protocol. This ensures that alice.eth will always have unique Name artwork, bob.eth will have theirs, and so on.

Names ensures every Ethereum account can showcase a unique persona. This concept allows further refinement of the protocol with Nounish mechanism design principles for minting Names through two primary avenues:

  1. Bidding in the ENS Dutch Auction
  2. Combining a Noun with an ENS domain

These mechanisms are designed to incentivize participation and promote each protocol, as described below.

1. Bidding in the ENS Dutch Auction

Names incorporates an auction to mint a new NFT, leveraging the Dutch auction built into the ENS protocol for expiring domains.

After a domain expires, the price for a domain decays from $100m over a 21-day period. At any point, a bidder can secure it by sending the current price in ETH. This ensures ENS domains go to the bidder who wants it most. Auction details can be found here.

Names builds on top of this auction by being minted when this registration occurs and setting the appropriate ENS records:

  • The address field is set to the owner
  • The avatar field is set to the CC0 artwork

This provides a frictionless user experience for getting fully set up as an on-chain persona. Names also improves upon the existing ENS Dutch auction user experience by allowing you to set a bid at a specific target price, as opposed to having to wait for a specific date and time to send a transaction:

blog-names-bid.gif

Such a system significantly benefits the ENS DAO, as heightened competition in the Dutch auction leads to elevated bid prices and, consequently, increased revenue.

2. Combining a Noun with an ENS domain

Names will flourish with the active engagement and collaboration of the Nouns community. Therefore, the protocol also incorporates mechanisms that incentivize owning and purchasing a Noun.

Names can be claimed by combining an existing Noun with an ENS:

blog-names-mint.gif

This is a one-time opportunity: once a Name has been minted for a given Noun and ENS domain, that same Noun or domain cannot be used to mint again.

With this alternative strategy, users can acquire a specific domain without waiting for its expiration and subsequent re-registration in the Dutch auction. Such an approach likely appeals to existing ENS domain holders, provided they also own an unused Noun.

Moreover, the Nouns DAO stands to gain significantly: The added utility of Noun ownership drives up auction competitiveness and, by extension, revenue.

Additional Features

Not only will Names streamline the process of personalizing and identifying Ethereum accounts, but it will also introduce a suite of features designed to enhance user interaction and visibility. For example, we will assist users in setting up their domain records, ensuring that their identities are easily accessible:

blog-names-records.gif
These kinds of additional functionalities, while not a target for the initial phase of Names, may be pursued in the future. Anything that can further enhance account recognizability and foster a more welcoming environment is within the scope of challenges Names aims to address.

Funding

To ensure the successful launch and ongoing support of the Names project, we’re seeking a total funding of 70 ETH. This budget will be allocated as follows:

Development and Deployment: 40 ETH

  • Smart contract development for integrating the Names protocol with ENS and Nouns: 20 ETH
  • Frontend development for the user interface and auction system: 10 ETH
  • Security audits and testing to ensure the integrity and safety of the protocol: 10 ETH

Operational and Miscellaneous: 20 ETH

  • Awareness initiatives to engage and inform the Ethereum and NFT communities: 10 ETH
  • ENS and Nouns support for integration efforts, including technical assistance and optimization: 5 ETH
  • Reserve fund for unforeseen expenses and leveraging new opportunities: 5 ETH

The funding strategy begins with a request for 35 ETH from Nouns, capitalizing on its engaged community to set a strong foundation for the project’s early development stages. This initial phase aims to demonstrate tangible progress and value, creating a compelling case for support from the ENS DAO.

Following this, we will present our achievements and future plans to the ENS DAO, seeking an additional 35 ETH to complete the funding requirements. This phased approach underscores our commitment to fostering a more engaging, personalized on-chain experience by bridging two pivotal ecosystems within Ethereum.

Expected Outcomes

With the implementation of Names, we anticipate a significant increase in the appeal and utility of both Nouns and ENS domains. This project is expected to:

  • Enhance the visibility and usability of ENS domains and Nouns avatars, driving up engagement and value.
  • Strengthen the Ethereum ecosystem by making on-chain interactions more accessible and personal.
  • Foster a vibrant community of users who are invested in the creative and functional potential of their on-chain identities.
  • Generate additional revenue for both the Nouns and ENS DAOs through increased domain registrations, renewals, and Noun auctions.

Conclusion

Names represents a unique opportunity to enrich the Ethereum ecosystem by combining the cultural impact of Nouns with the functional utility of ENS domains. Through this project, we aim to create a new standard for on-chain identity that is both meaningful and enjoyable for users, contributing to the broader adoption and appreciation of Ethereum and its communities.

By funding this initiative, the Nouns and ENS DAOs will not only support the development of innovative on-chain solutions but also play a pivotal role in shaping the future of digital identity on Ethereum.

This proposal is draft phase: your feedback is welcome. If you are interested in getting involved, reach out on Farcaster or Telegram.

3 Likes

This is a really fun idea!

Can you clarify the distinction between Names generated on registration, and Nouns associated with ENS names? It sounds like these will be two separate collections (though with identical visual styles); the only way to get a Name with an ENS name will be to register it during the premium period, while the only way to otherwise associate a Noun-style avatar with a name is to own a Noun and make the connection. Is that right?

Assuming the above is correct:

  • What happens if someone registers a new name that isn’t on premium?
  • What’s “in it” for Nouns when a Name is registered? It seems like it would dilute the Nouns brand somewhat and return nothing to Nouns directly.
  • What does “connecting” a name with a Noun do? If it’s just a matter of setting the avatar field, why limit it to once per noun and ENS name?
  • It seems a shame to limit the Names just to registrations on premium; it’s such a fun mechanism, it’d be good to provide a way for people to generate the avatar associated with names they already own.

Finally, are you able to provide credentials/resumes from the team? Is this in any way endorsed by the Nouns DAO?

3 Likes

I’m all for having fun ways to have more NFT avatars. But it seems a convoluted manner. It seems it would be easier if, during registration a user could be shown multiple options (with thumbnail)

  • Pure ENS name (blue thumbnail) $10
  • ENS + Nouns (shows avatar) $15
  • ENS + Punk (avatar) $15,000
    (just kidding on the last one)

But then it’s more a cool idea for a register app than a proper integration.

2 Likes

Thanks for the quick and detailed feedback Nick!

Can you clarify the distinction between Names generated on registration, and Nouns associated with ENS names? It sounds like these will be two separate collections (though with identical visual styles); the only way to get a Name with an ENS name will be to register it during the premium period, while the only way to otherwise associate a Noun-style avatar with a name is to own a Noun and make the connection. Is that right?

Names itself is another collection, and these methods are alternative ways that new Names are minted. The tokenURI is similar to Nouns on-chain SVG - the difference being that the tokenId (which is the namehash, just like in NameWrapper) is the seed for the trait generation.

Whether the Name is (1) minted via auction or (2) minted by using an ENS with a Noun, both outcomes are the same.

Although there is a direct association between an ENS domain and a Name via the underlying namehash, there isn’t a direct Noun token association with a Name token; Option (2) is used just as an incentivization method. It could be removed entirely - but we believe it is good to have as we use Nouns CC0 art for the distinctive look and feel of on-chain avatars.

What happens if someone registers a new name that isn’t on premium?

By “name,” I’m assuming this is referring to an ENS domain; they have 2 options:

  1. Wait until the domain expires again, then register it during the auction.
  2. Hold the domain and purchase a Noun, then use both to mint via option (2).

What’s “in it” for Nouns when a Name is registered? It seems like it would dilute the Nouns brand somewhat and return nothing to Nouns directly.

Since mint option (1) is risky for current holders of an ENS domain (as the auction is permissionless and there is no advantage for previous owners), mint option (2) will be a viable path for many domain holders and has the potential to greatly drive up Nouns demand.

What does “connecting” a name with a Noun do? If it’s just a matter of setting the avatar field, why limit it to once per noun and ENS name?

Names being limited to one ENS is intrinsic: namehash is the tokenId (just like in the NameWrapper collection), therefore only one Name can exist from one ENS.

Names minting being one-time only per Noun makes it so you can’t consume infinite Names per Noun. If this were the case, it would be significantly easier than mint option (1) and there would be minimal increase in Nouns demand.

It seems a shame to limit the Names just to registrations on premium; it’s such a fun mechanism, it’d be good to provide a way for people to generate the avatar associated with names they already own.

We agree! Originally, there was just option (1), but we found many users had their domain registered for years or they did not want to risk winning the permissionless auction for it. This highlights the importance of option (2) as an alternative path.

Finally, are you able to provide credentials/resumes from the team? Is this in any way endorsed by the Nouns DAO?

This is in the early stages of the proposal - with Nouns DAO, it is also in the draft/discussion period. Our plan was to launch with only Nouns funding in the first phase and to have an already established application by the time the final ENS proposal is created.

Though, of course, early endorsement from ENS delegates like yourself will help gain traction and establish this further within the Nouns community.


Really great questions, @nick.eth. Let us know if there are other ideas you have or anything else we could clarify further!

1 Like

@AvsA you’re right one of the primary benefits of Names is the improved UX around registrations and facilitation of the auction mechanism.

It would be interesting to incorporate more PFP collections as well. Because namehash already accounts for TLD (in this case, “.eth”), we could shard different TLDs with different collections, for example:

  • .eth - Punks
  • .wtf - Nouns
  • .xyz - Penguins

Probably not worth focusing on in the short-term, but there’s definitely large design space around this and these ideas are encouraged!

1 Like

I appreciate the time and effort you put into this. Proposals can be challenging. Although this is fairly detailed, I’m not so sure that this would be very useful as infrastructure on Ethereum.

Also to include the very small community of people watching names on auction to purchase are liely to either never know about this or not be interested in using this at all.
Frankly, I’m not exactly sure wgat you are building or the solution that this poses.

This is very niche and targeted towards the nouns community which is quite small when comparing to total number of Ethereum users.

Here you mention one feature that allows users to set domain records.

But then you noted that the feature might not even be used? Why not just do everything at once instead of the future?

I would suggest submitting to a small grants round with details on why this is a compelling project for ENS DAO to fund. Let people vote see what they think.

When is the next round @Ecosystem_Stewards ?

At the risk of sounding like a pest, it seems disingenious to bypass Ecosystem WG funding round for a PFP project and ask for 35 ETH (~ $100,000) while teams building exclusively on ENS are still waiting for funds since September 2023 (which were capped at $10,000). There isn’t enough overlap between ENS and Nouns userbase to warrant such a budget.

5 Likes

Okay, so in case 2 you would be able to use each noun once to generate a new Name - but the noun itself is not associated with the name afterwards? This could be a little confusing since both use the same visual style.

The floor on Nouns is ~8.5 ETH, though, which means that it’s still way cheaper to get a Name via an ENS name that’s in premium. Yes, you could resell the Noun afterwards, but that’s a large investment you’re asking people to make, that people buying names at premium don’t face.

Good to hear. Can you elaborate on your own credentials? Do you have a track record of successful proposals to Nouns?

2 Likes

I knew that Nouns were expensive. The Noun ownership route seems like too much of a financial gatekeeper given the existence of the price premium route.

Could you clarify on how this hooks into the price premium auction mechanism? This certainly isn’t (and shouldn’t imo) be part of the ENS protocol and the current contract code doesn’t have any hook mechanism. Am I missing something here?

Also… please call it something different XD ‘Names’ is going to get very confusing.

2 Likes

Okay, so in case 2 you would be able to use each noun once to generate a new Name - but the noun itself is not associated with the name afterwards? This could be a little confusing since both use the same visual style.

Good point, we plan to adopt a slightly altered visual style to differentiate between them. The goal is to have it recognizable as the Nouns brand while still being unique as its own collection.

The floor on Nouns is ~8.5 ETH, though, which means that it’s still way cheaper to get a Name via an ENS name that’s in premium. Yes, you could resell the Noun afterwards, but that’s a large investment you’re asking people to make, that people buying names at premium don’t face.

Although typically premium ENS domains do not get auctioned for > ~8.5 ETH, some of the highest might (especially as it becomes a less niche mechanic and more interfaces are built around it, which drive competition). IIRC there were a few high-demand domains that went for several hundred thousand dollars in premium.

It’s particularly useful if you have an existing ENS domain and want to get it as a Name. I think huge factors to consider are:

  • time - waiting for expiry + grace period (90d) + auction (21d - buy time) is a long period to wait for.
  • bidding - since the auction is permissionless, if there is outside demand for the name, you will need to pay some non-zero premium amount - lower amounts equate to more risk that someone else bids higher.

So the flexibility from an alternate option may be really nice. The hope is that having both options gives accessibility to users in different situations (e.g. already own an ENS domain, don’t own one but desired one that is about to expire, own a Noun but don’t yet own an ENS, etc).

Good to hear. Can you elaborate on your own credentials? Do you have a track record of successful proposals to Nouns?

Our team has a history of shipping with knowledge of contracts, backend, and frontend. I myself am extremely familiar with the ENS and Nouns protocols, and have a good understanding of everything needed for an full implementation.

Because this jointly-sponsored proposal is divided with Nouns DAO doing the initial funding and development, we will have a working prototype by the time we submit our proposal to the ENS DAO, so we anticipate having a solid foundation and demonstrable progress to present. This groundwork will enable us to showcase the practical application and benefits of our proposal, making a strong case for its adoption by the ENS DAO.

Could you clarify on how this hooks into the price premium auction mechanism? This certainly isn’t (and shouldn’t imo) be part of the ENS protocol and the current contract code doesn’t have any hook mechanism. Am I missing something here?

Indeed it is not part of the ENS protocol itself, and I would love to expand on the interaction with the premium auction.

Our contract exposes 3 functions related to the auction:

  • bid() - send a bid value, privately targetting some domain
  • settle() - use the bid value to register the domain
  • withdraw() - recover the value you sent during bid()

Effectively, it is a two-step process where a user bids for less than or equal to the domain’s price. Let’s break it down with a full example:

  1. Alice sees an expired domain “alice.eth” that is in premium auction, which has already decayed to $2000.
  2. Alice does not want to bid for $2000, instead, she is confident it will decay down to $500 without someone bidding first.
  3. She calls bid() with a value of $500.
  4. After ~1 day, the price of “alice.eth” decays down to $500 and settle() is called.
  5. Alice now owns the domain “alice.eth” as well as the Name.

OR

  1. Bob calls bid() with a value of $1000.
  2. After ~0.5 day, the price of “alice.eth” decays down to $1000 and settle() is called.
  3. Bob now owns the domain “alice.eth” as well as the Name.
  4. Alice calls withdraw() and recieves her full $500 back.

There is some nuance around secrets / commitments that I am omitting for brevity (buying a premium domain from auction still requires going through the normal commit-reval registration flow).

We will provide a frontend to facilitate all of this in a user-friendly way, as well as detailed documentation.

Thanks for the great question, it’s certainly an important aspect to consider. Obviously nothing is set-in-stone yet, it would be great to get your feedback.

1 Like

Can you provide some concrete examples of your work?

This part is still unclear to me. Has the Nouns DAO agreed to fund this work? Do you have a history with the Nouns DAO that makes you confident in having your proposal accepted?

What is the purpose of locking up bids here? Couldn’t users simply commit using the existing flow, and reveal/register/claim using a function on your contract?

We’ll go straight to showing off a demo anyway (see below),

This part is still unclear to me. Has the Nouns DAO agreed to fund this work? Do you have a history with the Nouns DAO that makes you confident in having your proposal accepted?

Proposal has not yet been submitted yet, but initial impressions have been very positive. I will keep you posted with the results.

What is the purpose of locking up bids here? Couldn’t users simply commit using the existing flow, and reveal/register/claim using a function on your contract?

They can do that to! One thing we sought to make better was just making it a one-click, low-gas cost experience. Because a decay occurs in commit-reveal on an expiring domain, there is an opportunity to sponser an otherwise expensive transaction, but of course anyone can call settle().

Demo is live at https://demo.name.bid - Your feedback would be greatly appreciated!

Looks slick! I still have the same questions around viability, though, especially about encouraging people to buy expiring names rather than register new ones (or upgrade their existing ones).

1 Like

Thanks Nick!

One of the things I heard frequently from people getting into Ethereum, which inspired me to start the project, was the most of the good ENS domains are already taken. This resonated with me as I searched through numerous options before finding one that was available.

This led me to appreciate the value of reusing expired domains, which can transition from owners who found no use for them to new owners ready to maximize their potential. Coupled with the existing permissionless auction mechanism, it became evident that this had potential to be a fun nounish project.

Although it might currently seem like a niche aspect of the ENS protocol, I believe the focus Names brings to it will pave the way for broader recognition and adoption of reclaimed ENS domains.