We wanted to create an easy way to communicate with ENS names. The end goal is to create a fluid messaging platform that all users of Metamask could access easily. Use cases include being able to message ENS names (companies, people, etc.) that you don't know personally and receive broadcasts in a decentralized way, all through Metamask itself.
What it does
Users can send a message to any address/ENS name. Their message will be put on IPFS with the hash uploaded to the smart contract. The message will pop up in Metamask's native UI and the recipient can access the message directly in Metamask.
How we built it
Dfuse was used to listen for updates to the smart contract, allowing us to update Metamask's UI to reflect incoming messages. Metamask's Plugin API was crucial to be able to add our messages to the list in the sidebar. ENS was used and resolved to allow our application to interact with human-readable names instead of raw addresses directly.
Challenges we ran into
None of us have ever used Metamask's Plugins or Dfuse's API, so working through the kinks took some time (but our mentors provided enormous help!!!). We were also all used to using React, so writing vanilla html and js again felt like an unfortunate blast to the past.
Accomplishments that we're proud of
We're proud of getting the whole thing to work quite seamlessly!
What's next for Connexion
We feel that this is functionality that should be built into future versions of Metamask! We would happy to carry it forward and integrate more deeply with Metamask/Ethereum.