/unicoin2.0

Ethereum dapp enabling academics to monetize their research for commercial applications while supporting open science

Primary LanguageHTMLMIT LicenseMIT

UniCoin2.0

Netlify Status

UniCoin is a decentralized, smart contract based non-custodial research marketplace which empowers academics to benefit from commercially viable work. Companies can buy direct access to ideas they want to implement and are issued an NFT based licence which represents their access to the papers content. Papers are free for non-commercial usage. Research is always free for open-source and other research projects.

Unicoin began as a group project for the Mphil in Financial Technology at the University of Cape Town for the courses Fintech and Crypto Currencies and Financial Software Engineering and later formed the basis for a number of masters dissertations. The original repo can be found here.

The masters thesis accompanying this repository and all associated documentation can be found here. The other thesis, created by Luke Meiklejohn, can be found here.

Documentation

This repo also contains a series of useful documents from the original unicoin project which are equally relevant for Unicoin2.0, including:

  1. Pitch deck 1
  2. Pitch desk 2
  3. Business Plan
  4. User story maps

This monorepo contains all code for the UniCoin ecosystem.

Front End

Front end application can be run as outlined below:

Project setup

yarn install

Compiles and hot-reloads for development

yarn run serve

Compiles and minifies for production

yarn run build

Smart contracts

This repo also contains smart contracts to facilitate auction listing, licence minting and account management.

compile contracts

truffle compile

compile contracts

truffle compile

test contracts

truffle test

deploy contracts to rinkeby

truffle migrate --network rinkeby

upgradable contract deployment

Unicoin's smart contracts were written to be upgradable using the Openzeppelin SDK. To deploy an upgradable version of the dapp run and then follow the consol prompts.

zos push

For more details on using ZOS and all associated functionality please see here.