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.
- 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.
Built with the following technologies:
- Solidity
- Hardhat
- ReactJS
- Nodejs
- OpenZeppelin
- Twilio SDK
- IPFS
- Bridging assets to different EVM chains.
- Redirecting escrowed assets to financial markets like Aave and Compound Finance.
The Node.js backend application is responsible for:
- Mapping phone numbers to blockchain addresses and vice versa.
- Verifying phone numbers and registering users.
- Acting as a middleware between the frontend and blockchain contracts.
-
.env
file in theBackend-Server
folder:SECRET_ENCRYPTION_KEY
TWILIO_ACCOUNT_SID
TWILIO_AUTH_TOKEN
TWILIO_VERIFY_SID
TWILIO_PHONE_NUMBER
DEPLOYED_PHONE_CONTRACT_ADDRESS
RPC_URL
-
.env
file in theBackend-Contracts
folder:SECRET_ENCRYPTION_KEY
-
Create
Backend-Server/ipfsData/backup.txt
: The IPFS URI will be stored and constantly updated here.
cd Frontend
npm install
npm start
cd Backend-Server
npm install
node app.js
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