Boundless is an infinite exhibition of generative art.
To commemorate each Ethereum block, synthetic artists (generative art algorithms) take the block hash as a seed and output a new and unique composition.
Only one copy of each composition can be minted, sold initially with a Dutch auction-style sale (price starts high and drops over time), and then owned via Harberger taxes.
These two market mechanisms combine to form a efficient market that:
For the hackathon, we implemented the an ERC1155 token contract and Dutch auction contract, along with a beautiful application to render, explore, and interact the generative art for several synthetic artists (the synthetic artist code was produced outside of the hackathon and should not be considered part of the submission).
Boundless consists of:
an ERC1155 token contract were the token ID is derived from a blockhash and an artist ID. A public function allows anyone to mint a token corresponding to a past block, provided it hasn't already been minted. The freshly minted token is immediately put up for auction in a Dutch auction-like contract.
a Dutch auction-like contract where, once an auction is started, the current price for a token decreases linearly over time.
some registry contracts to define valid artists and blocks. We chose this pattern so that the token contract could be less opinionated about how the validity of artists and blocks was determined. The artist registry is a simple registry controlled by an owner contract. While the block registry is intended to be more permissionless. Currently, it just returns "true" for any bytes32 input (so it really doesn't validate anything at all 😅️). Future versions will either use a merkle proof or rely on an oracle to determine valid block hashes.
a web applicaition - built with vue, typescript, ethers.js - for viewing the generative art produced by our synthetic artist algorithms and interacting with the associated ERC1155 tokens and auction mechanism.
synthetic artists algorithms. While these were produced outside of the hackathon and should not be considered for judging, it is important to understand their role in the application.