Our team has worked hard to ensure the STAPLEVERSE - FEED CLAN drop is as fair and equitable as possible. This page will describe some of the measures we’ve taken to ensure that the NFTs are fairly distributed and that no one is able to profit from trading based on insider knowledge. We’ve based our approach on provable fairness methods popularized by collections like Doodles and BAYC.
After deploying the contract, our team called the
generateSeed function on the smart contract, which generated a pseudorandom value, which was used to seed our metadata generation script. This value is stored on the FEED smart contract and is queryable via Etherscan.
The value of the metadata seed is:
The metadata seed value was passed to our metadata generation script, which generated 10,000 FEED tokens (SVG artwork + JSON metadata). This script uses a seeded random number generator as the basis for its randomness, ensuring that the results of the script can be trivially validated by anyone who wishes to. The metadata generation script will be open-sourced after FEED metadata has been revealed.
Importantly, this script ensures that the 330 FEED NFTs which were pre-minted by the founding team are guaranteed to be in the bottom 50% of all FEED NFTs by rarity (based on high supply FEED and high edition numbers). Feel free to see for yourself here!
After generation, a provenance hash was generated. The provenance hash was generated by taking the
keccak256 hash of each token’s SVG image, concatenating the hashes of each token’s SVG image, and calculating the
keccak256 hash of the concatenated string.
The provenance hash was then set on the smart contract by calling the
The value of the provenance hash is:
This provenance hash proves that the FEED NFTs were generated fairly using our generation script, and that their ordering and rarities were not tampered with.
The provenance hash also makes it simple for anyone to reproduce our metadata generation method and prove that we generated the metadata as described above.
Once all 10,000 FEED NFTs were generated, we enlisted the help of our community to generate a random number which was used to derive the final metadata ordering for each FEED NFT. This number was not frozen until immediately before reveal (Jan 21 at 9am PST / 12pm EST / 17:00 UTC), making it practically impossible for anyone to know ahead of time and act upon it (buy/bid/etc).
The value of the shuffle seed is:
This shuffle seed is used to calculate the final metadata as follows (assuming
12345 is the value of the shuffle seed):
metadata = (tokenID + 12345) % (10000 - 330 + 1)
For example given token ID #1:
(1 + 12345) % 9670 + 1 = 2677
This means that token ID #1 will have the image and metadata that was generated during round
2677 of our metadata generation script.
< 9671 will be shuffled using the shuffle seed. All tokens
≥ 9671 will not be shuffled (in order to maintain the guaranteed non-rare metadata of the top 330 tokens).
Provable Pseudo Randomness vs. True Randomness
Computationally, it’s very difficult to prove with certainty that a given number is random. Our team has opted to use provable pseudorandom values instead of true random values to prove fairness.
The reason for this is simple: it doesn’t matter whether the numbers we used to generate and allocate metadata were truly random or were just pseudorandom.
What does matter is proving the following:
- Our team did not (and in fact, could not) manipulate any metadata after it was generated.
- No one (inside or outside our team) could have profited from making trades based on insider information prior to reveal.
Pseudorandom number generation has the important benefit of being easy to reproduce. By choosing to use pseudorandom number generation, we’ve made it trivial for anyone to replicate our approach and verify our results.
We invite anyone who is interested to do so using the values above and the metadata generation script that we open-source post-reveal.