Expressing Ethereum's history through generative art

The Genesis Collection

The Ethereum network launched on July 30th, 2015. The Genesis Collection is the first curated collection from Transaction Mosaics and seeks to highlight 10 different historical moments in Ethereum's early history.

All of the pieces in this collection have been sold using the ZORA auction house.

mosaic
View Details

Creation of Transaction Mosaics

0x84dc...15422
mosaic
View Details

The First Ethereum Transaction

0x5c50...22060
mosaic
View Details

Creation of Cryptopunks

0x0885...28430
mosaic
View Details

Creation of Cryptokitties

0x691f...120f4
mosaic
View Details

Creation of MakerDAO

0xa066...64fbf
mosaic
View Details

Creation of Compound

0xdeaa...cb787
mosaic
View Details

Creation of Uniswap

0xc1b2...1b010
mosaic
View Details

Creation of Aave

0x9ef1...e36c3
mosaic
View Details

Creation of Masterchef

0x3d68...e0fb3
mosaic
View Details

Creation of ETH2 Deposit Contract

0xe75f...7e1d0

Turning transaction hashes into unique NFTs

What are Transaction Mosaics?

Transaction Mosaics uses historically significant transactions to generate unique pieces of NFT art. The smart contract follows the ERC-721 standard and only one NFT can be minted for every transaction hash. The contract enforces that a specific transaction hash can only be minted once by internally recording which hashes have been used and checking against that record when the mint function is called.

What is a transaction hash?

A transaction hash is a unique identifier that is created whenever a transaction gets added to the blockchain. Every transaction hash is cryptographically generated, will never have a duplicate, and are 64 characters long (excluding the '0x' prefix). A hash's characters range from 0-9 and a-f.

Transaction Hash

How is each piece generated?

Every mosaic is an eight-by-eight grid of 64 squares. Since a transaction hash has 64 characters, each character in the hash gets its own square. Every square's color is assigned based on the value of each character in the transaction hash from 16 different colors.

mosaicSample

For example, with transaction 0xa06...6bef, since the first character is an 'a', the code will make the first square in the grid green. Then the next square will be black since the second character is a '0'. After that, it will then make the third square red since the third character has a value of '6'. The code will continue running from left to right until all 64 squares are colored in.

mosaicSample

Inspiration for some of the colors came from this video game color palette. You can also play around with the generation script yourself by pasting in a transaction hash here. The colors and generation script can be verified by viewing the mosaic_generation_script in the contractURI.

How does the contract guarantee a hash wont be used twice?

The smart contract has a mapping named hashUsed which stores hashes to a boolean mapping(bytes32 => bool). When the mint function is called, there is a require statement that checks this mapping to make sure that it hasn't been minted. After being successfully called, the mint function then sets the value to true thus preventing that hash from ever being used again. You can view the smart contract code here.

Our history is written with transactions