Gnars is a headless brand that empowers action sportspeople with a shared treasury and tools for collective creation. We prefer a world where kids aren’t shilled energy drinks by their heroes. So we’ve formed a DAO to rethink how shredders get paid.
Based on Nouns open source code and CC0 artwork, each Gnar is an NFT stored fully onchain on Ethereum with no external dependencies (not even IPFS), and each one represents a DAO vote. We received 69 ETH from Nouns DAO to get started.
Create some Gnars offchain using the Playground or win an auction to join!
The Gnars Auction Contract will act as a self-sufficient Gnar generation and distribution mechanism, auctioning one Gnar every 10 minutes, then less often, forever. As per the supply curve diagram shown above, auction duration doubles every 1000 auctions, known as “The Gnarving” and in effect halving the supply emission each time.
Auction proceeds (ETH) are automatically sent to the Gnars DAO treasury and to our founder gami.eth, depending on what balance you set with the bid slider. You can even choose not to reward the founder if you wish. Funds received to the treasury are governed by Gnar owners.
Each time an auction is settled, the settlement transaction will also cause a new Gnar to be minted and a new auction to begin. While settlement is most heavily incentivized for the winningbidder, it can be triggered by anyone, allowing the system to trustlessly auction Gnars as long as Ethereum is operational and there are interested bidders.
Anyone can settle an auction. When an auction ends, a gas-only transaction is required to start the next auction and mint the current Gnar to the winner’s wallet. As gas prices fluctuate, the cost of settlement also fluctuates.
Cost of settlement for every Gnar ID ending in 6 is higher as it consumes more gas. This is due to the transaction also triggering the free Gnar mint: all Gnars ending in 7 are sent to the treasury and held on behalf of the Shredders.
Once an auction starts, everyone has 10 minutes to bid (auction duration doubles every 1000 auctions from #627 onwards). Anyone can bid an amount at/above 0.01 ETH. If your bid is outbid by someone else, the full amount of your bid (minus gas spent to bid) is returned to you in the same transaction as the new higher bid.
Unsuccessful bids are refunded in full. Refunds are sent via an internal transaction included in the transaction of a new higher bid. This means that refunds for unsuccessful bids occur when a higher bid is received.
Gnars DAO utilizes a DAO executor for fully onchain governance just like Nouns DAO. We also have a Safe multisig, which allows for gasless voting on NFT requests by shredders. Gnars DAO is the main governing body of the Gnars ecosystem and the treasury receives whatever percentage of ETH proceeds bidders choose at time of bidding.
Each Gnar is an irrevocable member of Gnars DAO and entitled to one vote in all governance matters. Gnar votes are non-transferable (if you sell your Gnar the vote goes with it) but delegatable, which means you can assign your vote to someone else as long as you own your Gnar.
Gnars are generated randomly based on Ethereum block hashes. There are no 'if' statements or other rules governing Gnar trait scarcity, which makes all Gnars equally rare. As of this writing, Gnars are made up of:
You can experiment with off-chain Gnar generation at the Playground, or browse through different traits by using filters on your favorite NFT marketplace.
Gnars are stored directly on Ethereum and do not utilize pointers to other networks such as IPFS. This is possible because Gnar parts are compressed and stored onchain 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 onchain. To accomplish this, each part is decoded into an intermediate format before being converted into a series of SVG rects using batched, onchain string concatenation. Once the entire SVG has been generated, it is base64 encoded.
The Gnar Seeder contract is used to determine Gnar traits during the minting process. The seeder contract can be replaced to allow for future trait generation algorithm upgrades. Additionally, it can be locked by the Gnars DAO to prevent any future updates. Currently, Gnar traits are determined using pseudo-random number generation:
abi.encodePacked( blockhash(block.number - 1), gnarId))
Trait generation is not truly random. Traits can be predicted when minting a Gnar on the pending block.
Gami is the builder that initiated Gnars.
You have the choice to reward Gami with a percentage of a successful bid, a tip, by setting the slider to a suitable position. By default the slider is set to the 90/10, meaning that 10% of your bid, if successful, would be deposited to gami.eth during settlement.
From time to time we change the tip recipient in order to facilitate promotions with other CC0 projects included in our protocol.