PUSHing Web3 Forward: What is EPNS and why should you care?

Hey friends 👋

If you’ve read much of my content, you’ll know that I love to dig deep and look at the inner workings of various technologies 🔬 After all, a lot of very deliberate choices have to be made for things to work in a way that feels seamless.

Take for example the push notifications you receive all day long on your phone. They can be a bit overwhelming at times, but have you ever thought about what it would be like if they just didn’t exist at all? Let’s really consider this for a moment 🧐

Imagine having to refresh your text messages constantly to see if you’d received a response you were awaiting. Or if your phone never told you the battery was getting low, but just suddenly died 😰 Time sensitive alerts like reminders or multi-factor authentication would all be far less useful than they are today, if they even worked at all.

You see, push notifications are really just a frontend UX for push technology, one of the foundational pieces of the internet as we know it, where rather than a user having to initiate a pull request for content, that transaction is issued by the publisher or central server instead ✨

Let’s look at this through an entirely analog example: A push message is like having the newspaper delivered to your door every day, whereas a pull request is like you having to go to the newsstand yourself every day to get the paper 🗞 If what you want is the news delivered in a timely manner, push seems the more compelling option.

The push notification, which originated on Blackberry but was brought to the mainstream by Apple with their Apple Push Notification Service (APNS) on iOS3, is the little message that is sent to the user interface (smartphone screen) to elicit a response from the user 🔔

Putting aside any critiques of the ways push notifications can be used to manipulate users into over-using social media or their devices in general, this is undoubtedly one of the most important pieces of modern computing infrastructure, and one of the factors that helped drive mainstream adoption.

Despite this fact, we hardly give much thought to this humble technology. That is, until it’s not there 🔍

You see the way push notifications work on smartphones (or web browsers) is that the push message is sent from one centralized server to another centralized server and then translated to a notification which is then pushed to the user (you).

This can work well enough, but it suffers from a particular fault: centralization. If you remove either the app developers central database or Apple/Google from the stack, there’s no longer an easy way to receive a notification. And since Web3 is predicated on removing these middlemen, we need a solution 👀

Enter EPNS.

What is EPNS?

The Ethereum Push Notification Service (EPNS) is a decentralized push system that allows wallets to subscribe directly to notification channels. As I alluded to above, Web3 is built to be permissionless and non-custodial and thus, by design, user data is not stored on centralized servers or linked to email accounts. This is great for user privacy, security, and censorship resistance, but it effectively removes the endpoints needed for traditional push notifications 🔌

Until now.

What EPNS does is introduce a novel system of decentralized middleware. A communications layer for Web3 😲 Users can subscribe to channels for communication which opens the doors to a whole range of use cases from minor insights to critical alerts 🚨

Here are some examples of uses that help illuminate the value being created here:

  • Nearing liquidation warning (lending and borrowing)

  • Staking rewards available to claim (staking)

  • Price alerts (trading)

  • Stablecoin peg slippage (arbitrage)

  • Low gas alert

  • Governance Updates

  • Airdrops

These are just some of the potential opportunities unlocked by EPNS. But like all technologies, it’s hard to even imagine the things that power users will eventually create in the future 🔮

Speaking of technology…

How does it work?

EPNS is a decentralized protocol that allows dApps and other sources to create channels to which users can subscribe. Once a user is subscribed to a channel, they will receive push notifications which can come in the form of broadcasts sent out to all subscribers, messages to subsets of subscribers, or even targeted messages to an individual wallet address. 📬

Sending

By staking a small amount of PUSH tokens (formerly DAI), users can create a channel, which allows for the sending of messages.

Businesses, dapps, and even individuals can all be channels; they can program notifications to be sent in response to on-chain information, and/or send notifications manually for off-chain activities

Source: EPNS Blog

