A template for the future of decentralized governance was deployed over 513 days ago and most of us didn’t notice.
Read below for a meat-packed review that will feed your decentralized soul and restore your faith in what’s being built.
Here’s how @nounsdao works under the hood.
I Spent the last couple of days studying the nuts and bolts of how @nounsdao contracts work and are interconnected. I Scrutinized the design trying to find centralization vectors.
I’ll detail my motivation for this search, how Nouns DAO works, and how it was made.
But first, a DISCLAIMER. At the moment of writing I don’t own any Nouns. I have bid on some but haven’t won, and will probably own at least 1 Noun in the near future.
It was at this moment that I realized that the centralized manner in which the world works only came to be because a decentralization enabling technology hadn’t been born yet.
E.g., if Bitcoin had been invented before banking, banks wouldn’t exist in their current form.
Many have been shouting about decentralized governance and DAOs ever since, and some have launched “governance” tokens that aren’t designed to govern, just to signal.
A typical incarnation of this is @SushiSwap. Sushi’s treasury and admin parameters are controlled by a multisig.
$SUSHI token holders vote on proposals and hope that the multisig will honor their voting outcome.
That’s a step in the right direction, but not nearly enough. We’re definitely selling governance short, while it’s been proven that the tech is ready for full decentralization.
In comes @nounsdao, which held to its promise of true decentralization and also introduced an innovative minimally-Ponzi-ish way to bootstrap liquidity to its treasury.
How does it work?
In short, every day, forever, @nounsdao auctions/mints 1 NFT, called a Noun.
The ascending-bid ETH-denominated auction lasts 24 hours, and is extended by 5 minutes every time somebody bids within the last 5 minutes.
When the auction is done, the winner gets the NFT transferred to their wallet, and the DAO treasury receives the $ETH.
The Treasury currently contains over 29k ETH in value.
Each NFT represents 1 vote in the DAO (more on that later). Worth noting that after every 9 NFTs are minted and auctioned, the ‘nounders’ (Nouns founders) get 1 NFT sent to their wallet (free).
Gracious that nounders decided to pay themselves in their own NFT vs. royalty or $ETH.
Interesting to note that as opposed to most NFT collections, Nouns DAO NFTs are “backed” by actual reserves: $ETH and other assets in the treasury. Current mint price to NAV is 35:50.
The vision of the DAO is to leverage the Treasury to disseminate the Nouns brand.
In theory, this creates a flywheel effect where future Nouns can be auctioned for more and more ETH as the brand and appeal grows.
The DAO executes dissemination through grants, funding devs, charity, and traditional marketing.
All actions that the DAO takes are born as proposals. Owning Nouns allows you to create and vote on proposals. Proposals are on-chain actions (e.g. sending ETH, transacting with a contract).
To this day, 172 proposals have been created, and the majority have passed.
One Noun, every day, forever. Nouns DAO is an experiment on the Ethereum blockchain.
Some that stand out are:
1. Donate 5 ETH to each of 6 charities
2. Send a Noun to the International Space Station
3. Set Voting Period to 5 days and delay to 2 days
4. 1000 ETH grant to Nouns Builder Protocol
It’s worth noting that many projects have been born from the Nouns philosophy, @lilnounsdao being one of them. As a thanks to the Nouns DAO, they kickback 1 out of every 10 Lilnouns to the Nouns Treasury, which now contains 672 Lilnouns.
This is a part of the Nouns “business model”.
Now on to the mechanics. @nounsdao is composed of 5 core contracts:
1. NounsToken (the NFT)
2. NounsDAOExecutor (aka the Treasury)
3. NounsDAOLogic (aka Governance)
4. NounsAuctionHouse (aka the daily auction)
5. NounsArt (the on-chain NFT art)
ERC-721 that is Checkpointable, meaning there’s an account of how many tokens each address had at any point in the past of interest (used to calculate voting power).
Also of note, the art associated to the NFT is on-chain in SVG format via an NFTDescriptor.
The contract is Ownable, and the owner has capacities which change the NFTs’ behavior (e.g. setting a new descriptor) in effect being able to add new traits for NFTs to be minted in the future.
Owner is set to the NounsDAOExecutor, meaning the DAO is the token contract owner
Where the treasury’s funds live and proposals are executed. Think of this contract as the DAO’s wallet, where arbitrary DAO-approved transactions are executed.
E.g. adding NFT art traits, changing DAO parameters and sending funds, all go through here.
The interesting thing about this contract is that it has an admin, but the admin is itself (so in effect –> the DAO).
Here’s where it gets really interesting.
As the name suggests, if the Executor is the DAO’s wallet, this contract is the DAO’s brain.
All the voting logic happens here. Approved proposals get queued and then executed by the Executor.
Tech-savvy readers might have noticed that the Logic contract is really a Proxy. At first, this might seem like a centralization vector, but it isn’t.
Most DAOs of major dApps use Proxies enabling the controlling multisig to switch logic in and out as new versions are deployed.
But Nouns DAO eliminates the centralization vector by making the Logic Proxy admin the DAO Executor contract.
The implementation has actually already been switched out (V1 -> V2) once, as can be seen in proposal #152, voted in by the DAOLogic and executed by the Executor.
So, the current DAO logic resides in this contract.
This contract handles the daily auction, and is also a Proxy contract (also administered by the DAO Executor) that delegates logic to an implementation that to this date hasn’t been changed.
This contract has minting privileges so does the daily mint and settles the daily auction, sending the NFT to the winner and the $ETH to the DAO Treasury (the Executor contract).
Believe it or not, this is one of the most complex contracts in the whole package, as to reduce gas expenditure, art code (SVG) is stored in compressed format. So the contract requires low level EVM interactions and opcodes which are out of the scope of this thread.
I encourage you to study Nouns and study the code.
I hope this review was enough to convince you that this DAO implementation is near* perfect and serves as a basis for the future of DAOs, and that true decentralization is possible.
*perfect whenever veto capacity is eliminated