This project is an exploration of the ability to release tradable collectibles and record their ownership on the Ethereum blockchain. This feature of blockchain technology has been demonstrated by recent projects such as CryptoPunks. We have expanded on the idea and added a few novel, and what we think are exciting, features:
Instead of selling all of the MoonCats as the contract owner or giving all of the MoonCats away, we have given people the opportunity to find MoonCats by using their computers to generate a seed that hashes to an available and unique catId. This seed can then be submitted to the contract to rescue the corresponding MoonCat. The resulting MoonCat is initially owned by the Ethereum address that submitted it.
An off chain algorithm, the MD5 checksum of which is stored in the contract, parses the catId into its unique corresponding MoonCat image. This allows you to verify that your catId corresponds to your MoonCat image.
Additionally, the search seed is not known before the contract is activated. The search seed is generated based on the hash of the most recently mined block when a special activate function is called. This prevents the contract owners from using a known search seed to premine all of the MoonCats, and guarantees that the contract owners do not have a mining advantage over the rest of the community. Once the contract has been activated, it cannot be deactivated.
There are over 4 billion unique MoonCats possible. However, only 25,600 MoonCats can be added to the contract. This combination of mining with procedural generation allows for a unique experience that cannot be predicted before the contract is launched. Rescuers have the power to choose whether they want specific MoonCats to become part of the contract or not.
MoonCats can be named, but they can only be named once. Owners have to decide whether they want to name their MoonCat or keep it unnamed. We think that this creates an interesting dynamic. Owners can leave their mark by being the first and only person to name a MoonCat. However, it is our guess that unnamed MoonCats will fetch a premium in the Adoption Center.
We do not charge or receive any Ether when you rescue a MoonCat. However, you do need to pay gas on the Ethereum network to rescue a MoonCat. This will typically cost around $0.50, give or take a few cents. Other transactions, such as naming MoonCats or offering MoonCats up for adoption, will also cost a similar amount.
All of the transactions are recorded on the Ethereum blockchain. Blocks are not mined instantly, and thus you have to wait for your transaction to be included in the next block. This makes the experience slower than on a normal website - please be patient!
The funds for adoption requests are held in escrow in the smart contract. You can reclaim them any time (before your request is accepted) by cancelling your request.
The Genesis MoonCats cannot be rescued like the other MoonCats. They are unique black and white cats that can only be adopted. There are a total of 256 Genesis MoonCats and they are released in batches of 16 when we call the addGenesisCats function in the contract. The first round of Genesis MoonCats can be adopted for 0.3 Ether each. Each subsequent round of Genesis MoonCats can be adopted for 0.3 Ether more than the last round. Ether spent to adopting the Genesis MoonCats is burned. This means that the ether is sent to 0x0000000000000000000000000000000000000000, an address that no one has access to.
You are part of this rescue operation as much as anyone else, and therefore, you should decide what is best for you and the MoonCats.
The MD5 checksum of the algorithm that parses your catId into your MoonCat is stored in the contract. For reference it is: 0xdbad5c08ec98bec48490e3c196eec683. You can verify that mooncatparser.js hashes to the same value. You can download the parser from our GitHub and check for yourself!
Your MoonCat name can only be 32 bytes, which is between 8 and 32 characters in UTF-8 depending on the characters used.
Unfortunately, there is nothing we can do. Once the contract is deployed on the Ethereum network and activated, it is out of our hands. Please be careful when storing accounts and passwords.
You can find the contract at this address: 0x60cd862c9C687A9dE49aecdC3A99b74A4fc54aB6
Or, alternatively at: mooncatrescue.eth
No MoonCats will be harmed in the process. We promise that they will have a better life here on the Ethereum blockchain than on the moon It is a very cozy life on the blockchain. And who knows? Maybe one day they will make it back to the moon.
Come discuss and post all things MoonCats at the subreddit: r/MoonCatRescue.
Nope. We intended to collect ether from the sale of the genesis cats. As it turns out however, a fix we made during our QA process led to those funds being locked away forever. But that is okay.
Now the profit from the genesis cats is distributed across all Ethereum holders since each genesis cat adoption burns the eth and decreases the total supply.
Though this wasn't our original plan, this outcome is in keeping with the goals of MoonCatRecue. One of the biggest being our focus on exploring and experimenting with distribution methods. Now when you buy the rarest cats, you are contributing to the entire ecosystem.
We are two people who thought this was an interesting project that demonstrated some new ideas. This was our first foray into the world of decentralized applications. We plan on hanging around and making more projects!
We'll be happy to let you know once we are ready! Follow us on twitter for updates.