Build

APIs, Code, and Catnip; Oh My!

One of the key features of the Ethereum blockchain is that it's an open, global infrastructure, and so with MoonCats being part of that, third-party developers can easily integrate with MoonCats, and build applications that can detect whether the visitor is a MoonCat owner or not.

MoonCats Contracts

Interacting with the on-chain data for MoonCat projects can be done directly with the Ethereum smart contracts, for those who wish to work directly with that raw data. If you want some more formatted scripts for interacting with this data, see the next section instead.

MoonCat​Rescue contract(mooncatrescue.eth) The original contract that started this project off! It is an ERC20-like contract with custom enumeration of each MoonCat.

Acclimator contractA "wrapping" contract that takes a MoonCat from the original contract, and converts it to an ERC721- and ERC998-compatible token. Web interface for interacting with this contract is The Acclimator .

MoonCat Accessories(accessories.mooncatrescue.eth) On-chain visual modifications for MoonCats that can be purchased by their owners. Web interface for interacting with this contract is The Boutique .

lootprints (for MoonCats)(lootprints.mooncatrescue.eth) An ERC721 token collection that represents plans for building MoonCat-styled space ships.

MoonCatMoments(moments.mooncatrescue.eth) An ERC721 token collection that represents moments in time for the MoonCat​Rescue community. They are photographic souvenirs for the MoonCats that participated in each Moment. More details and an interface to claim Moments is on the ChainStation .

MoonCat ENS Resolver(ens.mooncatrescue.eth) A contract that adheres to the Ethereum Name Service (ENS) Resolver interface. It is used by the MoonCatNameService application to give every MoonCat their own ENS subdomain.

The JumpPort(jumpport.mooncatrescue.eth) A universal staking contract, designed to be a programmable hub for MoonCats to participate in other projects that require them be held in place for specific times. But this contract is universal; any ERC721 collection can use the JumpPort as well! Web interface for interacting with this contract is over here

MoonCatReferenceA contract for storing on-chain documentation in a human-friendly way. It provides on-chain links between the MoonCat​Rescue-related contracts.

MoonCatTraitsPart of the suite of on-chain metadata contracts. A smart-contract implementation of the original JavaScript parser. This contract can take any MoonCat's hexadecimal ID (its "DNA") and parse out the trait information for it.

MoonCatColorsPart of the suite of on-chain metadata contracts. This contract parses a MoonCat's hexadecimal ID and returns the calculated color palette for that MoonCat.

MoonCatSVGsPart of the suite of on-chain metadata contracts. This contract parses a MoonCat's hexadecimal ID and returns a visual of that MoonCat in SVG format.

MoonCatAccessoryImagesPart of the suite of on-chain metadata contracts. This contract parses a MoonCat's hexadecimal ID and returns a visual of that MoonCat in SVG format with accessories that MoonCat owns.

MoonCats Code

The following are scripts, tools, and other source code that assists with interacting and integrating with the MoonCat-related content. These tools make it easier to interact with the on-chain contracts used by the project (see previous section if you wish to interact with that raw data), as well as the supporting code like website source code.

MoonCat​Rescue GitLab GroupCode repositories of multiple open source tools for interacting with MoonCat-related projects, as well as the website source code for the MoonCat​Rescue-maintained websites. Code contributions, bug reporting, and architecture discussions for the project primarily happen here.

LibMoonCatponderwareA Clojure library for helping manage and parse MoonCat-related data, including hexadecimal ID values to visual graphics, as well as applying accessories. Available as a Javascript library for browser use, as well as a Clojure library.

IPFS supporting contentSome of the MoonCat-related projects use IPFS as a means to store some supplemental data, or conversions of the data into different formats. The various CIDs that are of importance to the MoonCatEcosystem are enumerated over on the "Contribute" page (pinning those CIDs on your own IPFS server would help the project keep those resources highly-available to visitors).

MoonCat​Rescue JavaScript ParserA copy of the original JavaScript file used for converting MoonCat hexadecimal IDs into traits, hosted on IPFS. The hash of this file is recorded in the original MoonCat​Rescue contract as an integrity check that the intended traits are being represented accurately.

Ponderware's GithubponderwareRepositories of original MoonCat​Rescue code and tools. These repositories are no longer updated, but are useful for historical context.

Community-Driven Projects

MoonCat Walk Cycle

MoonCat Walk CycleA community-created MoonCat Animated Walk Cycle by vinny-888, acidman, Ctrl+R, and zibzub

Tools to Manage Your MoonCatsBokkyPooBahCollection of developer-oriented tools for MoonCats

Developer Analysis of MoonCat​RescueMidnightLightningA deep-dive into the workings of the original MoonCat​Rescue smart contract

MoonCat ColorsMidnightLightningVisual of the Hue-based color wheel, how MoonCat colors are derived from the catId

MoonCat "K" values explainedMidnightLightningHow the characteristics of a MoonCat are derived from the catId

Mooncat Numbers/RaritiesMidnightLightningA breakdown of MoonCat characteristics


If we've missed something, please let us know on Discord or Twitter