Push notifications on the Aragon client

Push notifications are important since Aragon organizations deal with real value and time-sensitive operations, such as:

  • Votes that would send funds unless voted otherwise
  • Actions going forward unless disputed

The Aragon client clearly needs notifications ASAP if we want people to use Aragon for meaningful use cases.

Purely decentralized solutions for realtime notifications, like Whisper, are not ready for production today, and are very resource and bandwidth expensive.

That’s why I think having an opt-in centralized server makes sense for dispatching push notifications.

Proposed flow

1. Choose the notifications you want to get

On the Notifications app (or maybe a section inside Preferences ) you will be able to choose the notifications you want to get from different apps.

2. Opt into registering with a server

After choosing the wanted notifications, you will choose a notifications provider from a dropdown.

That will take you to a different webapp, run by the notifications provider. You can accept their terms, pay if they require a payment for their services, and then click Save .

You may have to authorize your browser to get notifications. That would work for most platforms (desktop and Android) without even installing an app, thanks to the W3C spec on push.

For iOS, which doesn’t have support for that standard, you can always sign up for email notifications.

3. The server tracks organizations and dispatches events

The notifications provider has servers running. Those servers will index all events regarding that organization and its apps, and will dispatch events when they see something that requires a notification for a user.

4. You can click the notification and discover the truth

Even if the server is malicious and wants to trick you, you can always open the notification. That woudl take you to the Aragon client, where you will be able to see the actual state of your organization.


  • We need to add support for Radspec (human-readable descriptions for transactions) to smart contract events too. Right now, it only supports functions
  • Notification providers need to run a sizable infrastructure of Ethereum nodes in order to run this


  • There may be a good business model for notification providers, since they can charge some marginal cost for users to get important notifications, or maybe even the organization is the one paying that itself!
  • With the Ethereum nodes and the infrastructure needed, the notification providers can also provide other services, like offering pre-cached, already-reduced state of any Aragon organization. That’s very useful for loading an organization for the first time, since it’d be immediate. Then, over time, the Aragon client can sync in the background and render the final, truthful state without having to trust the server

As stated elsewhere, I think having an email server do this is 90% of the value for probably 10% of the cost.

Events are generally quite descriptive and their names plus parsed arguments should be enough for most people to figure out if they care about an event.

Really depends on the scale, but for email I don’t think we’d require that much infrastructure. Especially if the server just polls the topics people are subscribed to once an hour or etc rather than dealing with them in real time.

But they still are things like CastVote which isn’t as nice as Someone voted no with 1000 ANT

Agree, although I think real time is very important since you wanna get notifications for actions that are usually very time-sensitive