Non-Fungible Tokens (NFTs) are unique assets existing on the blockchain. They can take on many forms, including video game assets, DeFi assets, art, collectables, and more.
Generally speaking, a video game or DeFi NFT will have some type of utility, while an art or collectible NFT will have no utility other than an aesthetic, collectability, and perceived value. (Note: This is not always the case and these lines are becoming more blurred ever day).
x128s is a an NFT concept best categorized as an art/collectible project. Each x128s will have the following attributes.
- x128s will be created on a square 128 x 128 canvas containing 16,384 squares.
- Each x128s square will be one of two colors.
- The first color is determined randomly, and the second color is always the complementary RGB to the first color.
- There are over 8,000,000 possible color schemes.
- Color schemes are assigned a rarity factor based the probability of occurrence and variance between RGB values using a random method for determining the first color and its complementary RGB.
The below grid illustrates the x128s canvas with two alternating complimentary colors.
This sample grid has two colors: R:115|G:195|B:174 and its complementary R:195|G:115|B:136.
These two colors can then be rearranged on the 128 x 128 grid to create an image like this.
The initial inspiration for this project came from an NFT project of well known faces created by Artificial Intelligence Art AIA called PopMasks. Jeff Bezos was the image for PopMask #1, which lead to him becoming the subject of the first x128s created.
All x128s will also have a rarity factor assigned to it based on two variable:
- Random Rarity (Based on Rarity-1 Value): The probability of the occurrence of the first color, and therefore the second.
- Color Standard Deviation Rarity (Based on Rarity-2 Value): This measures the spread of the RGB numeric values for each color (red, green, and blue) for both colors. This is done by measuring the standard deviation of the 6 applicable RGB colors for both colors.
The x128s value for Random Rarity and Color Standard Deviation Rarity (Color STD Rarity) are determined by the highest value in each rarity set. For example, if there is a set of 115 x128s, the Random Rarity value for a particular x128s will equal the highest Rarity-1 value found in all 115 x128s divided by the Rarity-1 of the current x128s. This means that the highest Rarity-1 value in the set will always have a Random Rarity of 1. All other random rarity values in the set will be a number greater than one. The least likely outcomes will generally having the smallest divisors, and therefore the highest rarity values. (see The First 15 x128s NFTs below for a further explanation of this as it applies to the first x128s NFTs).
Color Determination
Each RGB color has a value ranging from 1 to 255. The three values for the first color is randomly determined by a roll of 1 to 32,640. The 32,640 number is the result of the Triangle number of the 255 color values. Each color value become proportionately more likely as the value increases. For example, a value of 1 has a 1 in 32,640 chance of occurring, a 2 has a 2 in 32,640 chance of occurring, etc. This pattern continues until the highest color value, 255, which has a 255 in 32,640 chance of occurring. This sequence is the Triangular Number of 255, which equals 32,640.
This means that low RBG values are much less likely to occur than high RBG values. The second number is always the RGB complimentary color to the first color, which is the opposite color in the color wheel in both direction and distance from the center.
Before doing the actual NFTs, the random colors will need to be determined. To do this, the public random number generator at https://www.publicrng.com/ is used. publicRNG.com generates a random number from 1 to 100 every 30 seconds. Every randomly generated number is assigned a name which is in the format of the date and the random number for that day. For example, the 1787th random number generated on August 17, 2021 would be titled “210817–1787”. This number can also be verified at a later date by looking it up on the site.
publicRNG.com also has a raffle feature that is limited to 10,000 entrants. Since the color determination is based on a random number between 1 and 32,000, this will not be used. Instead a series of 1–100 roles will be applied to a chart that narrows down the number through consecutive roles.
The following is an example of rolls generated months ago. These rolls can still be verified at https://www.publicrng.com/
In the above example, it took 9 rolls to determine all three RGB numbers for Color-1, which in turn determines Color-2. The process was as follows:
- A roll of 34 narrows the first number down to between 11,221 and 11,560.
- A roll of 52 narrows the first number down to between 11,425 and 11,428.
- A roll of 20 narrow the final random number down to 11,425. The 11,425 number can be looked up in the above chart to determine the Red in the RBG number to be 151
This process is continued until all 3 colors of the RGB color are determined, which took nine rolls. The Hex number for the RGB color is then input into https://www.canva.com/colors/color-wheel/ to determine the corresponding complimentary color. In this case RGB: 151–142–223 is Hex #978EDF. The complementary color to this is Hex #E6F08D, which is RGB: 230–240–141. These two colors would then be used for the image it is applied to and minted into an NFT.
The next step in the process will be determining the next few color combinations to be applied to images. The first 100 random numbers used are verifiable on publicRNG.com as rolls 210818–1800 though 210818–1899. This was announced in a previous version of this article here. For the the determination of the next 200 numbers (random rolls 101 thru 300) 210829–151 thru 210829–350 were used. This was announced in advance via this Tweet.
The First 15 x128s NFTs
x128s NFTs images will be organized into different series. The current series is called Media Masks. All x128s completed to date are based on images of real people in media. Most of the images used so far, are of people that are recognizable to the general public.
For the images done to date, I knew the individual going to use as a subject prior to knowing the color combination. This is how I intend to proceed for all images, unless for whatever reason, the planned image does not translate well enough to the 128 x 128 two color format. I however will always use the color combination randomly selected for the next x128s piece. Always.
The following are charts and explanation for the first 15 x128s:
Prior to completing the first 15 x128s NFTs, I randomly generated numbers between 1 and 32,640 using the Google random number generator. This was done to test the concept with a sizable set of values.
The above chart compares the rarity values for the first 15 x128s NFTs based on both the actual set of 15 and adding the 15 to the Sample 100 set, for a total of 115 numbers (color schemes). As can be seen in the last set of columns, the Random Rarity changed, but the Color STD Rarity did not. The Random Rarity changed because the highest Rarity-1 value (the numerator) occurred in the Sample 100 set. The Color STD Rarity did not change because the highest Rarity-2 value in both sets occurred in the first 15 x128s NFTs set.
The third set of columns in the above chart, compares the percentage ranking of each x128s within the actual set of 15 vs. their being added to the Sample 100 set. For the Actual Less w/ Sample column, a positive number means the x128s ranked lower when added to the Sample 100 set, and a negative number means the x128s ranked higher when added to the Sample 100 set.
In the above chart, only the top two x128s had a positive number (were in a lower percentile when added to the Sample 100 set), all the other x128s had a negative number (were in a higher percentile when added to the Sample 100 set). This is because the Sample 100 set had a few really high rarity values, however, the floor rarity value for the Sample 100 set was also much lower.
The fourth set of columns in the above chart breaks the Total Rarity down by the percentage of the value coming from each of its component parts (the percentage coming from the Random Rarity value and the percentage coming from the Color STD value. The Random Rarity tends to dominate the rankings, however, higher Color STD Rarities are more common in the less rare color combinations. This creates a good balance between the two competing factors.
The above chart shows the random rolls used to determine the corresponding Red, Green, and Blue value for each RGB Color 1 value. A summary of the actual rolls to date with the determination of the corresponding values between 1 and 32,640 can also be found in the x128s Color Rolls Google sheet here.
Fair Launch and Distribution
To my knowledge, the concept of an NFTs collectible that randomly determines two colors and assigns a rarity value based on the color scheme of each NFT is a novel one. I have no idea how any of this will be received, but am excited to find out.
As with any NFT collectible, a fair launch and distribution is very important. For the first 15 pieces, my intention is to sell them all at .01 ETH. This will likely be done by simply listing them as well as lotteries and other giveaways.
If you are interested in x128s please join the Discord here.
I feel good about the core concepts and math behind the determination of color rarity, however, this is all very much a work in progress. I certainly appreciate any discourse with the community on Discord.
Related Links
See the x128s Collection on Opensea here.
Join the x128s Discord here.
Follow x128s on Twitter here.
Follow Yostari on Twitter here.