Zilath

A library for verifying accessibility entitlements without processing health data.

Claiming an entitlement the law recognises, such as a companion ticket, priority access or a reduced fare, means proving it. In person, showing a card is enough. Online there has never been an equivalent, so people send a copy, attached to an email or uploaded through a form, to the box office or whichever office handles it. And that copy stays in their systems.

That copy isn't needed. The European Disability Card, established across the Union by Directive (EU) 2024/2841, already exists in digital form: in Italy it has been in the public wallet of the IO app since December 2024, signed by the issuing authority and cryptographically verifiable. What's missing is the component that lets a website check it. Zilath is that component, and it's open source.

Design principles

  1. Verification is never charged to the person being verified. In no form, at any stage. This is a constraint of the project rather than a pricing decision, and it holds for anything derived from it.
  2. Neither the diagnosis nor the document is ever requested. The library verifies a cryptographic presentation and returns the minimum: whether the entitlement exists. The condition, the percentage and the certificate never enter the system because they are never asked for.
  3. What remains, stated precisely. The presented credential is never stored: it's verified and discarded. For the duration of the transaction the outcome remains and, when verification succeeds, so do the attributes the person actually disclosed, because they're needed between the wallet's response and the moment the application reads the result. Under the default configuration they're held in memory and expire on their own. It's written here because “nothing is kept” would sound better, but it wouldn't be true.
  4. No profiling. There are no per-person counters, no history and no profile to build — not even for abuse prevention. Fraud is addressed where it occurs, not by keeping records of those who hold an entitlement.
  5. All of the code is open. All of it, not a core or a community edition, under AGPL-3.0. Anyone integrating the library can read exactly what it does with the data of the person in front of them, and anyone in doubt can check rather than trust.
  6. Nothing is certified by this project. The only authority is the state that issued the credential. The library does not decide who is entitled to what, keeps no registry, issues no accreditation and does not place itself between a person and their entitlement. It verifies a signature.

Context

Documents get copied and sent because online there was no practical alternative, not because anyone chose it. Data protection authorities have long held that seeing a document is enough to grant a benefit, and that keeping a copy goes beyond the purpose. Public wallets provide that alternative: the credential is issued and signed by an authority, and it's already in the person's hands.

Zilath was the supreme magistrate of the Etruscan city: the office that ascertained and sanctioned. To ascertain, not to judge.

The library

Zilath is a Kotlin/JVM library that allows an application to act as an OpenID4VP relying party under the IT-Wallet profile: it requests a credential from the wallet, verifies it cryptographically and returns a yes or a no.

It's free software under AGPL-3.0: anyone building open software uses it free of charge, while embedding it in a closed-source product requires a commercial licence, which never applies to the person being verified.