HighFy Me is a fully decentralized, web3 native, wallet-to-wallet messaging system. The motivation was to avoid the spam and missed out updates while using discord & twitter.
Demo: HighFy.me
Videos:
- Account Creation: https://youtu.be/NokLvVyfylI
- Sending Messages: https://youtu.be/iLrKfVtC-lU
- Responding To Messages & Collecting Payments: https://youtu.be/b6vhCSS8C9Q
- Whitelisting a Message: https://youtu.be/rj3HkjvEyW8
- Decentralized: Uses IFPS to store data and blockchain events to maintain provenance
- End-to-End Encrypted: The messages stored are encrypted such that only the wallet owner can decrypt and see the contents.
- Anti-Spam: Any message is by default sent to spam. In order to get out spam, either the address is whitelisted by the receiver, or the sender needs to pay some credits to the receiver to read the message.
- Cross-Chain: Since it's a wallet-to-wallet service, any EVM address can send it to any other, irrespective of the chain they are in.
- Gasless: The messages can be signed my the sender and submitted in a gasless way. (The application will submit it to polygon).
Note:
- The gasless/cross-chain features are in a separate branch, they will be deployed once the EIP-712 standards are implemented for message signing.
- Currently the addrCredits feature is not shown on UI to keep up with the cross-chain functionality. Credits are added separately by interacting with the contract.
Checkout thoughts.md for reference and upcoming list of features.
- New Message, New Sender, 0 credits: Any message from a sender not whitelisted, goes directly to spam. Any message back from the receiver goes to the sender's inbox.
- Attach Label: A receiver can whitelist an address to Inbox or Subscription or mark as spam. Any future messages from the address is added to the respective categoy.
- Collect: Any message (whether from a whitelisted address or a new address), if has credits, it's shown in the collect menu. The receiver can either accept the credits and whitelist the address, refund the credits while whitelisting the address or accept the credits while marking as spam.
Components:
- IPFS
- Blockchain
- Graph Indexer
- Wallet Provider
- Javascript Client & Server
Note: The contract code and graph indexer schema & mapping can be found here.
Sample Files:
This is a Next.js project bootstrapped with create-next-app
.
First install dependencies & run the development server:
npm install && npm run dev
# or
yarn install && yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.js
. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.js
.
The pages/api
directory is mapped to /api/*
. Files in this directory are treated as API routes instead of React pages.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.