Dexie - Spacescan - Mintgarden - Farmers Market

Backstory

BattleKats 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.

Metadata

Overview 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-1 List
0Dashing10Bold20Confident30Jealous
1Fierce11Bossy21Greedy31Heroic
2Spunky12Brash22Stalwart  
3Gallant13Lucky23Chivalrous  
4Loud14Fearless24Valiant  
5Angry15Stout25Audacious  
6Ballsy16Mischievous26Daring  
7Rude17Generous27Courageous  
8Loyal18Brave28Wise  
9Gutsy19Clumsy29Wild  

NAME-2 List
0Ace10Jasper20Mochi30Zazu40Natasha50Taz60Jinx
1Ash11Jax21Nala31Zoe41Keiko51Seamus61Ivan
2Aslan12Jinx22Neo32Eli42Jade52Nemo62Atlas
3Azrael13Leeloo23Ollie33Jafar43Naomi53Sherlock63Kato
4Buzz14Leo24Oscar34Augustus44Maya54Jet  
5Cleo15Loki25Pippen35Rex45Seiko55Cosmo  
6Dozer16Lola26Rocky36Hans46Kanji56Boris  
7Gizmo17Maximus27Simba37Xenia47Ryder57Felix  
8Hazel18Meeko28Trinity38Lex48Boomer58Dash  
9Inigo19Milo29Willow39Zod49Domino59Jazz  

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

BACKGROUNDS List
0Acolyte10Noble
1Charlatan11Outlander
2Criminal12Pirate
3Assassin13Druid
4Barbarian14Soldier
5Gladiator15Spy
6Paladin  
7Wizard  
8Warlock  
9Knight  

Background is built by looking up into the list the decimal value of the 1st hex character in the image hash.
Example:
    Image 119.jpg
        Image hash: f56bd9188617a09ede476d0205e78dcf5fcd6141fd4e8679db043fcd121c3103
                    ^
        1st hex = f
        Converted to decimal = 15
        Background (15) = Spy
    

SPECIALITIES List
0Camouflage10Night Vision
1Hunting11Sharp Shooting
2Sixth Sense12Illusion
3Tracking13Linguist
4Healing14Blacksmith
5Weaponskill15Martial Arts
6Mindshield  
7Mindblast  
8Locksmith  
9Mind Over Matter  

Specialities is built by looking up into the list the decimal of the 9th hex character in the image hash.
Example:
    Image 119.jpg
        Image hash: f56bd9188617a09ede476d0205e78dcf5fcd6141fd4e8679db043fcd121c3103
                            ^
        9th hex = 8
        Converted to decimal = 8
        Specialities (8) = Locksmith
    

STRENGTH
CONSTITUTION
DEXTERITY
INTELLIGENCE
WISDOM
CHARISMA

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.

AttributeCharacter Position in Image HashCalculation
Strength17th character of the hash4 + hex2dec value
Constitution25th character of the hash4 + hex2dec value
Dexterity33rd character of the hash4 + hex2dec value
Intelligence41st character of the hash4 + hex2dec value
Wisdom49th character of the hash4 + hex2dec value
Charisma57th character of the hash4 + hex2dec value


Example:
    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):

sha256sum 119.jpg

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 - SpaceBugs



Offical DID: did:chia:1k2a4z25jvvyj2g6sanys286hh6ahv9nrjnuu8prcw5u4v23ew54q42th6q

Offical Twitter: https://twitter.com/steppsr