Introducing BitKoi: Digital Fish that Swim on the Ethereum Blockchain

Why I built a blockchain-based game that lets you mix, match, and hatch digital fish—and what I learned along the way.

deepbluesteeve
7 min readOct 15, 2021
The first BitKoi created on the Ethereum mainnet, Sōsei-ki

Over the last couple of months, I’ve been building a game that lets you own, breed, and hatch digital koi using blockchain technology. This project has been really challenging, and I’ve had to:

  • Learn Solidity, the programming language for smart contracts (code that runs on the blockchain)
  • Learn scripting for After Effects in order to build a render pipeline capable of creating unique, custom animations of BitKoi
  • Build a render pipeline and metadata server, which are responsible for storing the images, videos, and all the other information about a BitKoi off-chain.
  • Create a website where you can mix, match, and hatch your BitKoi
  • Learn about the communities that are springing up around NFTs; many projects are scams and/or take themselves far too seriously. We’re taking a different approach.

Over the next week or so, I plan to publish a series of posts that goes deeper into some of these areas. If you’d like to be closer to the project as we continue to develop and launch, you can join us here:

NFTs and The Ethereum Blockchain: A Quick Explanation

I first heard the term NFT last March. My friend, artist Danny Jones, started “minting” some of the digital 3D sculptures he rendered on the Foundation app. Someone bought one of his first pieces for 1ETH, which at the time was $3,600. This digital art isn’t cheap: items on the site are routinely auctioned for hundreds of thousands of dollars.

One of the most promising and appealing aspects of NFTs is that creators have a new platform to financially benefit from their work and talent, which is often under-valued. But blockchain gaming isn’t just mixing creatures and collecting digital art; It’s also the wild west of speculative, unregulated financial instruments, overridden with scams (I’ll go deeper into this in another post soon).

