Milliondollartokenpage.com (MDTP) is a digital content space based on the 2005 viral hit milliondollarhomepage.com. We've brought the original concept into the Web3-era with the power of Ethereum and NFTs.
MDTP has 10,000 blocks in a 100x100 2D-grid represented by 10,000 ERC721 NFTs on the Ethereum network. Our motto is interact, trade and share. Users can (1) interact by browsing around thousands of images living side-by-side in the same virtual space and click on individual ones to learn more. (2) trade each pixel block, minting, buying and selling them on the open-market. And (3) share the site and earn rewards from doing so. A description of the project and how to use it can be found here: https://milliondollartokenpage.com/about.
The vision is for MDTP to be a long-lasting project that takes on a life of its own through the community. We want to support the site for as long as possible until one day it ideally outlives even us. For this to be happen we've decoupled as much of the site from our servers by placing everything either on-chain or in decentralised storage through IPFS.
The app was built with a React front-end (typescript, ethers.js and our own UI framework), Python back-end (web3 client), and Solidity for the smart-contracts (openzeppelin standards and hardhat). All data is stored on IPFS, while our back-end is used only for caching and performance.
The back-end regularly reads the metadata url links stored on-chain and fetches the data from IPFS to cache an image of the current state. Therefore whenever a user opens the site, they are able to see the most up to date version of the the content stored in the 10,000 different NFTs immediately without slow fetch times. Whenever a user uploads new content to an NFT we make use of the web3.storage library to upload this data to IPFS and the cache picks this up.
In principle a new site to interface with the data can be created from scratch by another developer team without requiring our input since all important data is stored either on-chain or on IPFS.