1 Noun. 100 Nounlets. Until they´re gone.
Nounlets are an experiment to allow for collective ownership over an individual Noun.Each Nounlet represents 1% of the vaulted Noun and has a vote in delegating the Noun’s governance rights. The chosen delegate can vote in governance and submit governance proposals (if they have 2 Nouns delegated to them).
Learn more below, or by visiting and reviewing the Nouns DAO homepage.
In addition to participating in governance, all Nounlet owners are invited to join the Nounlets community in our Discord.
Noun owners who want to participate in Nounlets can tribute their Noun to be auctioned. By tributing your Noun, you agree to have your Noun auctioned at any time. You will need to sign a transaction allowing the Nounlets smart contracts to transfer the Noun from your wallet to a Nounlets Vault to be auctioned. If you change your mind, you can withdraw your tributed Noun as long as the auction has not started.
The Tessera team will work with the community to decide which Noun will be auctioned next and when the Nounlets auction will start. Tessera does not guarantee that all tributed Nouns will be auctioned. There is no set cadence that auctions will occur.
The Nounlets auction contract will act as a self-sufficient Noun generation and distribution mechanism, auctioning one Nounlet every 25 minutes until all 100 Nounlets are sold. 95% of auction proceeds are trustlessly sent to the original Noun owner. 5% of auction proceeds are sent to Tessera.
Each time an auction is settled, the settlement transaction will cause a new Nounlet to be minted and a new 25 minute auction to begin. Bids within the last 10 minutes reset the auction timer to 10 minutes.
While settlement is most heavily incentivized for the winning bidder, it can be triggered by anyone, allowing the system to trustlessly auction Nounlets as long as Ethereum is operational and there are interested bidders.
All Nounlet owners will be able to vote on a delegate. The delegate will be elected on-chain in the Nouns contract. The active delegate will be able to vote in governance and submit governance proposals (if they have 2 total Nouns delegated to them). Each Nounlet has 1 vote on the delegate.
Reconstitution is only possible after all 100 Nounlets have been sold. The Noun is able to be purchased and reconstituted (meaning one person buys the entire Noun from the Vault) using what we call an optimistic buyout.
Someone who wants to buy the Vaulted Noun makes an offer to buy the Noun out of the Vault, which the Nounlet holders implicitly accept if the rejection criteria of purchasing all the bidder’s Nounlets are not met.
In this mechanism, the bidder must name a price and put up at least 1 of their Nounlets as collateral. All other participants (whether they currently hold a Nounlet or not) are able to reject this offer by purchasing all of the Nounlets used as collateral at the fixed price proposed by the buyer.
Optimistic buyouts will last for 7 days before being accepted. If all Nounlets are purchased at the implied valuation before 7 days have passed, the buyout ends and is rejected.
Nounlets are generated randomly based on Ethereum block hashes. All Nounlets will have the same head as the Vaulted Noun.
As of this writing, Nounlet traits contain:
You can experiment with off-chain Noun generation at the Playground.
Nounlets are stored directly on Ethereum and do not utilize pointers to other networks such as IPFS. This is possible because Noun parts are compressed and stored on-chain using a custom run-length encoding (RLE), which is a form of lossless compression.
The compressed parts are efficiently converted into a single base64 encoded SVG image on-chain. To accomplish this, each part is decoded into an intermediate format before being converted into a series of SVG rects using batched, on-chain string concatenation. Once the entire SVG has been generated, it is base64 encoded.
The Nounlet Seeder contract is used to determine Noun traits during the minting process. Currently, Nounlet traits are determined using pseudo-random number generation:
keccak256( abi.encodePacked( blockhash( block.number - 1 ), nounId ) )
Trait generation is not truly random. Traits can be predicted when minting a Noun on the pending block.