SZNouns is a protocol for proliferating SZNouns in a seasonal minting cadence, based off of the original Nouns Project.

Introduction

Noun protocol is a suite of smart contracts that generates and auctions a Noun every day. The protocol serves as an open standard for generative art - Nouns. Because all of the art was released under the public domain, developers can build without restriction on the protocol at the smart contract or application layer.

This documentation describes the mechanisms that power the Nouns protocol and what each component entails. If you have any questions, please reach out via Discord

Smart contract overview

The Noun protocol forked for SZNouns consists of three primary components: Nouns, auctions and the DAO. The suite of smart contracts gives you full access to the auctions and generative art that powers the protocol.

SZNoun Contracts

Generate a random SZNoun on-chain

SZNouns Smart contract architecture

<aside> ➡️ To view the source code, visit the Github repository. You can also review the architecture here.

</aside>

Auction lifecycle

Every auction begins where the last one ends. On settlement of an auction, a new SZNoun is minted and the next auction is created, all in the same transaction. *Diagram from Nouns’ Wiki

Timing Diagram

NounsProtocolFlow-Auction.png

Settlement

To settle an auction, the NounsAuctionHouse contract is called. The function settleCurrentAndCreateNewAuction() both settles and creates a new auction:

function settleCurrentAndCreateNewAuction() external override nonReentrant whenNotPaused {
    _settleAuction();
    _createAuction();
}