An NFT, or non-fungible token, is typically digital item underwritten by a blockchain-based contract that demonstrates proof of ownership. Technically speaking, an NFT is really just a confirmed transaction on the Ethereum blockchain that contains a little bit of metadata (specifically, which URL to look at to find the associated video, image, or other asset that comes with. Because storing data on the blockchain is relatively expensive, these assets are often stored on traditional servers like AWS or Google Cloud. The NFT really just “points” you to it. Here’s the transaction that created the very first BitKoi:

https://etherscan.io/tx/0x82356f3e4d0e94da2a0ee872032e5ebcde23dcc620e0fad5af6c5abc777bef1d

Historically, when the price of Bitcoin has skyrocketed, so has interest in these digital assets:

Interest in the term “NFT” since 2016, according to Google

While the term only recently has caught on, NFTs have been around for a few years. The first time I actually owned one was in late 2017, when I bought a few first-generation CryptoKitties. It’s a simple game where people breed and auction digital cats, whose value was based on which “cattributes” they had: some colors, eyes, or mouth shapes or tails were more or less rare. They were expressive and cute, and it was fun to mix and match them until cryptocurrency crashed and it cost more in gas (fees you pay to transact on the Ethereum blockchain) to breed or auction the kitties than they were worth. I liquidated my litter and left the NFT scene.

One of the most popular and newer projects is NBA Top Shots, which is basically, the blockchain equivalent of basketball trading cards (It’s made by Dapper Labs, the same company behind CryptoKitties). Short video highlights from NBA games are packaged into digital assets, which people can then purchase like trading cards:

As I said earlier, there are a number of scammy, spammy NFT projects in the marketplace now — but there are also innovators who are coming up with some really interesting uses for blockchain technology, and that’s the reason I decided to learn how to build something.

Why I Decided to Build an NFT Project

I love learning new frameworks, programming languages, and tools. The idea that data could be stored in a decentralized, permanent format feels like it can have a lot of potential utility, especially as the transactions get more efficient and the technology evolves. So I wanted to jump in and start learning about how blockchain programming works by building something I’d enjoy.

Maybe the only thing I love more than tech tools is garden ponds and fish tanks — I have a large pond I built by hand in my back yard, stocked with Koi. They’re fascinating creatures and it’s fun to watch them grow and come up to the surface begging for food any time people walk by. Mixing and matching Koi in order to selectively achieve certain traits is a thing people do in the real world, and so I wanted to explore how this art would translate to the digital one. Initially, I envisioned an immersive experience where you could see and interact with your digital fish in 3D space. But 2D renders were better suited for an MVP. I partnered with one of my friends, who’s a professional illustrator and animator, and they turned out beautiful. This project was the perfect intersection between my love for technology and tools and my love for ponds and fish tanks.

Cryptokitties was the inspiration for BitKoi — but I wanted to take the concept further by adding a “surprise egg” element to the game. Before deciding which specific combination of traits a BitKoi has inherited from its parents, it’s an egg (which can also be bought or sold) that hints at what it might become:

Each BitKoi starts as an egg. First-generation BitKoi hatch from rainbow eggs and are born with a completely random set of traits — this is the best way to discover new, rare attributes.

First-generation BitKoi hatch from rainbow eggs and are born with a completely random set of traits — this is the best way to discover new, rare attributes.

Many NFTs are static renders — simply layered PNGs that are batch-produced but then called “unique.” Even in some of the most prominent projects, the game maker decides what these combinations are, renders them out, and then assigns them when people “mint” their NFTs. How a BitKoi looks is completely determined by the game contract, and there are over 5M possible permutations of colors, fins, tails, and other traits. There are so many that we haven’t even developed them all; this means BitKoi will evolve over time.

We designed BitKoi to be colorful and cute, and they include colors and features that wouldn’t occur in the natural world. This gives us the freedom to create fish that have special attributes and other interesting animations in the future, which can be unlocked by combining BitKoi with specific sets of attributes.

Which Tools I Learned

There were two major obstacles to creating the game. First, games that run on the Ethereum blockchain are written in a programming language called Solidity. Because it’s a relatively new technology, the tools and documentation for developing with Solidity aren’t as far along as other tools, like React.

Next, programmatically rendering 5 Million combinations of video comps and images with each combination felt like a daunting task. More important — I wanted to build assets that moved (not just static PNGs) and looked beautiful.

I started knowing React and Node, so this made for a solid foundation. But I learned about some incredible tools like Remix, Infura, and Nexrender. I’ll dive deeper into the tech — and how our contract works — in a later post.

Blockchain and NFTs are a Fast-Growing Community

One thing I’ve learned while building BitKoi is that the peer-to-peer network that powers the Blockchain is inherently social. Once an app is launched on the blockchain, there’s little the creator can do in terms of managing the game: the rules have been permanently written and the contract enforces them. Instead, the maker’s responsibility is to support the people who play the game and make improvements to their experience.

Creating a first-class experience means building an interface for the game where people use their BitKoi to create new eggs; establishing a community on Discord for the people who are interested in the game; and providing support to players making our development team accessible to everyone on the site and in our Discord chat.

Some of the NFT projects out there take themselves far too seriously — they provide lofty road maps speculating about features they’ll never be able to build. “Membership” in these groups is exclusive to those who own certain tiers of assets, and people pay hundreds of thousands of dollars in some cases for access. Our vision for BitKoi is to build a fun project/game, learn a lot along the way, and share it with our friends and anyone else who’s interested.

I also learned that no modern NFT project is successful without a roadmap, so here’s our super-serious plan for 2028 and beyond:

2028 is gonna be lit!

More to Come

This project has kicked my ass over the last few months. There have been some super late nights and long weekends, but it’s been a lot of fun learning about this new tech and building something I’m proud of with one of my friends. We’re open to feedback! Let us know if you have ideas or how we can improve.

I’ll be sharing lots more over the next two weeks before we actually hatch the first BitKoi; for now, you can see what we’ve built at https://www.bitkoi.co.

--

--