Hashchat’s encrypted wallet-to-wallet message provides all crypto wallet users with a web3-native communication platform built on existing wallet and public key infrastructure. The future of web3 communication is encrypted and cross-chain => not just ETH-ETH, but also ETH wallet can message any SOL wallets, Tezos to message BTC and beyond -- all secure, encrypted and decentralized.
-Messaging requires a solid wallet / key infrastructure and then a cross-chain data provider to store messages -- IPFS is perfect for this as it allows us to store messages destined for ETH, SOL, BTC or any other chain.
Tech stack: We’re using Cermic networks’ 3ID sdk and decentralized identifier (DID) plus their APIs for writing to IPFS. On top of this, we are using lit-protocol's encryption layer which provides a mechanism for one wallet to encrypt a symmetric key with the recipients public key, then encrypt the message with that key. When the recipient opens the app and connects their wallet, it grabs the new ‘streamIDs’ via a lookup and then searches on Ceramic / IPFS for the document. It receives the document header and decrypts the symmetric key and then uses that key to decrypt the content. In this way, it’s fully encrypted, we can use a globally available, cross-chain, decentralized data layer.
We implemented it using Typescript React app calling the ceramic and lit protocol libraries and SDKs. We are Nextjs for the visualization portion, MaterialUI for the react. We are also tracking everyone’s contribution via sourcecred.