BackstoryBattleKats is a collection of kooky kats ready for kombat!
The theme is kats (Big cats, domestic cats, and kittens of all types) who are ready for battle. Some look fierce, some look cute. Hopefully everyone can find one that they like. Check Dexie to see what is available.
There are 350 total BattleKats. There are 16 specials sprinkled throughout the collection. Most of the specials, have a 'match' or counterpart somewhere else in the collection. And there are 4 specials that form a 'group'. There was also 1 non-battlekat BattleKat when ChiChi (known from the ChiChiverse tried to sneak into the collection to battle with the kats! I sent him home to the ChiChiverse! The wise guy even tried to use a fake name of 'KhiKhi'!!
The names and attributes were dynamically determined during the running of the script to build the metadata. The specials all had the names overridden... because they're... special!
The artwork is a combination of AI generated with some post-editing on many of them by me personally (Twitter @steppsr). The AI used was MidJourney. My post processing was with Paint.NET, because it is free.
The main purpose was just to have fun, learn more about Chia NFTs, complete a coding project that was challenging and rewarding, and try to give back to the community by documenting/publishing the code/tools that I used to build the collection once I finished. Soon tm
Now for the gory details of how I generated the metadata.
MetadataOverview of metadata creation for the BattleKats collection.
Dynamic changes to the images. All artwork was created as PNG images. The first step in the script gets a list of those PNGs that need to be processed, then converts them to JPG files.
After the images are converted to JPGs, then each is edited and a 5 pixel border is added to each image. This dynamic change will ensure the hash is changed from the original artwork and thus harder to manually manipulate to affect the rarity.
Next the full list of JPGs are shuffled and renumbered 0001 to 0350.
Next the script defined arrays for the names, background, and specialities (listed below). And one value is selected based on the image hash.
Name is built by generating a random number between 0 - 31 for NAME-1, and random number between 0 - 63 for NAME-2, and joining them together.
Example: (29,62) = Wild Atlas
Background is built by looking up into the list the decimal value of the 1st hex character in the image hash.
Image 119.jpg Image hash: f56bd9188617a09ede476d0205e78dcf5fcd6141fd4e8679db043fcd121c3103 ^ 1st hex = f Converted to decimal = 15 Background (15) = Spy
|9||Mind Over Matter|
Specialities is built by looking up into the list the decimal of the 9th hex character in the image hash.
Image 119.jpg Image hash: f56bd9188617a09ede476d0205e78dcf5fcd6141fd4e8679db043fcd121c3103 ^ 9th hex = 8 Converted to decimal = 8 Specialities (8) = Locksmith
The starting point for each of the other attributes is a minimum of 4 before we determine the amount to add based on the image hash.
Steps to prove:
Hash the local data file (image). Then use that hash to build the values for the attributes by selecting specific characters from the 64 character hash convert the hex character from the hash into a decimal value to use as a value for the attribute.
|Attribute||Character Position in Image Hash||Calculation|
|Strength||17th character of the hash||4 + hex2dec value|
|Constitution||25th character of the hash||4 + hex2dec value|
|Dexterity||33rd character of the hash||4 + hex2dec value|
|Intelligence||41st character of the hash||4 + hex2dec value|
|Wisdom||49th character of the hash||4 + hex2dec value|
|Charisma||57th character of the hash||4 + hex2dec value|
Strength = 4 + decimal value of the 17th hex character in the image hash. Image 119.jpg Image hash: f56bd9188617a09ede476d0205e78dcf5fcd6141fd4e8679db043fcd121c3103 ^ 17th hex = d Converted to decimal = 13 Strength (4 + 13) = 17
All the values are verifible by downloading the NFT data (image) and hashing the file.
You can use an online tool, such as https://emn178.github.io/online-tools/sha256_checksum.html
Or if you have Linux, from the terminal you can run the following command (assuming your terminal is in the directory where the file was saved):
My plan is to publish the Bash script on Github. But there are a few mistakes I want to resolve first and do some basic clean up & comments for users.
Will publish to my Github soon.
Dexie • Spacescan • Mintgarden
More NFT Collections by @steppsr • BattleDawgs • Astrobots • BattleKats
Offical Twitter: https://twitter.com/steppsr