Giter Site home page Giter Site logo

goodcoin's Introduction

GoodDollar

GoodDollar is a UBI system built on the Ethereum blockchain.

This repo contains the code for the v0.2 proof of concept. This POC provides the following functionality:

  • ERC-20 token - GTC (GoodDollar Test Coin)
  • Buy and sell tokens from a market maker contact, the price is calculated based on the Bancor formula.
  • UBI - participants can claim tokens that will be transferred to them for free
    • The total amount of tokens available to the pool of UBI participants will be 1% of the total number of GTC tokens
    • This 1% allowance will be divided between the total number of participants and each participant will only be able to make a claim 24 hours or more after their last claim.
    • In order to become a UBI participant you must be whitelisted. Initially only the contract deployer is whitelisted but they can whitelist new users, and they can whitelist new users and so on.
  • Dapp enables users to interact with the contract from their browser + MetaMask

Usage

This section will refer to the test deployment that has been set up on Ropsten testnet.

You have been provided with the details of 1 owner and 5 test user accounts. Please import these accounts into Metamask before proceeding. Each account has been pre-loaded with some ether for gas costs.

alt text

  • You should see the above screen.

UBI participants

If you have been whitelisted then you can click the "claim tokens" button. Metamask should pop up asking you to confirm a transaction, click Submit. You will have to wait for your transaction to be mined (30s-1m). Once you refresh the page you should see your GTC balance updated.

This process will cause the contract to mint the number of tokens that you are entitled to and then transfer them to your wallet.

If you do not see the "Claim tokens" button then you are probably not whitelisted. You will have to ask a user who is whitelisted to add you.

Development

Prerequisites

  • Node.js v8.9.4
  • Ganache (or some other local test ethereum node)
  • Infura API account and ethereum account loaded with some ETH (we're using Ropsten)
  • The following environment variables set in a .env file in /app:
    • MNEMONIC (seed mnemonic of an account where first derived address has positive balance)
    • INFURA_API (infura eth node api key)

Installation

npm install

Deploy contract:

truffle migrate

Update contract_address and server_address in app/src/index.js and app/server.js

Start Ganache or another ethereum node

In a browser go to: http://localhost:3001

Connect to Ganache's network in metamask and import a user from Ganache so that you have ether to spend.

Deployment

To deploy on Ropsten via Infuura ensure the environment vars are set:

  • process.env.MNEMONIC
  • process.env.INFURA_API
  • process.env.NETWORK_ID

Run truffle migrate --network ropsteninfura

goodcoin's People

Contributors

johngriffin avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.