Sequencing the Axie Genome
Before I jump into how genes work in Axie Infinity, let me first give a brief introduction to the project for those that are unfamiliar with it. Axie Infinity is a new cryptogame similar to CryptoKitties where you buy digital creatures that are stored on the Ethereum blockchain. Although Axie Infinity is still quite early in the development stage, they plan to have a much stronger gaming element to their project than CryptoKitties. Currently, they are in pre-sale mode where you can adopt “origin” Axies similar to CryptoKitty founder cats (which, by the way, are currently selling for a minimum of 25 ETH).
On to the genes! In CryptoKitties, genes define what traits your cat has. For example, they dictate what colors, pattern and body style your cat has. The seminal work done in cracking the CryptoKitties genome was done by kaigani. In his post The CryptoKitties Genome Project, he illustrated exactly how a 256-bit number defines what traits a CryptoKitty has. His post is the basis for understanding how to effectively play CryptoKitties and paved the way for follow-up research like this post from Sean Soria that describes exactly how breeding works. Most Cryptogames use a similar strategy where they store a bunch of information in a large number (since it’s a compact way of storing information on a blockchain) and Axie Infinity is no different.
Like CryptoKitties, the Axie gene consists of a 256-bit number. However, at the time of this writing, some Axie attributes have not yet been fully released so we can only do a partial analysis of the genome. Things like attack, defense, and accuracy have been exposed, but their specific values have not been released to the public. Other traits like the color of an Axie are visually exposed but that information is not present in the API, so it would be a more involved process to determine the specifics of those genes — I’ll leave that to another day (or another person). The information presented below is based on deductive reasoning and guesswork, so take all of this information with a grain of salt and please forgive any errors.
Currently, only six classes have been released to the public, though there is room for many more. Here’s what each class looks like at a binary level:
At a macro level, each 256-bit Axie gene can be divided into (at least) 8 sub-parts — 8 groups of 32-bit segments. The first 32-bit group represents the Axie class as you can see above. In fact, this 32-bit segment is likely further divided as you can see a common 1 in the 15th bit (starting from the right), so in actuality there are likely 16 groups of 16-bit slices (for simplicity we’re only focusing on the 8 groups). This single bit is present in all pre-sale Axies…my guess is this means the Axie is an adult.
Each Axie has six traits or parts that will eventually affect how it battles. The six parts are: eyes, mouth, ears, horn, back, and tail. There is also the possibility that each of these parts could be a special “mystic” part that could allow you to evolve that part into a legendary part — the rarest of parts.
In the above image, you can see that the third group (from the left) is bolded and represents the “eyes” type. The names in bold are mystic parts and you can see that each one of those parts is prefixed with a “11”. Again, only the first half (16 bits. EDIT: Really only the high 11 bits are used in these attributes so they are probably sliced even smaller than 16 bits) define the part, the second half is all masked to zeroes which likely means it defines something else or it could define other things specific to that part that we haven’t been exposed to yet.
The third through eighth group represent each of the six parts. I created this page if you want to explore the genes in more detail.
So the first group defines class and third through eighth define the parts. What about the second group? At this point it’s unclear, but I think at least one or two things can be found here by doing a little more analysis. Specifically, the color and possibly the body shape (everyone loves fuzzy bodies!) are probably defined in this group.
If you want to adopt an Axie, you can use this link: https://axieinfinity.com/adopt-axies?r=CHl5UkYrgttjndv97yqxcY_6dnY and I’ll get a referral bonus :)