Back-end for Digital Product Passport | Valueflows REA GraphDB

Zenflows is a tool to leverage commons-based peer production by documenting and monitoring the life cycle of products. The goal is that of enabling a federated network of organizations to bundle, systematize and share data, information and knowledge about physical artifacts.


  • Most validations are provable (and sealed by means of cryptography) using Zenroom as core crypto component, including support for advanced Digital Product Passport schemes like REFLOW Portable Crypto Functions.
  • The Valueflows vocabulary is adopted to govern a Resource Event Agent accounting model and facilitate the development and execution of business logics built on top of it.
  • The PosgreSQL database backend is used as battle-tested data-storage solution well compatible with established enterprise standards in system administration, on top of it a GraphQL interface is developed based on the well performant Elixir language framework.
  • The actors performing operations in the products and services stored in the DPP, are described using the W3C-DID method based on Zenroom, making the resolution of the actors interoperable, verifiable and private.
  • The Digital Product Passport along with the W3C-DID is anchored on blockchain, making it tamper-proof. It’s generation and storage can be triggered by smart-contracts. The DPP is stored as a JSON object and can be easily adapted or translated to other file formats.
  • End-to-end crypto: each operation performed by a user is signed cryptographically and verified, before the query is process by the backend.
  • Creative Flows: activities can be rewarded with a token, using independet microservices to manage the wallets and the transaction.

DPP modelisation and interoperability

Such a power and flexibility, come with an inherently high level of complexity: in order to tackle complexity and minimize uncertainties in the development, we implemented a workflow to prototype complex GraphQL queries and flows using Jupyter Notebook:

Our DPP data structure is based on the ValueFlows ontology and is produced by the Zenflows back-end, which is programmable in GraphQL. ValueFlows is flexible enough to accommodate most *economic flows, actors, processes and events.

This allows us and third party developers to accelerate development and:

  • Visualize complex data structures, see the interactive example below:
  • Extract data from Zenflows, to be imported into different data structures and systems
  • Inject data into Zenflows, from an ERP, an IoT device, a mobile application


Zenflows is written in Elixir (with some Erlang), and uses Zenroom for all the cryptography. Zenfow also uses components from the Zenroom ecosystem and a set of microservices (written mostly in Golang) for various functions:

  • W3C-DID method: a DID document is created for each user at sign-up.
  • Portable end-to-end cryptography: each user operation is signed cryptographically, using the easy-to-integrate Zenroom base library Zenflows-crypto
  • Front-end: built in GraphQL query capabilities, end-to-end cryptography, TypeScript based.
  • Internal messaging system: the notification si system is based on a custom email-service component, running as a microservice.
  • Wallet and bank: microservices powering Creative Flows, allowing activities to be rewarded with a token, using independet microservices to manage the wallets and the transactions.
  • Jupiter Notebook: tool for rapid prototyping of DPPs and interoperability with the platform
  • Git import: microservice to clone and analyze git repositories
  • Losh importer: custom importer for the LOSH aggregator.
  • Custom Proxy: connecting front-end and back-end with all the above services

Used in these projects

Included in



Need support?