NL Wallet Logo

Contents:

  • Relying Party
    • Introduction
    • Step-by-step
    • Architecture Overview
    • Preparations and Onboarding
    • Decisions
      • What a PID_DOCTYPE looks like
      • What an ADDRESS_DOCTYPE looks like
    • Required Data
      • Example reader_auth.json
      • Example Screenshot of reader_auth.json Data Used in Wallet App
    • Certificate Request
    • File Request
    • Wallet server installation
      • Obtaining the software
      • Creating a database backend (optional)
      • Create a database server
      • Create user and database itself:
      • Apply database schema:
      • Creating a configuration
        • The storage settings
        • Using in-memory session state
        • Using database persisted session state (optional)
      • Determine public URL
      • Universal link base URL
      • The ephemeral ID secret
      • Configuring the trustanchor and the usecase
      • Creating the configuration file
      • Configuring an API key (optional)
      • Configuring Cross-Origin Resource Sharing (optional)
    • Running the server for the first time
    • Server logging
    • Validating the configuration
    • Background
      • What a Disclosure Session Looks Like
      • Cross Device vs. Same Device
    • Notes on Requirements Applicable to Your Application
    • Integration
    • API Specifications
    • Example calls
      • Initiate a Disclosure Session
      • Check Status of Session
      • Retrieve Disclosure Results
    • References
  • Specification references
    • Protocols
    • Attestation formats
    • Cryptography
    • Other
  • Generic issuance in NL Wallet ecosystem
    • SD-JWT
    • mdoc
      • 1. Serialize the mdoc to JSON for JSON Schema
      • 2. Convert namespace structure to nested SD-JWT structure
      • Example
        • SD-JWT VC Type Metadata used for validation
        • Mdoc formatted document snippet
        • Transformed snippet used for validation against Type Metadata
  • SD-JWT VC Profile for the NL Wallet, VV and OV
    • Introduction
    • SD-JWT VC Type Metadata
      • Type Metadata
      • Display Metadata
        • Credential Summary
        • Simple Rendering
      • Claims Metadata
        • Claim Metadata
        • Claim Display Metadata
      • Extending types
    • Profile considerations
      • C1 - Credential contents must be presentable to the end user
      • C2 - Credential summary (based on contents) for optimized browsing
      • C3 - No support for external resources
      • C4 - Unambiguously select a locale for displaying credentials
  • Open Api Specifications
  • App Startup
    • Initialization
    • Extra callbacks
      • Configuration
      • Wallet lock
  • Disclosure with OpenID4VP
    • Generic disclosure
  • Disclosure based issuance
    • API
      • Attestation server
      • issuance_server configuration
      • QR/UL
    • Sequence diagram
  • Issuance with OpenID4VCI
    • PID issuance
    • Generic issuance
  • Components overview
  • Pin validation
    • Local pin validation
    • Remote pin validation
  • Wallet creation
    • Create wallet (app)
    • Create wallet (server)
  • Lokalise
    • Workflow
      • Exporting translations (lokalise -> app)
        • Export script
      • Importing keys/translations (app -> lokalise)
        • Import script
  • How to update Rust (or anything really) for NL Wallet
    • Update Rust images
    • Update Rust macOS Runner
    • Update Rust workspace version
  • Definition of done
    • In general
    • Things we check every pull- or merge request
      • Is in compliance with our coding and quality standards
      • Implements and tests all acceptance criteria and/or capabilities
      • Implements any screens according to our Figma designs (if applicable)
      • Is described in release notes, with any breaking changes or upgrade steps
      • Is documented (in README.md files, OpenAPI specs, documentation folder)
      • Does not contain commits with personal, secret or copyrighted information
      • Incurred technical debt has a TODO comment and a related issue ticket
      • Can be deployed locally and remotely (CI/CD related setup up-to-date)
  • Merge Requests
  • Releases Howto
    • Assumptions
    • What constitutes a release?
    • Doing a release
      • Step 1: Make sure the release on Jira is green
      • Step 2: Make sure Figma links are up-to-date in README.md
      • Step 3: Confirm appropiate tests and reports have been done for this release
      • Step 4: Release approval
      • Step 5: Freeze git main branch
      • Step 6: Set release version and tag
      • Step 7: Set development version
      • Step 8: Run publication guard
      • Step 9: Publish source code to GitHub
      • Step 10: Collect build artifacts for release
      • Step 11: Create a release description
      • Step 12: Create GitHub release from tag
    • References
  • Release Notes Template
    • vX.Y.Z (fill in version, place at /documentation/release-notes/vX.Y.Z.md)
      • Important (this is an optional header, remove if there are no )
      • Changes
  • Releases
    • Release notes v0.3.0
      • Upgrading
      • New features
      • Code improvements
      • Wallet app improvements
      • Bug fixes
      • CI changes
NL Wallet
  • Search


© Copyright 2025, NL Wallet.