Git Product home page Git Product logo

highfy-me's Introduction

HighFy Me

Introduction

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:

  1. Account Creation: https://youtu.be/NokLvVyfylI
  2. Sending Messages: https://youtu.be/iLrKfVtC-lU
  3. Responding To Messages & Collecting Payments: https://youtu.be/b6vhCSS8C9Q
  4. Whitelisting a Message: https://youtu.be/rj3HkjvEyW8

Contents

  1. Introduction
  2. Features
  3. Deep-Dive:
  4. Using it locally

Features:

  1. Decentralized: Uses IFPS to store data and blockchain events to maintain provenance
  2. End-to-End Encrypted: The messages stored are encrypted such that only the wallet owner can decrypt and see the contents.
  3. 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.
  4. 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.
  5. Gasless: The messages can be signed my the sender and submitted in a gasless way. (The application will submit it to polygon).

Note:

  1. The gasless/cross-chain features are in a separate branch, they will be deployed once the EIP-712 standards are implemented for message signing.
  2. 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.

Deep-Dive

Scenarios

  1. 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.
  2. 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.
  3. 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.

Application Screenshots

  1. Inbox: Inbox

  2. Sending Mail: Send Mail

  3. Respond to Mail With Credits Collect

Architecture

Components:

  1. IPFS
  2. Blockchain
  3. Graph Indexer
  4. Wallet Provider
  5. Javascript Client & Server

ArchitectureImage

Note: The contract code and graph indexer schema & mapping can be found here.

Sample Files:

  1. Mail IFPS File
  2. Key IPFS File

IPFS Screenshots

  1. User Keys IPFS File: UserKeysFile

  2. User Private Key IPFS Content: UserPrivateKeysData

  3. User Public Key IPFS Content: UserPublicKeysData

  4. Encrypted Message Stored on IPFS: EncryptedMessageOnIPFS

Using It Locally

This is a Next.js project bootstrapped with create-next-app.

Getting Started

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.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

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.

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.