Prometheans: Analysis of an NFT Project
For almost a year now, I have been repeating the observation that minting a collection of 10 thousand <insert anthropomorphized animal here> with various rare traits just doesn't cut it in the NFT space anymore.
Even adding some deftly executed marketing to whip up the hype frenzy, or appealing to a particular group of people who are passionate about a specific topic or see themselves as members of a particular tribe no longer works.
Anyone can now pay a graphic artist to create some jpgs and hire a smart contract developer to deploy an ERC721 or ERC1155 contract, all for a relatively small amount of cash. As a result, every obvious NFT project has probably already been launched.
Vague promises of "some kind of utility" won't work either. Something more is needed if your collection is going to be a success.
And then a project comes along that shows how it can be done.
In this article, I take a look at Prometheans.xyz, which launched six days ago. In that time it has:
In my opinion, the project is a masterclass of how to go about designing, implementing, deploying, and promoting an NFT project, and is therefore definitely worth a closer look.
(Note that I have no affiliation with Prometheans. I'm just envious.)
The basic mechanics
Prometheans is based on the same principle as The Button, a Reddit project with a 60-second countdown timer that reset each time the button was pressed. When the timer reached zero without someone pressing the button, the project ended. The Button ran for two months, during which time over 1 million Reddit account holders clicked on it.
In Prometheans, the role of the button in The Button is replaced by the minting of an NFT, and the countdown timer starts at 15 minutes instead of sixty seconds. The core concept is as simple as that.
With Ethereum now using Proof of Stake, blocks appear every 12 seconds like clockwork, which means that fifteen minutes equals 75 blocks. The Prometheans smart contract contains code that ensures that after 75 blocks without a mint, the minting function locks, and there can be no more tokens produced.
This means that in theory, there is no upper limit for the number of Promethean tokens that could exist. In practice, at some point we will all get bored, or the sun will explode and destroy all Ethereum nodes, and the end of minting will happen.
The backstory
The countdown timer represents a sacred flame that will go out if not tended, hence the reference to Prometheus - the Titan from Greek mythology who stole fire from the gods and gifted it to humanity. The NFTs are monks and nuns tasked with guarding the sacred flame.
The website is extremely simple, using well-designed 90s style retro computer graphics to show the countdown, the flame, and the monks. The graphics are all CC0, which means I can use them in this article!
The smart contract and metadata
The smart contract uses the EIP-1967 transparent proxy standard to forward calls to the actual ERC721 implementation for the NFT contract (there was a previous version of the contract here, but it looks like there was a missing https:// in the tokenURI function so they upgraded it).
I'll talk more about further potential significance of using the proxy pattern later, so if you don't know what that means, don't worry about it for now.
The ERC721 implementation contains the extra code for handing the countdown functionality, and providing a total of 15 different monks, each sub-categorized into 5 classes:
In the table I have used the "ember" number as presented on the website and used in the smart contract code. You could of course count the other way - namely "blocks since the last mint".
For example, if you are the first person to mint since the last reset, and you do so after one block without a Promethean mint, you are minting in ember 74, and will get a Magnus II. If you wait ten blocks, you are minting in ember 66 and will get a Marcius V. If no one mints for 75 blocks, we are at ember 0, and the minting function is locked.
As of the time of writing, we only know what five of the monks are called and what they look like.
The help page on the website says that there are 16 different types of monk, which adds a bit of mystery, because I only count 15 with the current categorization. Perhaps minting in the last ember of 0 will create a grand priest of some kind, or perhaps some of the later monks will only have types I to IV or even less, creating room for the 16th monk.
As this is implemented on the metadata level rather than the smart contract level, we can't see which is the case right now.
And the metadata server has been carefully protected to ensure that you can't get a sneak peak at what the rarer monks look like until they are revealed. If you try to see metadata for a non-existent monk with a low ember value than current revealed, like this one:
领英推荐
the message "Tricky tricky, not possible" is returned.
The smart contract code is available on Etherscan, and I have to say that it looks good - it is neatly formatted, commented, and well-structured (except for line 113, which is where the correction to the tokenURI function was made, possibly in a hurry).
It looks like the work of a group of competent programmers. I spent about half an hour looking for obvious bugs and couldn't find any.
There is some extra functionality in the smart contract that stops you from transferring or selling your token for the first 72 hours after minting. Again, it's an elegant modifier function that contains one line of code. Although, to be honest, I don't know exactly why they put that restriction in there.
One possibility is that as interest wanes, and it gets easier to mint higher order monks, if someone mints an ember 1 monk they might conceivably go to the effort of minting more monks for the next 72 hours to ensure that their rare NFT can actually be sold. So perhaps it's a simple addition that may well extend the active lifetime of the project by days or even months.
Where to next
I mentioned earlier that the contract uses the proxy pattern, that is, the parent contract (the proxy) points to an underlying child NFT contract (the logic), and that pointer can be changed to point to a new contract. This has already been done once to correct an error in the tokenURI function.
Here I have to reveal that I haven't fully investigated EIP-1967, the standard that defines all of this. But it is my understanding that the data is stored in the proxy, which means that a new underlying child NFT contract could implement extra features, or change the way in which the NFTs work, without having to migrate across all the NFTs.
One option, therefore, is to move all the metadata and images to the IPFS once the flame has died and no new tokens can be minted. This would be done by deploying the NFT contract again, with the tokenURI function updated to point to the IPFS location rather than the prometheans.xyz metadata server.
The team members state on the website that they have other plans in the wings for the future of the project. Although I am looking forward to seeing what they are, as far as I'm concerned, this project has already delivered plenty of interesting material for consideration.
Statistics
At the time of writing:
Conclusions
I think there is a lot NFT project managers can learn from Prometheans, which looks like it is rapidly heading towards becoming the largest active community of NFT minters ever.
The links
Here are the links again, in case you want to investigate more on your own:
The website: https://prometheans.xyz/
The proxy contract code: https://etherscan.io/address/0xc4a5025c4563ad0acc09d92c2506e6744dad58eb#code
The logic contract: https://etherscan.io/address/0x4ab1e11a5bf2348d98c37dc8e2f69670d98dd732#code
Sample metadata link: https://monks.prometheans.xyz/nft/29932/55/16045880
The collection on LooksRare: https://looksrare.org/collections/0xc4a5025c4563Ad0ACC09d92c2506e6744DAd58Eb
There are also code repositories out there that provide developers with the opportunity to run monitor-and-mint code for sniping those elusive rare monks when interest starts to wane.
Coming soon.
2 年Keir Finlow-Bates where do you have the "raised over 75 ETH despite offering free minting" from?
Registered Behavior Technician at Access Family Services
2 年could you point a lost soul towards those monitor-mint code repos?
Libero professionista Ingegneria civile
2 年Only substitute Game Over with V in the table. The time from 12 second to 0 ??
*furiously takes notes* You have a new subscriber, sir.
Artist. Filmmaker. Small business owner. Hopeless romantic.
2 年Great writeup! Just minted my first monk...