DECODE App: modular, privacy-driven authentication

DECODE App: open source, modular, privacy-driven authentication

The DECODE App packs in an attribute-based credential and zero-knowledge proof authentication flow: modular end extendable, it’s built to be plugged-in to an existing web service or platform with its minimal back-end.

For Users

DECODE proposes new Social Pact: data as a common infrastructure that generates public value.

Easy to use, for everyone

Easy to use: open source, built with reference languages (react-native, python, java) and multiplatform (backend dockerized, ios and android)

Privacy and security first

Privacy  by default: GDPR compliance to its max, control the data you share and how you share it.

For Developers

Easy to work with 

Easy to understand and modify:  built in react native, open source,  well documented and easy to build. 

Human-readable smart contracts

Modular and extendable: UX and logic are  separated and reusable, the app was designed to adapt to your existing service!

Learn more 


Blockchain ready and compatible with decentralized architectures: prevents power unbalances!

Learn more  Github


Zero-knowledge proof and ABC

Advanced cryptography for non experts: No need to be a crypto expert! Zero-knowledge proof credential management abstracted and simplified into simple use of zenroom and APIs.



Learn how to customize the App

Why you should use DECODE


Modular and interoperable.

DECODE tools can be combined and used as part of any platform or app.


Free and open source.

All work produced by the project is published as free and open source.


Decentralised &

In DECODE operations are processed, validated and updated on Sawtooth – distributed by the Linux Foundation’s Hyperleger Consortium


Privacy enhancing.

DECODE is designed with privacy in mind from the ground up.  Personal data on DECODE is defined in terms of ‘Attribute-Based Credentials’ collected and stored in a digital wallet.


Based on cutting edge research.

Based on the selective disclosure credential scheme ‘Coconut’, that enables full blockchain integration while maintaining confidentiality and authenticity.

DECODE In Action: Tested with real communities to build people-first digital cities

DECODE has worked with Barcelona and Amsterdam City Councils to build prototype applications and test them in partnership with real communities.  See the tools in action below.

The framework around the app

The DECODE App relies on several other components in order to make the DDDC Pilot work.

The components required for it to run are the Credential Issuer, a web service (Dokckerfile available) which provides the credentials needed to the zero-knowledge proof (ZKP) authentication flow and Zenroom the multiplatform command line tool that does all the cryptography and the smart contracts execution used in the app.

Specific to the DDDC pilot are the the Petition Service, that stores the petition signatures in a database and a blockchain, the DDDC site, that feeds the app with the petitions to be signed and the BCNNow dashboard that allows to see the results of the petition.

The “Coconut”scheme: zero-knowledge proof, attribute based credential flow

One of the major technological achievement of the DECODE App is its authentication flow, based on the Coconut paper from UCL, implemented using Zenroom.

The Coconut flow allows authentication based on credentials, where each credential can represent an attribute and is issued by a trusted issuer: the credential issuer can be a public authority, a corporation or just a trusted individual. Credentials can also be used offline on a blockchain and  can be combined and revoked.

Examples from the app’s ecosystem

Try the following demos from the DDDC pilot:

Explore the BCNNow dashboard

Use the BCNNow dashboard to visualize aggregated data and the result of petition signatures.

Explore the DECODE-DECIDIM petition platform (DDDC) 

The DDDC site a plugin to DECIDIM to manage petition signatures.

Explore the DECODE IoT platform

Partnering with SmartCitizen, data has been collected by volunteers and then anonymized and displayed.

The repositories: deploy and extend the app and its ecosystem

Get in touch