Giter Site home page Giter Site logo

seichris / eth2-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from volcatech/eth2-app

0.0 1.0 0.0 43.86 MB

Send Ether or tokens via links

Home Page: https://eth2.io

License: GNU General Public License v3.0

JavaScript 86.82% CSS 12.54% HTML 0.64%

eth2-app's Introduction

Eth2

Eth2 App allows you to send Ether or tokens to anyone simply via links.

Overview

Eth2 allows to send ether to anyone even without Ethereum wallet. The receiver will get the special link and be verified using phone number. The only requirement for you as a sender to have the Web3 compatible Ethereum wallet with sufficient balance and the phone number of the person you are willing to send ether to. You will need to share a special message with the receiver with the link containing all the instructions, following which he or she will download the wallet (or use existing one) and receive assets to it.

Beta

You can play with beta at https://eth2.io. The App supports Ethereum Main and Ropsten Test networks right now.

Video:

Transfer details

Send

Send

  1. Sender generates transit private-public key pair, deposits ether to Escrow Smart Contract and assigns transit public key to the deposit. On withdrawal Escrow Smart Contract verifies that receiver's address is signed by the transit private key.
  2. Sender encrypts transit private key with random secret code and sends encrypted transit private key to verification server.
  3. Sender passes the secret code to receiver by the way he chooses (voice, sms, e-mail, etc.)

Receive

Receive

  1. Receiver types in his phone number and the secret code. Hashed phone verification request is sent to server. (So not at any point in time verification server has the transit private key.)
  2. Server sends the verification code via SMS to the phone entered.
  3. Receiver gets the code from SMS and types it in. If the code is correct, server returns encrypted transit private key to receiver.
  4. Receiver decrypts the transit private key with the secret code provided by sender and gets the transit private key. Receiver signs address of his choice with the transit private key. Receiver sends signed address to verification server.
  5. Verification server tries to withdraw ether from Escrow Smart Contract to signed address. If signature is correct, the transaction is executed and receiver gets the ether.

Running on Ropsten or Mainnet

Works best with Trust Wallet on mobile. You can also use a Desktop Browser with installed Metamask or any Web3 compatible browsers. Go to https://eth2.io to use the App.

Code structure

./src - all Javascript/React code is located in this folder.

./src/services/eth2phone/index - all interaction of the web app with the Escrow Smart Contract and Verification Server is defined in this file.

./contracts/e2pEscrow - the Escrow Smart Contract, which locks ether from sender and withdraws ether on request from the owner to address signed by transit private key. Verification Server deploys the contract and controls Smart Contract's owner account.

./test - tests for the Escrow Smart Contract

This repo contains Front-End code + Smart Contracts. Verification Server's code is located in the separate repository

License

MIT Liscense

eth2-app's People

Contributors

dobrokhvalov avatar seichris avatar sshmhh avatar

Watchers

 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.