Oct 3 2021
Token, Hash

To buy an NFT is to buy a number in a distributed database. Owning a CryptoPunk is paying to put your wallet address beside a given token ID.

The above statement may be factually correct, but it does not capture the experience of owning a CryptoPunk. NFTs are not just numbers in databases; they are immaterial symbols around which cultural, social and financial value transacts.

Desire for a CryptoPunk relates to the cultural position they hold; owning one signals an alignment with the culture of crypto, a degree of wealth, and provides an opportunity for self expression. But at a practical level, the anchor for this desire is a wallet address beside a number in a database.

CryptoPunks attempt to ground this tenuous link between image and ID by embedding an encoded image of all the punks in their contract. This image circulates freely, but the authenticity of any the image can be verified by entering it into a SHA256 cryptographic hash function and comparing the output to the hash encoded in the contract.

Artists such as Deafbeef have taken further steps to strengthen the link between token ID and artwork. Deafbeef encodes the parameters for each audio-visual artwork on-chain, and embeds the scripts used to generate the work on each transaction. These scripts provides the collector with code and parameters to re-create the artwork, should the original file be lost.

Projects such as Loot take on-chain one step further, generating the artworks on-chain as SVGs. This removes the need for a collector to run parameters through scripts, but introduces new challenges.

Randomness is key to generative work, but typical random functions return different values each time they are called. If these functions were used in on-chain generative projects, the image for a token ID would change each time it was viewed.

To solve this issue, on-chain artists generate their random values deterministically. Deterministic number generation relies on the same cryptographic hash function which CrytoPunks uses to encode their reference image. The hash function always returns a consistent output for a given input, but importantly, any small change in the input will result in a wildly different output.

In the case of Loot, the random value that determines which asset a token is given is derived by feeding a hash function a piece of text such as ‘WEAPON’, in combination with the token ID. The combined value, for example ‘WEAPON56’, is fed into the function and returns a value. The hash function will return the same value time WEAPON56 is input, but will give a randomly different value if WEAPON57 is entered.

To become useful as an input, the hash value is divided by the number of items in a list, and the remainder is used as the index to retrieve the token ID’s weapon. This approach can be applied to different lists of items, and if they are all of varying lengths, a single random hash value will return different values for each list.

Autoglyphs, Loot, Artblocks et al. each input different values to their deterministic generation functions, but the central concept remains the same; use a stable input to return a stable, random value.

Images for on-chain NFT projects are drawn anew each time it the image is requested, all randomness derived from the token ID and its hashed value.  

In Token Hash these two values which constitute the generative NFT are laid bare. Stripped of visual and narrative, the tokens display the scaffolding from which generative images are constructed. The numbers contain, in minimal form, the core characteristics of the on-chain generative NFT; rarity, scarcity, symmetry, beauty. 

By reducing the on-chain generative NFT to its core elements, Token Hash enables us to look beyond the visual to examine the social and cultural mechanics these values generate.

Token Hash public sale opens Thursday Oct 7 at 10 am EST.
1000 tokens will available for sequential minting, at a price of 0.02 ETH each.