Million Dollar Token Page
Our very first Web3 project is still live and kicking at milliondollartokenpage.com
TLDR:
Milliondollartokenpage.com (MDTP) was our very first Web3 project that we built over several hackathons and gave birth to our company Token Page.
MDTP’s inspired by milliondollarhomepage.com. It has a total of 10,000 NFTs in the collection, where minting an NFT gives you a space on the page.
These spaces can be updated to show a title, description, image and URL that people see when they click on them, and can be traded on the open market.
We built a lot of features into MDTP including tranches of 1000 NFTs each, an updated gas efficient v2 smart contract, and uniquely generated frames per NFT.
The slow down in interest led us to stop building out our roadmap but if interest ever picks back up we’ll continue where we left off.
Today I felt like taking a trip down memory lane and writing about our very first project in the Web3 space.
While I’ve been involved in crypto since 2016 I hadn’t actually built anything in the space until I joined forces with my friend and now cofounder Krishan in 2021.
We built milliondollartokenpage.com as our very first project, which led to us forming our company Token Page where we’ve since worked as development consultants on lots of Web3 projects. We’ll look a bit at milliondollartokenpage.com’s history, how it works, and a glance at the future.
Million Dollar Token Page (MDTP)
In early-to-mid 2021 my good friend and now cofounder Krishan and I decided to start building something in Web3 and joined a few EthGlobal hackathons to get started.
At our very first hackathon we came up with the idea of creating a Web3 version of the Web1 website milliondollarhomepage.com by Alex Tew, where he sold 1 million pixels for $1 each making $1m in revenue and eternalising the site in Internet history.
With the original website when you bought pixels you would select the image and url that they should show and this got saved forever. We took this idea and re-imagined a modern Web3 version of it where you could instead own those pixels as tokens, edit them, and re-sell them on the open market in a permissionless way.
We then used sequential hackathons as an excuse to keep building on our idea. Below is an example of one of the earlier entries into an ETHGlobal hackathon that we did.
We kept working on MDTP and felt it was something that was far more interesting and complex than most of the projects in the NFT space at the time, as most people were just selling generative 10k PFP collections that seemed a bit boring and generic.
And in September 2021 we released MDTP, creating a Discord, releasing it on Product Hunt, and consequently getting it in more and more news sites like DappRadar, CryptoNews, and NFT Plazas.
We had some intial traction and sold over 1,500 NFTs out of the total 10,000, but sales slowed down. We worked on it for a while longer but eventually stopped actively building as we began to shift over to doing development consulting for other projects.
In the process we also formed a company called Token Page, removing the “Million Dollar” from our title, updating the logo, and focusing on consulting, which was working well for us. Nonetheless we never stopped running the servers for MDTP and we are still really proud of it.
How It works
MDTP is a genuinely interesting app with quite a lot going on and we created a pretty easy to follow explanation on the website’s About section.
Essentially though there are 10,000 NFTs available (as with many NFT collections) and you can select any single space on the page, which we also refer to as blocks, to either view what someone has already uploaded to that space, or mint it if it hasn’t been minted yet and upload something yourself.
So if someone selects an uminted space then they are given the option to mint it and specify a width and height of how many more neighbouring spaces they want to mint. You can mint a total of 35 NFTs per account on the page, although this limit may one day be removed.
Today minting costs 0.01 ETH per token but our original plan was that as more were sold we would raise the price according to demand.
Once minted you can then update that space, setting a title, description, url and image to be shown whenever someone clicks on it! You can also update across several spaces you’ve minted at once by specifying the width and height.
This data can also be stored on-chain or off-chain depending on your preference. We recommend setting it on-chain only when you want to eternalise that data because it costs ETH to do so, while off-chain data can be quickly and regularly updated.
Selecting a token that’s already been set will then show the data that the owner has previously set on it. Here you can read the description and title, and click through to the URL that it’s pointing to, update the token if you own it, or even share with others through the share buttons available including X, Facebook, Email and WhatsApp.
Tranches
We built MDTP with the expectation that at each 1,000 NFTs we would lock up the available supply and unlock it again under new conditions like a potential price increase. We also made it so that the spaces in the middle are only unlocked when all the rest have been minted since they are the most visible ones.
We called these “tranches” such that MDTP NFTs would be sold in 10 tranches of 1,000 NFTs each for the total of 10k NFTs.
We then created a “FOMO bar at” the bottom where you can always see how many NFTs are still available from the current tranch. As of today we’ve sold out the first tranch but not the second as you can see below.
Smart Contract v2
At some point we also noticed a glaring bug in our v1 smart contract with a function called “minttokengroupadmin()” that allowed people to mint as many NFTs as they wanted for free! We’d somehow forgotten to add the “onlyOwner” modifier to this function meaning anyone could call it.
So we used the opportunity to create a new v2 MDTP contract, which is our main NFT contract today. Krishan found some smart ways to optimise the new contract making it a lot more optimal and gas efficient.
We had to create a token migration process from v1 to v2 and made the UX for this as simple as possible. Anyone can just go to a v1 token they own on the website and do the migration by selecting “Migrate Token to v2” and go through the steps in the UI. Nonetheless, any previously minted v1 NFTs can still be used to update the data for their space if they don’t want to do the migration.
Frames
We also realised that the original artwork for MDTP lacked the visual interest that PFP NFT projects have. Plus it made the overall page look less interesting because a lot of people had minted NFTs but not updated them, so the page was full of just black squares showing the original artwork below.
We came up with a really cool concept that allowed people to represent the MDTP community without needing to replace their favourite PFP that we called “Frames”. Every NFT was given its own unique procedurally generated circular frame that you could attach around your own PFP with our PFP Kit.
The procedural generation of these frames was quite complex in itself as we chose the image colour based on the NFT’s quadrant on the MDTP page, and used traits like the token number to change the shapes used in the frame. We even created our own gallery to show them off and browse them directly.
Frames gave each of our NFTs their own unique image and made the MDTP board a lot more colourful and interesting.
Roadmap
As you can probably tell by now there’s a lot going on in MDTP! As the project lost traction it didn’t make sense for us to continue working on it, however we’ve kept it alive and have continued paying the server costs because we still really like and believe in it.
We had plenty of ideas for where we wanted to take it and our original roadmap for the project can be seen here.
One example from the roadmap was creating an activity feed for people to see who’s recently bought or sold MDTP NFTs along with more interesting analytics.
There would a marketplace inbuilt into MDTP where you could trade directly in-app. You wouldn’t need to jump out to marketplaces like Blur or Opensea, as we ultimately believe that liquidity for a project can live on it’s own project marketplace.
We also had an interesting idea of creating an in-app fungible token that we called “$MetaBucks” that would be earned through different methods such as renting out your spaces to other people. We thought $MetaBucks could be used for all sorts of interesting mechanics.
And as I previously mention, on reaching the last tranch we’d auction out the final 500 middle blocks in some innovative way perhaps livestreaming it for example.
As you can see there are a lot of ideas here and we’d still love to build them if renewed interest ever comes back to MDTP.
Future
MDTP is still a project we love and a long-term goal of ours is to sell all the spaces and turn it into an active place in Web3.
We know though that MDTP’s real challenge is giving people a reason to regularly come back to the website to update and trade their spaces. You may come once and browse around, and maybe even come a few more times after to see what’s changed, but there’s no real long-term incentive to keep coming back.
We’ve certainly learned a lot though from the gamification techniques that others in the space have used. For example the recent way that Blur managed to keep people engaged with their $blur currency and farming more tokens is incredibly impressive.
So we’ve been recently thinking of new ways that we could breath new life into MDTP. We might even begin to implement them in which case I’d certainly write a new post about it and let people know.
For now though MDTP is just a project that we’re really proud of and have had a lot of fun building!