KittyCalc revisits the CryptoKitties Genome

Until recently, the most common way to identify genes has been to use a system known in the CryptoKitties community as Kai code. Introduced by CryptoKittyDex and named after Kai, who helped crack the CryptoKitties genome (and created some darned good articles about what it all means), Kai code is also known as “Base 58” and is popular in the overall crypto community because it offers certain advantages when working with five bit numbers by hand. But Kai code has often been a source of confusion and mistakes, and is not at all intuitive. That’s why, when KittyCalc was approached by other tool developers about switching over to a new system, we listened intently to the proposal.

Starting soon, KittyCalc will start using an integer system that simply counts from 00 to 31 (instead of “from 1 to x, skipping the letter l”), which maps directly to the way the genes are actually encoded in binary on the blockchain.

This new system has some basic benefits: it’s easy to remember that “21” always follows “20” (but harder to remember that “m” follows “k”), and there’s no awkward switch from numbers to letters at an arbitrary point in the gene sequence. Also, mutation pairs are now easy to identify: any two consecutive integers where the larger number is odd is always a mutation pair:

00 and 01? Yes
12 and 13? Yes
05 and 06? No
20 and 23? No!

We now know that this is essentially how the actual smart contract code for breeding checks whether a pair of genes should have a chance to mutate.

But won’t this changeover be confusing? Yes!

But we can make sure it’s always clear which notation someone is using. Because Kai code starts at “1” while the actual genes start at “00”, Kai code and integer notation never actually match up. So it’s important to know when someone references a base level Wild Element gene whether they’re using kai or integer.

Kai looks like this: wild_5
Integer looks like this: WE04

Note that integer notation always has a leading zero when displaying single digit values, while Kai code never does. Also note that trait categories have two letter designations in integer notation:

Wild Element: WE
Environment (formerly “mystery”): EN
Secret: SE
Unknown: UN

Every gene in the game can be represented in integer notation, which is useful when talking about undiscovered genes:

Mouth: MO
Fur: FU
Pattern: PA
Eye Shape: ES
Eye Colour: EC
Highlight Colour: HC
Accent Colour: AC
Base Colour: BC

So what used to be “patterncolor_x” is now “HC31

While we’re changing things, we’re also updating some of the terms we use.

The terms “Dominant” and “Recessive” have specific meanings in traditional Mendelian genetics that we now know do not apply in CryptoKitty genetics. This has confused some players who see these terms but do not know the history of their use in the game. The terms and abbreviations we’re using now look like this:

Primary Gene Slot (P)
Hidden Gene Slot (H1)
Moderately Hidden Gene Slot (H2)
Deeply Hidden Gene Slot (H3)

Thus all trait categories can be represented like this:
P/H1/H2/H3 (as opposed to D/R1/R2/R3)

You could say, for example, that your kitty has WE01 in H2/H3, or wingtips Primary, or cloudwhite P/H1.

The math is all still the same, it’s just that the words “Primary” and “Hidden” more accurately describe how the actual CryptoKitties gene sequencing works during mating that “Dominant” and “Recessive” ever did — which is not a knock on the people who started using these terms, it’s just that we understand the genome and gene mixing code much better than we did on the first days of the game, so it’s past time to update our terminology to be less confusing to new players (and just generally more accurate).

Do you have to change?

Change is hard on everyone, and it’s tough to break habits. Nobody is trying to force you to change, and of course you can continue to use the old terms if you like! We strongly believe that this new system will be beneficial for everyone in the long term, so that’s why we’re taking the time and doing the work to change over how KittyCalc displays genes and talks about this stuff. We hope you’ll join us in this brave new more technically accurate world. But for the sake of those who cling to the past, just don’t forget that leading zero!

Ready to get started? So are we! Head over to https://kittycalc.co/ — the new updates are coming soon!