Claim 169 QR Code Support

Overview

Inji Web Wallet supports receiving and using Verifiable Credentials (VCs) that contain Claim-169 formatted QR code blocks. These QR blocks are issued as CBOR Web Tokens (CWT) embedded inside the credential and encoded as Base64.

This feature enables secure, compact, and privacy-preserving QR sharing, particularly useful for offline and quick verification scenarios.

The Web Wallet can:

  • Download credentials containing embedded Claim-169 QR blocks

  • Securely store QR payloads within the browser wallet storage

  • Render QR codes dynamically for presentation

  • Allow users to present QR-based identity attributes when required

  • Perform validation checks for size, structure, and format

Specification Details

Claim-169 QR blocks follow standards based on:

  • IANA Claim-169 Registry

  • CBOR (Concise Binary Object Representation)

  • CWT (CBOR Web Token)

  • Base64-encoded QR payloads embedded inside a VC

A Claim-169 enabled Verifiable Credential may include:

Each QR block contains CBOR-encoded identity attributes, such as:

Claim ID
Attribute

4

Full Name

12

Phone Number

17

Face Image


Why This Feature Matters

Claim-169 QR codes enable identity data to be shared without requiring internet connectivity, supporting fast in-person verification workflows.

Key benefits include:

  • Offline verification capability through QR scanning

  • Selective disclosure, where only required attributes are shared

  • Quick presentation of identity data by displaying QR codes in the browser

  • Compact and secure encoding using CBOR and CWT

  • Support for multiple QR codes within a single credential for different verification scenarios\

Supported Credential Types

Claim-169 QR support applies to Verifiable Credentials that:

  • Contain embedded CWT QR blocks

  • Include Base64-encoded Claim-169 QR fields

  • Are issued through supported issuance flows

Supported credential formats include:

  • W3C Verifiable Credentials (JSON-LD 1.1 / 2.0)

How Does the Claim-169 QR Code Flow Work?

User Flow (Step-by-Step)

Step 1: Credential Download

When a credential containing QR blocks is downloaded to the Inji Web Wallet:

  • The wallet extracts QR fields (such as qr1, qr2, etc.)

  • Base64 content is decoded to obtain the CWT payload

  • Optional validations are performed:

    • CWT structure validation

    • CBOR decoding

    • Signature verification (depending on configuration)

  • The QR payload is stored securely within the Web Wallet storage

Step 2: Viewing QR Codes

When a user opens the credential in the Web Wallet:

  • The wallet detects available QR blocks

  • CBOR payload is converted into a QR image

  • The QR is displayed with an issuer-defined label (for example, Age Verification)

  • If decoding fails or the QR exceeds size limits, an error message is displayed

Step 3: Sharing QR Codes

During verification:

  • The user selects the required QR code from the credential

  • The Web Wallet displays the QR on screen

  • The verifier scans the QR using a scanner or verification application

No additional data is transmitted beyond the information encoded inside the QR.

Multi-QR Credential Support

A single credential may contain multiple QR codes, enabling different verification contexts, such as:

  • Age Verification

  • Address Verification

  • Identity Proof

Note: While Inji Certify supports the design for issuing multiple QR codes, Inji Wallet currently does not support multiple QR codes for Claim-169 credentials.

Current Limitations

  • Signature verification of CWT payloads may vary depending on browser capabilities

  • Issuers must configure QR labels and supported attributes

  • Only Base64-encoded CWT QR blocks are supported in the current release

  • Advanced error handling and customization are limited in the current implementation

Learn More

To understand how Claim-169 QR codes are issued and integrated with wallets, refer to:

Claim-169 QR Code Support – Issuance Documentation

Last updated

Was this helpful?