We are excited to submit Coin.Ƙred to the Galactic Community.
Below is a description of our entry to the 8th Stellar Challenge
OUR PROJECT
Coin.Ƙred is a platform for creating Collectible Coins that carry social actions, connections and conversation. Here is a short Deck - https://docs.google.com/presentation/d/1XJ2TbwDV8NXMHFnSi5kBlTVFC-i4RBCtPeVqexHWcLw/edit?usp=sharing
Stellar and Ethereum have different strengths. We have built a dual Blockchain platform (with a developer api) and demonstration applications to leverage the strengths of both ledgers.
THE STELLAR TECH
Coin.Ƙred uses Stellar as a ledger for member wallets and transactions.
A custom asset, combined with a type code and a unique 135-bit key packed into the transaction memo field, uniquely identifies each balance and token. The unique ID then links to the detailed token metadata in IPFS or via the Coin.Ƙred API. Stellar is sufficiently fast that most operations can happen synchronously, simplifying code and greatly improving the user experience.
ERC20 on Stellar
The application's cryptocurrency, CƘr, is issued as an ERC20 token on the Ethereum network. A special Ethereum wallet is reserved to represent CƘr in circulation on Stellar, and the same amount issued as an asset on the Stellar network. Each Stellar wallet holding CƘr or Coin.Ƙred coins has a trustline back to the issuing account.
ERC721 precursor on Stellar with IPFS
As the metadata on Stellar is very limited (a single field per transaction of at most 32 bytes), the detailed metadata is instead stored on IPFS and linked to the coin by the unique 135-bit key, which also acts as a hash to verify the metadata. Although the key space is somewhat small by cryptographic standards, coins cannot be forged because the Stellar ledger contains a verifiable history of each key.
THE BIDIRECTIONAL BRIDGE - Moving tokens between Stellar and Ethereum.
How it works
All coins are minted on the Stellar network, identified by a unique hash, with metadata stored in IPFS. To transfer to Ethereum, the coin is moved to a system wallet on the Stellar network, and a token is generated using the Coin.Ƙred ERC721 contract on Ethereum.
Each ERC721 token holds the key details of the coin (token ID, value, batch, and so on) and metadata URIs for both the Coin.Ƙred API and IPFS (using the IPNS protocol).
Metamask integration
Metamask can receive and send ERC20 tokens - CƘr, in this case - and can receive ERC721 tokens, but cannot identify ERC721 tokens as individual items, much less visualize them. We use the Metamask API to integrate with the Coin.Ƙred app so that transactions are handled by Metamask but the user experience is handled within the app, making it almost as seamless as using the app with Stellar.
CryptoKitty integration
As a sample integration with existing ERC721 apps, we connected Coin.Ƙred to the CryptoKitties API, allowing kitty owners to mint and trade coins based on their kitties. The integration allows Coin.Ƙred to find the kitties in your Metamask wallet, determine their traits, and appearance, and automaticaly generate a matching coin for you to share. Via SocialOS, each kitty coin also has an attached social message stream.
SocialOS.io integration
Each coin and collection has an attached message stream built using the SocialOS.io API. Coin streams can be public or private, unique to a coin, or shared as a mesh network across multiple coins. Membership in the stream is granted automatically when a new user receives the matching coin, though the original issuer retains the rights to moderate messages and ban disruptive users if necessary.
OpenSea and Rarebits integration
The ERC721 token supports the latest metadata standard, embedding a URL to the Coin.Ƙred API that provides JSON data to exchanges such as OpenSea and Rarebits. This provides for images, names, and URLs, and user-accessible properties, such as the name of an artist or the time and place a photo was taken. OpenSea and Rarebits uses different property formats, so the metadata is automatically formatted to support both platforms.
PROJECT STATUS
Beta Developer API released - https://docs.Coin.Kred
CryptoKitty app version released - https://www.Kitty.Kred
General purpose version released - https://www.Coin.Kred
Android App Beta version available in Google play - https://play.google.com/store/apps/details?id=com.peoplebrowsr.coin.kred
A landing page published about the integration https://www.Ethereum.Kred
0x experiment - 0x released ERC721 support last month. We are working on integrating 0x into the platform - Coins created on Stellar will then be exposed on the 0x exchange network