js-waku/examples/eth-pm-wallet-encryption
Franck Royer c4d779d1db
Remove `equalByteArrays`
2022-03-25 17:08:02 +11:00
..
config Update to latest typescript (#438) 2022-01-27 15:25:17 +11:00
public Init commit Eth-PM Wallet 2021-08-12 16:06:09 +10:00
src Remove `equalByteArrays` 2022-03-25 17:08:02 +11:00
.env Remove ReactJS warning about webpack 2021-10-12 11:43:29 +11:00
.gitignore Init commit Eth-PM Wallet 2021-08-12 16:06:09 +10:00
README.md Examples are now deployed in wakuconnect.dev (#485) 2022-02-02 11:56:40 +11:00
package-lock.json Bump eslint from 8.8.0 to 8.9.0 in /examples/eth-pm-wallet-encryption (#523) 2022-02-16 19:07:38 +11:00
package.json Bump eslint from 8.8.0 to 8.9.0 in /examples/eth-pm-wallet-encryption (#523) 2022-02-16 19:07:38 +11:00
tsconfig.json Init commit Eth-PM Wallet 2021-08-12 16:06:09 +10:00

README.md

Ethereum Private Message Using Wallet Encryption Web App

Demonstrates:

This dApp demonstrates how to send and received end-to-end encrypted messages using the encryption API provided by some Web3 Wallet provider such as MetaMask.

The sender only needs to know the Ethereum address of the recipient. The recipient must broadcast his encryption public key as a first step.

The master branch's HEAD is deployed on GitHub Pages at https://js-waku.wakuconnect.dev/examples/eth-pm-wallet-encryption/.

To run a development version locally, do:

git clone https://github.com/status-im/js-waku/ ; cd js-waku
npm install   # Install dependencies for js-waku
npm run build # Build js-waku
cd examples/eth-pm-wallet-encryption   
npm install   # Install dependencies for the web app
npm run start # Start development server to serve the web app on http://localhost:3000/js-waku/eth-pm-wallet

Caveats

This is a PoC with some obvious UX caveats:

  • As the message payload is fully encrypted, the dApp asks MetaMask who in turns ask the user to decrypt every received message (even if we are the sender).
  • This only uses Relay protocol to receive messages, meaning that participants must have the dApp open at the same time to receive private messages or public keys from each other.