DAOpunks are an experimental attempt to improve the coordination and funding of the CryptoPunks community. CryptoPunks are one of the largest NFT projects by market cap, but the community is completely cash poor. There is no treasury to encourage Punk innovation or to sponsor Punk community events.
Nouns was first inspired by CryptoPunks, and now it's the Punks' turn to be inspired by Nouns. This is an attempt to bootstrap the coordination, governance, and treasury of one of the most recognizable avatars in crypto. LFG!
The DAOpunks Auction Contract will act as a self-sufficient DAOpunk generation and distribution mechanism, auctioning one new DAOpunk every 24 hours, forever. 100% of auction proceeds (ETH) are automatically deposited in the Punkers DAO treasury, where they are governed by all CryptoPunk owners and DAOpunk owners, collectively.
Each time an auction is settled, the settlement transaction will also cause a new DAOpunk to be minted and a new 24 hour auction to begin.
While settlement is most heavily incentive for the winner bidder, it can be triggered by anyone, allowing the system to trustlessly auction DAOpunks as long as Ethereum is operational and there are interested bidders.
Punks govern Punkers DAO. Punks can vote on proposals or delegate their vote to a third party. A minimum of 2 votes (CryptoPunks and/or DAOpunks) is required to submit proposals. Each CryptoPunk and DAOpunk you hold represents one vote in all governance related matters.
For more information on how to delegate your CryptoPunk or DAOpunk, refer to our documentation here.
DAOpunks are generated randomly based on Ethereum block hashes. Scarcity for type, skin tone, individual attributes, and number of attributes is the same as the original collection.
DAOpunks are stored directly on Ethereum and do not utilize pointers to other networks such as IPFS. This is possible because DAOpunk 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 encoding 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 DAOpunk Seeder contract is used to determine DAOpunk traits during the minting process. The seeder contract can be replaced to allow for future trait generation algorithm updates. Additionally, it can be locked by the Punkers DAO to prevent any future updates. Currently, DAOpunk traits are determined using a pseudo-random number generation:
keccak256(abi.encodePacked(blockhash(blockhash(block.number - 1), punkId))
Trait generation is not truly random. Traits can be predicted when minting a DAOpunk on the pending block.
’Punkers’ are the individuals responsible for building Punkers DAO. The Punkers include:
As compensation for standing up Punkers DAO, Punkers (founders) have elected to use the same model used by Nouns DAO's ’Nounders’ for compensating themselves. Every 10th DAOpunk for the first five years of the project (#10,000, #10,010, etc) will be automatically minted and sent to the Punkers's multisig wallet.
Punker distributions don't interfere with the cadence of 24hr auctions. DAOpunks are sent directly to the Punkers's multisig and auctions resume without interruption.