radio3

Having trouble communicating with participants in large events like hackathons?

Jaival Patel
7 min readJul 20, 2022

It’s been a long time since I have written an article about my work. Over the past few months, I have been quite caught up with EthNyc, projects, and of course, radio3. EthNyc was probably the best highlight of these months, not just because I won, but I learned a lot about upcoming technologies and platforms in the web3 space. Some of the apps that stood out to me was EPNS (Ethereum Push Notification Service) and Covalent.

In the simplest words, EPNS is a notification protocol, which enables users to receive notifications. This allows platforms to send notifications or messages to users to their custom wallets either to their Inbox or Spam. Where the message ends up in is dependent on if they subscribed to the sender’s EPNS channel, which is like a discord group that can be joined on the EPNS’s Defi-App. You could learn more EPNS under the Resources section of this article.

Diagram from EPNS.io

Moreover, Covalent is an API that sort of works like a query. With a certain link, we can query the Ethereum or Polygon network for transaction blocks of ERC20 and 721 tokens. If you have worked with web3 apps before, you would recognize how important this is. This allows us, as developers, to get a lot more information about NFTs and token transfers than just metadata and transaction hashes. “More information than just metadata”, you ask? What makes Covalent unique compared to other blockchain APIs is not only the amount of information that can be outputted, but the type of information which can be very useful (you will see an application later!), such as the accounts that owned or owe a certain contract, transaction logs, etc. Similar to EPNS, you can learn about Covalent under the Resources section below!

These platforms opened a new dimension of possibilities. For EthNyc, I initially used these two to create a basic communication system that would send messages to users’ wallets if they had a certain NFT or subscribed to a certain EPNS Channel. This idea did bring a lot of interest from the sponsors (including Covalent, EPNS, Pokt Network, and more), but I realized that it wasn’t as big (in terms of magnitude of impact). After EthNyc ended, I spent several days thinking about how I can add a certain application to this idea, and after a few days of continuous brainstorming activity, I came up with radio3.

radio3 Homepage

Link: radio3

radio3?

Radio3 is a decentralized communication package that targets large-event hosts and developers. Radio3 allows large-event hosts to communicate to their participants important announcements or SOS calls with ease, as their message would be sent right to the user’s wallet with a notification. With a custom ERC721 event NFT, radio3 also allow hosts to keep track of their participants and comes with a Proof-of-Account protocol to make cross-verifying participants of an event much easier. I have realized that large web2 communication platforms like Discord and Slack can become very hectic when there is a large number of participants due to server activity. One prominent example I can think of right now as I am writing this article as a developer is hackathons. When I was in EthNyc, I initially realized how “crowded” discord servers could get. With constant messages from different users, I felt lost and overwhelmed trying to learn information about the event. Hackathon discords are one of the most disorganized discord servers you can be in. As an organizer, no matter how hard you try, it’s impossible to send information to all users due to the server activity from all the other users present. As a result, this makes sending important announcements difficult as not many users will see it. You can cross-verify this yourself the next time you’re in a hackathon, even if there is judging information sent out to all users, there will still be questions asked from participants about the same content that was already posted on the server! Therefore, the goal of radio3 is to simplify the communication processes to a large group of people as event hosts don’t have to struggle sending information (as portrayed above) and can focus on sharing their passion and making sure that their event is amusing for everyone! Moreover, for developers, radio3’s package behaviour also allows developers to implement similar communication processes to their apps or platforms easily.

Functionality

Radio3 in nature is simple. The communication protocols are powered by EPNS, and the fetching of accounts given a certain event NFT contract address is ran by Covalent API. The only prerequisites to use radio3 is an event NFT contract address and an EPNS Subscriber Channel. With these factors set, users can send announcements/SOS calls (capped at 115 letters) through just command. In the backend, radio3 will run a Proof-of-Account verification to see if the accounts are valid and are legit participants in an event before sending the message to all participants in linear time. Linear time is decent as it ensures that when querying, radio3 does not send messages to invalid addresses and does not run into a stack overflow. After the message is sent to all participants, depending on if they have subscribed to the event EPNS Channel or not, they will get the announcement in their “inbox” or “spam” on their wallet. It should be noted that both work the same in nature but have different names. Along with sending communications, event hosts can see the participants and activity of the event right from their wallet as well. The simplicity of radio3 is what makes the package small but precise for its problem it’s trying to solve.

It should be noted that there are two ways one can download and access radio3. If you want to test or play around radio3, the user must use the staging version as it is running on the Kovan test network. The production version is if events want users to be on the main Ethereum network. Radio3 regardless of the version or type will scan NFTs on any Ethereum or Polygon network — the difference comes with the EPNS subscribed channels and if that’s on the staging or production app.

Proof-of-Account Protocol

The Proof-of-Account protocol is not as complex as other verification protocols as it does not involve any discrete mathematics at all. Essentially how the protocol works is when a user wants to explicitly send their message to all participants that hold a certain NFT, radio3 will fetch all the subscribers in the EPNS Channel and compare the addresses with the NFT addresses in linear time. If an address that holds an NFT is not in the EPNS Channel, radio3 will warn the event organizer about this certain user and that the message will be sent to their “spam”. In this case, this will create ambiguity of such a user, in which, the event organizer may have to verify themselves if this very user is part of the event. Additionally, aside from the performance, the Proof-of-Account protocol does not differentiate nor know which accounts owned and currently owe an NFT. This creates difficulty, and therefore, bias in trying to verify the accounts as addresses that have owed the NFT and have sold it (i.e, they cannot attend, etc.) will still get the message. To fix such an edge case, there needs to be further parameters to be taken into consideration such as time bought or number of holders. These factors are not calculated by Covalent, and thus, radio3 must calculate itself. As a result, radio3 requires a performance optimization both in the querying and verification protocols.

Future

There are some edge cases that need to be taken into consideration as the number of applications increase. In terms of communication, radio3 in the future will aim to support different types of media, which is already integrated within EPNS protocols now. Having different media types will allow event hosts to be more creative and add versatility with to their announcements. Additionally, in terms of the Proof-of-Account protocol, the edge cases (mentioned above) can only be solved with backend optimization. As stated previously, the optimization should be reducing the complexity runtime and query time of the Covalent API, along with considering extra parameters (such as transaction time, cross-verifying number of holders with smart contract limit, and more). The goal is to decrease linear time with the web3 processes, which might be a computational challenge, but by the state of how blockchain works, there may be possibilities to see radio3 have processes that run in constant time (i.e, verifying accounts).

Out of all the things we talked about for improvements, there is one more thing that must be added in the future and that is a UI in the form of a web-app or app. This is essential for accessibly and to widen the different types of users ranging from non-tech event hosts to web3 developers.

Overall, radio3 was a great project to start shipping this year. I learned a lot of new platforms, such as EPNS, Covalent, Pokt Network, and etc, which allowed me to create new platforms that are feasible to solving the basic problems that we encounter but not consider. Radio3 is now available for everyone as a simple npm package that can be used and tinkered around with. If there are any ideas or concerns, feel free to reach out to me for open sourcing!

Resources

radio3 Page: https://radio3-website.vercel.app/

Contact: www.jaivalpatel.com

EPNS: https://epns.io/

Covalent: https://www.covalenthq.com/docs/api/#/0/0/USD/1

--

--

Jaival Patel
Jaival Patel

Written by Jaival Patel

16y/o Computer Scientist x Mathematics Enthusiast. I love to share my research and interest in these two topics so you will see a lot of my blogs about my work!

No responses yet