Message data can be sent via the EPNS Communicator contract which can be deployed on any EVM compatible blockchain, and eventually even non-EVM compatible chains. This data is picked up by the Push Nodes which are always listening to the Communicator contracts 🦻 The Push Nodes connect to the EPNS Core smart contract for validation (basically confirming that the sender is an existing channel and is not spamming) and then they dispatch those messages to the front-end infrastructure 📲 EPNS provides apps for iOS, Android, and Web that can read and display these notifications to users, but in the future, this will be integrated into your wallet of choice.

Receiving

As I mentioned above, subscribers are users who have opted in to receive notifications from a specific channel. That’s a very straightforward process. Just open the EPNS app and connect your wallet. From the channels tab, you can easily subscribe to your preferred channels, whether you want to be notified of liquidation risk on Compound or Aave, receive updates about governance on the projects you follow, or simply get notifications about the current Ethereum gas price ⛽️ And even more services are coming as more and more protocols decide to implement EPNS notifications.

From the app, you can also check your inbox to see all the messages you’ve received and opt out of channels you no longer want to follow.

Looking Forward

There’s a lot of upgrades coming to the protocol that will add greater functionality and further increase decentralization. For example, one of the most exciting features in the 2022 roadmap is wallet to wallet communication. This will open up new opportunities like decentralized chat apps and will pave the way for something much bigger: smart contract to smart contract communication. That is something that is particularly exciting, as it could allow for incredible automation opportunities 🤖

Imagine for example that when your loan is at risk of liquidation, Aave could just send a push notification to a smart contract that you’d filled with additional collateral, triggering a top up and avoiding liquidation without you having to lift a finger. This sort of approach is hypothetically possible using these technologies. And that’s really just the tip of the iceberg 🧊

Node Decentralization

An important next step in EPNS’ progressive decentralization of the protocol is to decentralize nodes. This is going to be done through a system of permissionless participation based on game theory. The nodes themselves don’t require any hardware as they are essentially software server nodes that store relevant data on IPFS. The key feature is a focus on incentivizing participation with staking rewards and penalizing bad behaviour via slashing 🤺

The EPNS Core and Comm(unicator) smart contracts have been audited by ChainSafe, so the next step is to ensure that push nodes are ready to support all the new features, especially the multi-chain support, and then to decentralize further from there 🌐

Governance

EPNS is governed by PUSH token holders and in keeping with the push (no pun intended) towards progressive decentralization, EPNS is working hard to get the tokens into the hands of active contributors and stewards of the protocol. This is intended to be accomplished through the newly launched grants program (of which I was a recipient), the weekly Rockstar of EPNS awards for participation (with winners selected by Snapshot vote), and meta-governance through DAO to DAO partnerships. Other tools for rewarding active community members, like Coordinape are being discussed as well 💬

If you’re reading this and think EPNS sounds interesting, I encourage you to join the discord, ask questions and get involved in whatever way you can. Also check out the website, blog, and twitter.

The future of the web is being built as we speak and, like everything that came before it, it’s the underlying technologies that have the biggest impact. I started this post by discussing push notifications, those ubiquitous pop-ups that we probably never think about unless they’re either driving us mad or saving our hides. But ask any app developer, this is an absolutely crucial piece of the user experience and it’s been missing from Web3.

Until now 🔔


This post is brought to you thanks to a grant from EPNS’ Push Grants program 🤝 As always the opinions expressed are my own, I do not work with projects I don’t believe in, and I implore you to do your own research before investing.

To learn more about the Ethereum Push Notification Service, visit epns.io


This content is funded by the PoolTogether Growth Team Coordinape circle. All opinions are my own.

If you enjoyed this blog post, consider collecting a copy. It's like tipping and receiving a unique digital collectible as a receipt.

To become a patron and unlock special perks, like Q&A in the newsletter, you can mint my non-fungible patronage NFT on OptimismZoraBase, or Ethereum

And for the cypherpunks, I accept anonymous tips with Zcash to my shielded address:

zs17a2mhl6xeu56cqqeqync9kddyg8gggcy6253l5evjdyw8l8j8f60eg40exr4wk27hnvfgkkgnju
Subscribe to Thumbs Up
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.