TLDR: It is impossible to create truly decentralized push notifications on iOS. Our 1st attempt mostly worked using a minimum of trusted third parties operating securely together through the principles of Separation of Control. We had issues due to the strict data privacy settings in our app. Our 2nd attempt solves this using a different, but equally safe approach.

When we set out building the first mobile app to let you manage and control your own identity nearly 2 years ago, I could not have imagined half the problems we have had to solve.

Building a modern mobile app with the features that both users and developers are used to, in a way that still protects the user, is surprisingly hard. Often what makes it more difficult are features specifically created by device manufacturers to protect the privacy of their users.

From the outset our goal was to use only decentralized technology such as Ethereum and IPFS. We specifically never want to be the holders of our users’ private data.

It isn’t always possible in today’s world of Android and iOS to be 100% decentralized. Whenever we have had a problem that needs solving, we have always been very careful to make our solutions as decentralized as possible, to avoid sitting on lots of private data.

It is with this goal of providing truly decentralized services in mind that we wanted to explain how we think about these issues and how we attempt at solving them. This article is going to be fairly long as privacy and self-sovereignty is really important and the solutions are sometimes complicated.