Skip to content

MouserBoard proof of concept for 0x + Coinlist Hackathon

Notifications You must be signed in to change notification settings

saccodd/mouserboard

Repository files navigation

MouserBoard

[UPDATE] Beta Release: www.mouserboard.com

MouserBoard is the board for crypto gamers.

  • Discover - Track and talk about the last released and rarest collectibles
  • Connect - Connect with top gamers and follow their activity and updates
  • Collect - Start your collection with just a few clicks. Play, trade, earn!

Following video showcases a potential interaction happening on MouserBoard, thus implementing a discovery and communication layer on top of Ethereum.

Introduction

MouserBoard has been developed during the 0x + Coinlist hackathon.

This proof of concept implements 0x for trading NFTs, specifically collectibles and in-game assets.

0x has been integrated to run on Kovan testnet, mint a fake ERC721 token at runtime, and let the user perform the buy transaction.

For technical details or installation on your local machine, keep reading.

Pre-requirements

The webapp uses Sails.js framework and MongoDB.

You will need:

Data preparation

MouserBoard extracts and transforms raw data from Ethereum blockchain, without integrating with any dApp-specific API.

Data is retrieved from Google BigQuery Ethereum public dataset and current implementation analyses CryptoKitties contracts only.

Current implementation focuses on processing auctions and births of kitties, in order to build following KPIs:

  • Top sellers - total sales per owner

  • Rarity of items - ad hoc algo to weight the rarity of kitties genes/cattributes

For testing purposes, this repository includes a small subset of the data processed by MouserBoard.

Preprocessed data from Jan 15th to Feb 4th, 2019 is available in ./data folder.

Furthermore, to force the webapp to work on this subset, today date has been overridden in our code (i.e. Feb 4th, 2019).

Following section describes how to import above mentioned subset to MongoDB.

Database

The webapp expects data to be available on a local MongoDB instance with the following setup:

  • localhost without authentication on port 27017

  • database name: mouserboard

  • sales data in sales_subset collection

      mongoimport --db mouserboard --collection sales_subset --type tsv --file ./data/sales_subset.csv --headerline
    
  • releases data in releases_subset collection

      mongoimport --db mouserboard --collection releases_subset --type tsv --file ./data/releases_subset.csv --headerline
    

If you need to customise your configuration, please see:

Further information on database configuration is available on Sails.js framework website.

Getting started

After setting up the database, clone this repository and run:

npm install

Run the webapp:

sails lift

The webapp will be available at localhost:1337

To perform the transaction as of the demo, you need a wallet bridge (e.g. Metamask) and switch to Kovan testnet.

0x integration

0x integration is client-side for demo purposes.

Our implementation is inspired by the forwarder_buy_erc721_tokens scenario available in 0x Starter Project.

A random token is minted at runtime on Kovan. So, the kitty shown in the webapp is only demonstrative.

However, the transaction is actually confirmed by the current user through his/her wallet (e.g. TX in the video).

The code for 0x integration is provided here.

Future work is the implementation of the actual relayer to trade real ERC721 tokens on mainnet

About

MouserBoard proof of concept for 0x + Coinlist Hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published