Skip to main content
Wouter Ensink
Developer @ Caesar Groep
View all authors

User experience improvements in Yivi

Β· 5 min read
Wouter Ensink
Developer @ Caesar Groep
Jasper van der Linden
Developer @ Caesar Groep

One of the main goals for Yivi is to become the worlds most user friendly identity wallet. We've already done a lot to help this cause, like allowing the user to directly start issuing missing credentials while they're trying to dislose so they stay in the flow.

In this blog we'll look ahead at some of the plans we have for the near future to improve the user experience.

Our four values for UX​

To keep our goals clear and keep an eye on the usefulness of new features, we've written down our main values for the UX. These values are:

  • Accessible
  • Understandable
  • Trustworthy
  • Beautiful

Accessible means that we're committed to making Yivi a good experience for everyone.

Understandable means that Yivi should feel familiar and usable to everyone.

Trustworthy is not just about using the most reliable protocols. It's also about conveying that to the user and letting them feel like they can trust Yivi, issuers and verifiers. Things that fall into this category are imagery, colors and clear explanations.

Beautiful is not as important as the others, but the eye wants something too. Things like consistent color, fonts and styling combined with fluid animations is what gives Yivi just that extra touch.

Our plans for the near future​

There are four UX improvements that we want to work on over the next couple of months:

  • Getting compliant with European Accessibility Act
  • QR code scanner button on the login page
  • Easier card organisation and navigation
  • Brand extensions

Let's have a look at each of them.

Getting compliant with European Accessibility Act (EAA)​

The EAA is a directive that aims to improve the functioning of the internal market for accessible products and services, by removing barriers created by divergent rules in member states of the European Union.

It applies to products and services that have been identified as being most important to people with disabilities. Yivi aims to be one of those products and therefore should comply with this act.

For digital products, like Yivi, this means having to comply with the Web Content Accessibility Guide (WCAG) version 2.1 level AA.

Requirements include:

  • Big enough touch targets
  • Big enough contrast ratios
  • Support for screen readers
  • Alt text for visual media
  • Support for large text
  • And more

A complete overview can be found here.

We plan to adhere to these standards by assessing our current state and make improvements accordingly. Recently we've improved our screen reader support by adding better descriptions and hiding some distracting items from the screen reader with this pull request.

Automatic tests will be introduced to make sure our Flutter code adhears to the touch target and contrast ratio requirements set by WCAG.

We encourage users to let us know what they think and how we can improve the experience for them.

QR code scanner button on login page​

For Yivi to be understandable it helps to feel familiar to some degree. Lots of banking apps, at least in The Netherlands, have a quickly accessible QR code scanner button on the login page that users can press even before entering their pin. The pin code then needs to be entered to confirm the action the user wants to take based on the scanned QR code. For banking apps that would most likely be transfering money.

Our plan is for Yivi to also support this flow. The user can quickly scan a QR code by pressing the button on the login page and then enter the pin afterwards to continue with the issuance or disclosure.

Progress on this feature can be followed here.

Easier card organisation and navigation​

We've received feedback from some of our users that the navigation and organisation of the cards inside the wallet is not optimal. Right now there's just a list of cards, categorized based on the Category field in the scheme and nothing more. There's no way to sort, organize or navigate these cards.

When a user has just a few credentials this is not a big issue, but when the list grows larger, finding the card you're looking for becomes harder and harder.

To solve this problem, we're planning to make the list editable and add search functionality. Editable means the user will be able to select, move and delete credentials.

Sorting based on time and name is also something we're looking at, but it's important to not let that interfere too much with custom ordering.

Brand extensions​

To build a level of trust, imagery and branding is important. As of now, credentials inside the Yivi app are plain, white cards with a name and a small logo for the issuer. To feel more authentic, it would be nice if issuers had more control over what their card will look like. The credential containing your ID information could for example look like your actual ID card.

We do need to consider what this means for usability, as the cards will most likely be taller than they are now and that could make the list a lot longer.

The card image itself could contain some of your personal data in the form of some kind of SVG template. We need to keep in mind that not all of your data may fit on the card itself and not everyone will be able to read those details from the image itself.

As for the technology, we're considering using the SD-JWT VC SVG template system as a basis.

We would like to get feedback from our issuers to see if this is something they would want, and if so, what features they'd want out of it.

Closing up​

So that's it for now. We'd love to hear from you about what you think about these plans and what other features you'd like to see in Yivi.

Exploring Authentication Options with Yivi

Β· 7 min read
Dibran Mulder
CTO @ Caesar Groep
Wouter Ensink
Developer @ Caesar Groep

Authentication and identification are critical components of digital services. This can be done with Yivi, our privacy-friendly ID-Wallet. It provides multiple options for verifying user identities. However, a significant challenge in implementing Yivi is the identifier used for authentication. Government and healthcare organizations can use the BSN (Burger Service Nummer), but private entities must explore alternative options. Below, we discuss potential authentication methods using Yivi, their advantages, and their limitations.

Authentication and Activation Using BRP Data​

For registration purposes organizations often need a set of data to match the user to their own administration, this is often done by matching on data from the Dutch Personal Records Database (BRP). The data in the BRP is of such quality that it can be trusted to be correct. The challenge often is that the data of the user in the administration of verifing organization is not of the same quality. Resulting in the proces that when a user discloses its BRP information to an organization it sometimes results in a dropout. These dropsouts are a problem, because it blocks the user from identifying and thereby registering or authenticating itself. To circumvent this problem organizations often choose to either: request more data from the user, for instance an contractnumber or change the data in their adminstration to match the data from the BRP so that in a next match the user is matched correctly.

