← Secure development

VDS VERIFY / 2D-DOC / CEV

The proof
in the code.

A small printed square. Signed data. And expert engineering to read it, verify it and understand what it proves. With VDS Verify, Stelau makes that proof accessible.

A mobile app, an API and an SDK built by Stelau.

VDS VERIFY / VERIFIABLE DATA
VDS Verify displays identity document data and the signature verification result.VDS Verify: document data and verification result, in dark mode.
Demonstration screenshot of the app.
5 M+France Identité users

Stelau code. In everyday use.

Our SDK is integrated into France Identité. Our API is also used to generate its visible digital seals and in France Titres’ 2D-DOC verification service.

The figure refers to France Identité users, not a scan count. France Identité · 1 October 2026 · VDS Verify integrations

01 / What the code protects

A 2D-DOC is first
an electronic signature.

The code carries data and its signature. This signature makes it possible to check that the covered data has not been changed, and establish its origin within a defined trust framework. The QR code or Data Matrix carries that proof.

A visible digital seal (VDS, or CEV in French) bridges a document and a proof that a machine can verify.

STELAU / PROOF IN MOTION

Change the data. Break the proof.

Educational simulation · fictional data · non-scannable code

  1. 01
    Issue

    The issuer signs the document’s data.

  2. 02
    Verify

    The reader checks the signature of the received data.

  3. 03
    Modify

    Data in the code changes; the signature stays the same.

  4. 04
    Detect

    The signature no longer matches the modified data.

The signature covers the data in the code. Printed text must also be compared with that data.

GIF ↓GIF ↓

02 / From standards to practice

Read the specifications.
Make the formats work.

Our work connects 2D-DOC specifications, standardised seals and documents already in circulation. A standard’s name never removes the need to specify the profile, version and trust conditions.

01

FRANCE TITRES / ANTS

2D-DOC

Format specifications, document profiles and trust resources for the French ecosystem.

Specifications & profilesRead the source
02

INTERNATIONAL STANDARD

ISO 22376:2023

A framework for the structure, representation, production and verification of visible digital seals.

Published in 2023Read the source
03

LEGACY COMPATIBILITY

AFNOR XP Z42-105

A supported format for existing seals. The September 2020 standard has since been withdrawn.

Withdrawn standard / existing formatsRead the source

ISO 22376 does not, on its own, replace national specifications or trust governance rules. ISO 22376:2023

03 / Our verifier

See the data.
Understand the result.

VDS Verify reads codes on paper or on screen, displays decoded data and shows the verification result. Seal and certificate details take the result beyond a simple green indicator.

The app

A mobile reader for examining documents and signed data. Its code is published under Apache 2.0.

The API

Services for generating, decoding and verifying seals within your workflows.

The SDK

Integration within other applications, such as France Identité.

The VDS Verify details screen shows the seal’s technical header and certificate information.Technical header and certificate in VDS Verify, in dark mode.
The proof is also in the details.

04 / Experts who code

Decoding
is not verification.

In the public app, the scanned code is sent to an API for decoding and verification. The app then checks the result’s structure before displaying it. This excerpt shows the boundary between reader and service; it does not show the cryptographic engine.

Behind this apparent simplicity lies the implementation work: handling data precisely, explaining errors and never confusing a successful read with a valid proof.

index.tsx / EXCERPTTS
const response = await integrityFetch(
    apiUrl,
    "/api/v1/decode",
    JSON.stringify({ vds: b64encodedvds }),
);
const { success, message, vds } = await response
    .json()
    .catch(() => ({}));
if (success === true) {
    const normalized = normalizeVdsResult(vds);
    if (!normalized) {
        showError("error_invalid_qr");
        return;
    }
    // …
}

Mobile app code · Stelau · Apache 2.0 ↗

Read the right bytes.

Encoding, headers, versions and schemas: verification applies to an exact representation of the data, not an approximation of the displayed text.

Establish trust.

A mathematically correct signature is not enough. The issuer’s certificate, its validity and applicable revocation information must be examined.

Support coexisting formats.

Distinguish seal families and document profiles; handle changes while preserving the ability to read documents already issued.

Explain the result accurately.

Decoded data, verified signature, indeterminate result: distinct states that the person making a decision can understand.

05 / Paper, copies and the holder

A proof that travels.
A scope to understand.

A seal can be printed and read again: if the code stays readable, its data and signature survive the change of medium. This ability to move back to paper is a practical benefit for today’s uses.

A static seal can also be copied. Its signature can remain valid without establishing that the presenter is its legitimate holder. Integrity and protection against unauthorised transfer are distinct questions.

STELAU / PROOF IN MOTION

The medium changes. The signature stays.

Educational simulation · fictional data · non-scannable code

  1. 01
    Display

    A digital document carries signed data.

  2. 02
    Print

    The same code moves to paper without changing its content.

  3. 03
    Read again

    The reader retrieves the data and checks its signature.

  4. 04
    Distinguish

    A copy can retain a valid signature without proving that the presenter is legitimate.

If the code stays readable, printing preserves the cryptographic proof. It does not establish who presents it.

GIF ↓GIF ↓

Holder binding: another layer of proof.

Depending on the protocol and its implementation, a wallet can add proof of possession and bind a presentation to a verifier’s challenge. These mechanisms complement the document’s signature. Our work on nested seals also explores binding certified data to the presenting device.

Your next use case

A document to sign.
A proof to integrate.

Seal issuance, document reading, verifier integration: our experts support you from choosing the format to implementation, with a precise understanding of the guarantees required.

Let’s discuss your project

Find what interests you.

Expertise, projects and articles. Escape to close.