Skip to content

Latest commit

 

History

History
114 lines (81 loc) · 2.8 KB

README.md

File metadata and controls

114 lines (81 loc) · 2.8 KB

BlockXfer Documentation

Table of Contents

Overview

BlockXfer is a cryptocurrency transfer platform that allows one to send or request digital assets using the recipient's phone number. The platform relies on a two-way mapping between phone numbers and hexadecimal identifiers, known as public addresses, which are stored in IPFS.

Features

  • Transfer Assets: Seamlessly send digital assets between two registered users.
  • Request Assets: Request assets from either registered or unregistered users.
  • Escrow Functionality: Securely holds assets for unregistered users until they complete the registration process.

Tech Stack

Built with the following technologies:

  • Solidity
  • Hardhat
  • ReactJS
  • Nodejs
  • OpenZeppelin
  • Twilio SDK
  • IPFS

Future Updates

  • Bridging assets to different EVM chains.
  • Redirecting escrowed assets to financial markets like Aave and Compound Finance.

Backend Functionality

The Node.js backend application is responsible for:

  1. Mapping phone numbers to blockchain addresses and vice versa.
  2. Verifying phone numbers and registering users.
  3. Acting as a middleware between the frontend and blockchain contracts.

Screenshots

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Demo Video

Getting Started

Environment Setup

Update the Following Files:

  1. .env file in the Backend-Server folder:

    • SECRET_ENCRYPTION_KEY
    • TWILIO_ACCOUNT_SID
    • TWILIO_AUTH_TOKEN
    • TWILIO_VERIFY_SID
    • TWILIO_PHONE_NUMBER
    • DEPLOYED_PHONE_CONTRACT_ADDRESS
    • RPC_URL
  2. .env file in the Backend-Contracts folder:

    • SECRET_ENCRYPTION_KEY
  3. Create Backend-Server/ipfsData/backup.txt: The IPFS URI will be stored and constantly updated here.

Running Locally

Frontend:

cd Frontend
npm install
npm start

Backend:

cd Backend-Server
npm install
node app.js

Smart Contracts:

If you wish to run this in your development environment, generate the contract ABIs by executing the following commands:

cd Backend-Contracts
npx hardhat compile