KPN (PiM Identity)

Personal identity in your own hands. Share what you choose, with whom you choose.

Client

KPN (PiM Identity)

Sector

Digital identity

Deliverables

iOS app | Android app (React Native)

Context

PiM is a personal identity manager that allows users to store, manage, and selectively share their digital identity attributes. Where most identity systems require users to hand over data to a central party, PiM operates on the principle that users own their own data and decide what they share, with whom, and for how long.

The challenge was building an identity app that is genuinely easy to use for everyday people, while implementing the cryptographic and consent mechanisms that make the privacy guarantees real. Security that users cannot operate is not security.

What we built

A personal data store with consent-based sharing

The app allows users to store identity attributes, name, address, date of birth, professional credentials, and share them selectively through consent flows. Each sharing transaction is explicit: the user sees what is being requested, by whom, and approves or declines. No background sharing, no persistent access without re-consent.

Encrypted local storage with selective disclosure

Identity attributes are stored encrypted on the device. Disclosure is selective: a user can prove their age without revealing their date of birth, or confirm their address without sharing their full identity. The underlying cryptography supports these selective disclosure patterns natively.

A single React Native codebase for iOS and Android

The app is built in React Native, sharing one codebase across both platforms. For a product where trust is the core value proposition, consistent behaviour across iOS and Android is essential. Users on both platforms experience identical flows, identical privacy controls, and identical security properties.

Results

iOS & Android from 1 React Native codebase

Consent-based all sharing is explicit

Encrypted local storage, no central data store

Selective disclosure without over-sharing

Technology choice

Why React Native for an identity app?

Identity apps require consistent behaviour and security properties across platforms. React Native gave us one codebase to audit, one set of cryptographic implementations to verify, and one UX to test. For a product where a subtle inconsistency between iOS and Android could undermine user trust, minimising the divergence between platforms was a deliberate architectural choice.

PiM puts users genuinely in control of their own identity data, without making it complicated to use.

How we worked

Building an identity app requires thinking through attack surfaces that do not exist in most consumer apps: what happens if the device is compromised, if an app requests more data than it needs, if a user loses their device. Elements worked through these scenarios with PiM's product team before writing a line of code, building the security model before the feature set.

What is next

The PiM platform is positioned to integrate with more identity verifiers and service providers as the digital identity ecosystem in the Netherlands matures. The architecture supports federation with other SSI-based systems, including the Kiwa eLicense.

Get in touch:

Rogier de Graaf
Strategy Director
rogier.degraaf@elements.nl

Team as a service

Besides our project-based collaborations, we also offer team members or a complete dev team as a service. Want to know more? Send us a message.