Governmental and/or Health care organizations can simply use the identifying BSN from the BRP to match a user to their administration. We often see that only the BSN is requested from the user and that the BSN is then used to call the BRP for name and address details. We are not a fan of that approach, because we think that the amount of backchannel communication about users should be reduced and that the user should be in control of what personal data is being shared with which organizaiton.

Pros​

  • In most cases, unique identification is achievable.
  • High quality data for registration purposes.
  • No unique identifier available for non governmental/health care organizations.
  • BRP data can be used to increase data quality in the administration of organizations.

Cons​

  • Dropouts require additional data or manual processes which may negatively influence the user experience.
  • No unique identifier is available for private sector.
  • Name and/or address scans can have negative effects on performance.

Attribute Index of Municipality​

Below is the attribute index of the BRP disclosed by the municipality.

Adding email address or phone number​

In addition to BRP data organizations may want to request users to disclose their email address and/or phonenumber. It's a common practice for authentication purposes to have the email address as a unique identifier of the user. The same goes for phone number, while it has to be said that phone numbers are more often transfered to other users, especially in a business setting. In that sense an email address is more stable. In the context of registration and authentication Yivi supports the combination of multiple data sources being disclosed, this can be done with the so called condiscon feature. Verifing organizations can make a composition of attributes that they request the user to disclose. In the context of registration/identification organizations may want to compose the following session request:

{
"@context": "https://irma.app/ld/request/disclosure/v2",
"disclose": [
[
[ "pbdf.pbdf.email" ],
[ "pbdf.pbdf.mobilenumber" ]
],
[
"pbdf.gemeente.personalData.firstnames",
"pbdf.gemeente.personalData.familyname",
"pbdf.gemeente.personalData.fullname",
"pbdf.gemeente.personalData.surname",
"pbdf.gemeente.address.street",
"pbdf.gemeente.address.houseNumber",
"pbdf.gemeente.address.zipcode",
"pbdf.gemeente.address.city"
]
]
}

In this example we request users to disclose either their email address or phone number and their name and address details, which are often required in a registration process. Once the identifying data has been added to the administration of the verifying organization a subsequent authentication request might look like this:

{
"@context": "https://irma.app/ld/request/disclosure/v2",
"disclose": [
[
[ "pbdf.pbdf.email" ],
[ "pbdf.pbdf.mobilenumber" ]
]
]
}

There is no need to request the user's personal data for authentication purposes once the organization has stored the identifier which can be the phone number or the email address.

Pros​

  • Having a separate registration and subsequent authentication flow is a well known practise in the field. It's a familiar user experience.
  • Working with identifiers reduces the amount of potential login failures to nearly zero, causing practically no dropouts.

Cons​

  • Disclosing data from multiple sources may result in a more complex user experience when the user does not have the data already issued at their Yivi app.

Issuing a unique identifier to the Wallet​

Organizations can enhance user authentication by issuing a unique identifier, such as a membership card, directly to users’ Yivi wallets. This approach allows users to authenticate seamlessly without repeatedly disclosing sensitive personal data. The unique identifier can be tied to an internal identifier known only to the organization, ensuring a smooth authentication experience while maintaining user privacy.

This process can be facilitated using chained Yivi sessions. Users first disclose the necessary information for registration. If any mismatches arise that prevent automatic registration, additional identifying information, such as a contract number, can be requested to complete the registration. Once a user is successfully registered, the organization can issue a Yivi credential containing the unique identifier, which can be used for subsequent authentications.

A notable example of this implementation is PubHubs, where users are issued a club membership credential that allows seamless authentication for entry and participation.

Disclosure of informationIssuance of registration

Pros​

  • Provides a privacy-preserving authentication method without requiring repeated data disclosures.
  • Reduces user friction in subsequent login attempts.
  • Can be tied to existing internal identifiers within the organization.
  • Enables a high level of security with minimal backchannel verification.

Cons​

  • Chained Yivi sessions are not yet widely supported by many identity brokers such as Signicat and Ver.iD.
  • Having organization specific credentials in a Wallet and using them on a subsequent authentication is not a well-known user experience yet.

Authentication Using the Yivi Wallet Instance Identifier​

Every Yivi wallet instance is associated with a unique app-ID, which is issued by the Yivi keyshare server. This identifier provides an alternative authentication mechanism that does not rely on personal attributes.

Organizations can use the app-ID as a pseudonymous identifier to authenticate users across sessions. This method provides a straightforward way to recognize returning users without requesting sensitive personal data. However, the app-ID has limitations that make it less suitable for long-term authentication.

Disclosure of App-ID information

Pros​

  • Functions as a pseudonymized identifier for users, maintaining privacy.
  • Enables quick and easy authentication without requiring additional attributes to be issued.

Cons​

  • The app-ID is not unique across different devices or installations. For example, an iOS and an Android installation of the same user will generate distinct appid values.

Final Thoughts​

Each authentication method using Yivi presents unique strengths and challenges. The choice depends on factors such as regulatory compliance, infrastructure readiness, and user experience. Organizations must carefully assess their needs and available resources before implementing an authentication solution with Yivi.

December update

Β· 7 min read
Wouter Ensink
Developer @ Caesar Groep
Sara Vahdati Pour
Developer @ Caesar Groep
Dibran Mulder
CTO @ Caesar Groep

Hey everyone!

As we approach the end of 2024, our team is working hard to deliver as much progress on the project as possible. In keeping with our commitment to the community, we’re excited to share some of the improvements we’ve been working on. A lot of work has been put into getting a production grade hosting environment, but next to that we also delivered on some other areas.