Skip to main content

Credential Design Guide

How to configure the appearance of an Electronic Attestation of Attributes (EAA) so it renders correctly and legibly in the German EUDI wallet.

Two phone screens side by side: an EAA credential card on the wallet's home screen, and its expanded detail page, showing the two views issuers configure in this guide.

Introduction & Principles

An EAA is structured data that the wallet renders at presentation time, using the display metadata you supply. Every issuer in the wallet shares this same rendering system.

Issuer neutrality. Your credential renders alongside credentials from other issuers.

Consistency of structure, freedom of brand. The position of each element (credential name, issuer, logo, background color) is fixed by the wallet, while color, logo, and background image are where your brand identity comes through.

The wallet renders your configuration as supplied. It displays the display metadata you provide, without checking contrast, resolution, or brand fit on your behalf. Reviewing your own configuration before publishing is your responsibility, see the checklist.


What You Configure

Per the OpenID4VCI Credential Issuer Metadata model (and its mdoc equivalent), your credential type carries a language-tagged display array.

FieldPurpose
nameThe credential's display name, shown on the credential card
rendering.simple.logoYour logo (URI + alt text)
rendering.simple.background_colorBackground color of the credential card
rendering.simple.background_imageBackground image (URI + alt text), shown on the detail view (not on the credential card, see Detail Page)

These fields belong to "simple rendering," the standard's default rendering mode. The German wallet supports simple rendering only, see below.

Two fields also exist in the underlying model but aren't supported in the German wallet app today:

FieldStatus
rendering.simple.text_colorNot supported. The wallet uses its own default text color regardless of what you set here.
rendering.svg_templatesNot supported. Custom templates aren't rendered; the wallet always falls back to its standard layout.

The issuer name shown on the card is derived from the registration certificate, not from display metadata.

Claim-level Display

Each individual claim (attribute) you issue carries its own metadata:

  • display.name, the human-readable label per language. Required for every claim, in every language you support.

Credential Card

This section covers the credential card as it appears on the wallet's home screen (the detail/expanded view is covered separately in Detail Page).

The credential card shown twice, once as a blank template with each element labeled, once as a filled-out example.

The card has four elements: credential name, issuer, logo, and background color.

ElementDescriptionSpecs
Credential nameShould make clear to the user what the credential represents, for example "Membership card," "University diploma," or "Driving licence."
  • Comes from display.name
  • Up to 2 text lines, approximately 45 characters, truncates with an ellipsis beyond that
IssuerShows which company or entity is behind the credential.
  • Derived automatically from your Access Certificate, not configured through display metadata
  • Up to 2 text lines, approximately 60 characters, truncates with an ellipsis beyond that
Logo
  • Should represent your organization, with enough contrast against the background color to stay visible
  • Supply it without surrounding padding, padding can make it appear too small or misaligned
  • Images that don't match the container's proportions are scaled to fit, horizontally centered
  • Minimum size 80x60px, recommended aspect ratio 4:3, a different ratio may cause display issues
  • PNG, largest file you have at or below 150 KB, for sharpness at the fixed display size
  • Transparent background preferred
  • Alt text required
  • Fallback: nothing is displayed if no logo is provided
Background colorThe color area next to the logo that carries your brand, should support your branding while keeping the logo visible.Fallback: light gray, #F7F7F7, if none is provided.

A do/don't pair showing a logo with adequate contrast against its background color, next to one where the logo blends into the background and becomes hard to see.


Detail Page

This section covers only the top section of the detail page, the part you can configure. The lower part (the navigation rows, issue and expiry dates, and delete action) is fixed by the wallet and isn't covered here.

The detail page's top section shown twice, once as a blank template with each element labeled, once as a filled-out example.

Credential name, issuer name, and logo reuse the exact same values as on the credential card (Credential Card). Credential name and issuer name get more space here, so review the different line/character limits below. Logo follows identical rules to the card. Background image has no equivalent on the card, it's specific to this view.

ElementDescriptionSpecs
Background image
  • No equivalent on the credential card
  • Should represent the institution, for example images of buildings, of the service itself, or a plain background color
  • Avoid promotional images
  • Avoid AI-generated images, users recognize them and it creates a bad impression
  • Avoid embedding text in the image, it can't be localized and isn't accessible
  • Set through rendering.simple.background_image, recommended aspect ratio 4:3
  • Alt text required
  • Fallback: if none is provided, the app renders a default background color in the container instead
Credential nameSame field as the credential card (display.name), with more space here. If the name was truncated on the card, more of it is visible here.Up to 3 text lines, approximately 80 characters (versus 2 lines, approximately 45 characters, on the card).
Issuer nameSame value as the credential card, with more space here, derived automatically from your Access Certificate.Up to 3 text lines, approximately 90 characters, generally enough to show the issuer name in full (versus 2 lines, approximately 60 characters, on the card).
LogoIdentical to the credential card.
  • Same asset as the credential card, shown in a small container of up to 80x60px (or 4:3)
  • Container background uses the same background_color value as the credential card

Submission Checklist

Before publishing your credential display configuration, check:

  • display.name is set and reads clearly within about 45 characters, or you've reviewed how it truncates
  • Logo is provided at (or close to) a 4:3 aspect ratio, with alt text
  • Logo is legible against background_color
  • background_color is set, or you're comfortable with the #F7F7F7 fallback
  • background_image, if used, is provided at (or close to) a 4:3 aspect ratio, with alt text, and doesn't embed text or use AI-generated imagery
  • display.name is provided for every claim, in every language you support

The wallet renders this configuration as supplied. It doesn't check contrast, resolution, or aspect ratio for you, so confirm these yourself before publishing.