Pressed NFT

A procedural pipeline for tangible representation of ERC21 Tokens.

Demo Video Live Demo Source Code

Technologies

Ethereum

Solidity

The Graph API

Chainlink

Description

As NFT's gain popularity, we might see an opportunity to further the interaction of digital ownership. Made up of numbers and letters crypto hashes give the token designer a challenge to interpret and visualize randomness. Our project demonstrates web app 3D interpreter for a token and a prospective path to rapidly-produce these tokens through cloud 3D printing. Unlike the ownership of a digital avatar or artwork, this is a lower-level representation of the token itself, kin to a pressed penny or elongated coin. Think of a promotional web page or item managed by the contract owner. The blockchain's global nature enables the contract owner and Token holders to form a unique relationship. Portals or lobbies offering tangible representations of the tokens could be where we see exciting branding in web3.

How It's Made

The frontend prototype is built in React using creat-eth-app and hosted on Netlify. We use the web3 package to read and write to specific contracts which are maintained on Remix. The main reason for doing so is to use the beta Chainlink's VRF, which runs on the Koven network. In the demo, the smart-contracts is broken up into three components. The first generating random numbers from LINK, the second manages ERC721 Tokens and a purchase contract which transfers ether from the buyer. In our 3D interpreter, we are referencing the token's ID to build our token's visual language. Each number in the ID corresponds to a shape, which is then modeled by Three js. Since 3D models are large, we avoid storing this data on the chain; instead, the frontend hosts the token's model assets. Blender's GLTF / GLB is the standard for 3D web model processing. This gives us the ability to script it to reflect the Three js interpreter giving us the ability to re-mesh and 3D print the unique NFT. Once a customer purchases a token, the graph is queried to match the owner with their token.

Team

Rob Renn
← click here to see all projects