Hi we're the {Set} Protocol team. We've been building out the Set abstraction for ERC20 tokens so that we can group together tokens and transact in batches. This provides convenience and gas-savings and we thought we could apply the similar idea for ERC721 tokens. The first thing that came to mind was being able to create "Booster Packs" (similar to Magic: The Gathering or Pokemon cards) of non-fungible tokens. We started with the famous CryptoKitties as an example, but this could theoretically be applied to any group of ERC721 tokens and be traded around as a single token.

What it does

We mint new ERC721 tokens that are comprised of ERC721 tokens. The new Set token is able to be traded around between users as a single token despite having many tokens inside. The Booster Pack idea randomly selects 5 CryptoKitties from a pool of CryptoKitties on the blockchain before minting the new token and giving it to the user. When they open it for the first time, they may even be surprised to find a Gen-0 CryptoKitty (assuming they paid the extra Ether to buy the "Gold" packs).

How we built it

We used a similar approach to how we built ERC20 Sets and just extended it to the ERC721 interface to support the new use cases and methods.

Challenges we ran into

  • Trying to create "randomness" in the blockchain
  • Making cute CryptoKitty crate pictures

Accomplishments that we're proud of

Building out our Set abstractions on non-fungible tokens so that we can further increase the usefulness of {Set} Protocol.

What we learned

There's still so much room for the Ethereum dev experience to grow and improve. Ran into a lot of testRPC/Metamask issues while developing locally.

What's next for Kitty Crates

We need to further extend the code to handle other non-fungible tokens and add some metadata to the tokens so that we can track some extra information. The way it is currently built already supports any ERC721 token, we just didn't have the time to build the UI for it.

+ 18 more
Share this project: