- From: <meetings@w3c-ccg.org>
- Date: Mon, 12 May 2025 15:09:13 -0700
- To: public-credentials@w3.org
- Message-ID: <CA+ChqYeftm-4sWfhVEJfo4xPG9YDLcmDQkU7r=VzwviZCUZgYg@mail.gmail.com>
📝 Meeting Summary: VC ADU Task Force - May 12, 2025 Summary The VC ADU task force meeting discussed advanced UI considerations for verifiable credentials (VCs), focusing on challenges related to duplicate credentials and credential deletion in edge wallets. The discussion also covered public links for credential sharing and briefly touched upon future discussions on VC updates. Topics Covered: - *Handling Duplicate VCs:* The group explored definitions of duplicate VCs (byte-for-byte identical, same content/different timestamps, same ID/different content, no ID). Different strategies for identifying and handling duplicates in wallet databases were discussed, including using the VC ID, assigning random IDs, or using deterministic hashes (like the signature value). Implementers shared their approaches, highlighting varying levels of duplicate detection and user prompting. - *Deleting VCs and Attachments:* The complexities of deleting VCs in edge wallets were examined, particularly concerning the handling of duplicate credentials and associated attachments. The analogy of Unix file system links (soft and hard links) was used to illustrate the different approaches to managing multiple references to the same credential data. The implications for user interface design were emphasized. - *Public Links for Credential Sharing:* The functionality of creating public links for VCs in edge wallets was discussed, focusing on the implications of uploading a copy to public storage and managing the shared copy when the original credential is deleted. The Europass wallet's approach, which includes mandatory expiry dates and restrictions on recipient actions, was presented as an example. - *VC Updates (briefly):* The need for future discussion on handling VC updates (e.g., content changes, revocations, accruing information) was noted. Key Points: - There's no single, universally agreed-upon definition of a "duplicate" VC, leading to varied implementation strategies. - Wallet implementers use different primary key strategies for their databases (VC ID, random IDs, deterministic hashes). - Deleting VCs in edge wallets presents challenges, especially when handling duplicates and attachments. The user experience needs careful consideration. - The creation of public links for VC sharing introduces complexities related to managing the shared copy when the original is deleted. - The Europass wallet's approach to share links (expiry dates, restricted actions) was presented as a case study. - The topic of handling VC updates requires further discussion. Suggested Next Steps: - Create documentation (blog post or wiki section) on handling unique/duplicate VCs and credential deletion. Text: https://meet.w3c-ccg.org/archives/w3c-ccg-vcs-for-education-2025-05-12.md Video: https://meet.w3c-ccg.org/archives/w3c-ccg-vcs-for-education-2025-05-12.mp4 📝 Notes May 12, 2025 Meeting May 12, 2025 at 10:59 EDT Meeting records Transcript <?tab=t.cfse4n45vx56> Recording <https://drive.google.com/file/d/1JrU24nXl5gvUbA-4yUVqVaQJ6L4D33LX/view?usp=drive_web> Summary The VC ADU task force meeting, led by Dmitri Zagidulin, covered advanced UI considerations for verifiable credentials, including managing duplicate credentials based on various identification strategies discussed by participants like Ildiko Mazar and Kayode Ezike, and the complexities of deleting credentials and their associated attachments in edge wallets, drawing analogies to file system links as suggested by Ted Thibodeau Jr. The discussion also touched on the creation and management of public links for sharing credentials, as exemplified by the Europass wallet approach described by Ildiko Mazar, and briefly mentioned future discussions on handling VC updates. Details - *Meeting Link Issue and Introductions* Ildiko Mazar noted that Dimitri Zagidulin had initially shared the wrong meeting link, but a reminder was sent, and Dimitri confirmed the correct link from the W3 calendar ( 00:00:00 <#00:00:00>). Dmitri welcomed everyone to the VC ADU task force meeting, emphasizing it's open to all but specification contributions require W3C membership and IP agreement (00:04:04 <#00:04:04>). Colin Reynolds reintroduced themself and announced the upcoming Badge Summit in Boulder, Colorado, from July 21st to 24th, which will focus on implementing verified credentials in education (00:05:23 <#00:05:23>). - *Badge Summit Details* Colin Reynolds described the Badge Summit as a key event for discussing verified credentials in the education sector, highlighting its low cost despite potential hotel expenses in Boulder ( 00:06:41 <#00:06:41>). They mentioned a "LER petting zoo" at the end of the three days of conversations, designed to engage with real solutions like verified credentials and digital wallets. Dmitri Zagidulin endorsed the Badge Summit based on their positive experience last year and shared a link in the chat (00:07:50 <#00:07:50>). - *Advanced Topics in Verifiable Credentials* Dmitri Zagidulin introduced the main topic: advanced considerations for user-facing UI in verifiable credentials, stemming from implementer questions and the MIT Digital Credentials Consortium's wallet implementation experience (00:09:01 <#00:09:01>). The discussion would cover issues like handling duplicate credentials and the process of deleting them, with a potential discussion on updating VCs if time allowed (00:10:26 <#00:10:26>). - *Handling Duplicate Verifiable Credentials* Dmitri Zagidulin raised the issue of duplicate verifiable credentials, explaining that duplicates can arise from multiple scans of QR codes or repeated clicks on download links ( 00:11:45 <#00:11:45>). He questioned what constitutes a duplicate, ranging from byte-for-byte identical credentials to those with the same content but different timestamps or issuance details, and also those with the same ID but different contents or no ID at all (00:13:04 <#00:13:04>). Dmitri then asked wallet implementers about their primary key strategy in their databases for storing credentials (00:16:07 <#00:16:07>). - *Credential Identification Strategies* Dmitri Zagidulin discussed various approaches to uniquely identifying verifiable credentials in a wallet's database, including using the verifiable credential ID, assigning a unique random ID, or employing deterministic hashes like the signature value. He highlighted the initial naive approach of using the VC ID which led to issues with credentials lacking an ID (00:17:31 <#00:17:31>) ( 00:25:43 <#00:25:43>). Ildiko Mazar explained that the European wallet uses the mandatory unique identifier of RVCs and prevents duplicates by issuing an error message if a credential with the same ID is encountered again (00:18:54 <#00:18:54>). This policy means their wallet cannot ingest credentials without a VC ID (00:19:57 <#00:19:57>). - *Alternative Duplicate Handling Approaches* Kayode Ezike described their approach of using JSON canonicalization to check for semantic duplicates before adding a credential to their store, and they use a randomly generated UUID as the internal ID. Dmitri Zagidulin mentioned that the Learn a Credential wallet initially used VC ID but now likely uses a composite approach: the VC ID if present, or a hash (potentially the signature) (00:21:52 <#00:21:52>) (00:24:19 <#00:24:19>). He pointed out the complexities of handling credentials with the same ID but different contents, or same contents with differing timestamps or expiration dates, suggesting wallets could prompt users to replace older or expiring credentials (00:25:43 <#00:25:43>) (00:28:38 <#00:28:38>). - *Wallet Behavior with Duplicate Credentials* Dmitri Zagidulin summarized that when a duplicate VC is encountered, a wallet could silently ignore it if byte-for-byte identical, store another copy, or prompt the user ( 00:36:34 <#00:36:34>). For credentials with the same ID but different contents, storing both might be reasonable. The Learn a Credential wallet prompts the user if a similar credential exists, allowing them to choose whether to store another copy (00:37:42 <#00:37:42>). - *Deleting Verifiable Credentials and Attachments* Dmitri Zagidulin transitioned to the topic of deleting verifiable credentials, particularly in edge wallets where the credential is only stored on the user's device ( 00:39:06 <#00:39:06>). He raised questions about handling duplicates upon deletion – whether deleting one should delete all copies or prompt the user. Ted Thibodeau Jr introduced the concepts of soft links and hard links from Unix file systems as a way to think about managing multiple references to the same credential data, highlighting the implications for deletion ( 00:40:29 <#00:40:29>). Dmitri emphasized the user interface challenges of displaying and managing potentially duplicated credentials (00:42:51 <#00:42:51>). The discussion extended to handling attachments associated with credentials, such as PDFs, and whether deleting a credential should also prompt or automatically delete these attachments, drawing an analogy to email clients (00:44:08 <#00:44:08>). - *Public Links to Verifiable Credentials* Dmitri Zagidulin discussed the functionality of creating public links to credentials in edge wallets for easier sharing, noting that this involves uploading a copy to public storage and informing the user of the implications (00:48:23 <#00:48:23>). He raised the question of what should happen to the publicly shared copy when the original credential is deleted from the wallet, comparing it to sharing and deleting files in cloud storage like Google Drive (00:51:06 <#00:51:06>). Ildiko Mazar described that in the Europass wallet, share links have mandatory expiry dates and restrict the recipient's actions to viewing the content and verification status, without allowing JSON-LD download or resharing (00:53:21 <#00:53:21>). Dmitri noted that this approach of server-side verification for shared links differs from the general verifiable credential model that emphasizes independent third-party verification (00:54:50 <#00:54:50>). - *Updates and Further Discussion* Dmitri Zagidulin briefly touched upon handling updates to verifiable credentials, mentioning that while the refresh service can be automated, other types of updates (content changes, revocations, accruing additional information) and the distinction between everything-at-issuance and accruing methods would be topics for future discussions . He thanked everyone for their participation and encouraged further conversation on the mailing list . Suggested next steps - [ ] The group will create documentation on the discussed topics regarding unique and duplicate verifiable credentials and credential deletion, potentially as a blog post or a wiki section on the DCC site. *You should review Gemini's notes to make sure they're accurate. Get tips and learn how Gemini takes notes <https://support.google.com/meet/answer/14754931>* *Please provide feedback about using Gemini to take notes in a short survey. <https://google.qualtrics.com/jfe/form/SV_9vK3UZEaIQKKE7A?confid=rO04c0qV6I6xFNhaFUWCDxIUOA8MCwMyBwiKAiAAGAEI>* 📖 Transcript May 12, 2025 Meeting May 12, 2025 at 10:59 EDT - Transcript 00:00:00 {#00:00:00} *Ildiko Mazar:* Hello. Hello again. This time there will be a crowd. *Ted Thibodeau Jr:* I'll hold you to it. *Ildiko Mazar:* It's I just picked up Dimitri's message and I think he quite simply shared uh the wrong um meeting link. So I just sent a a reminder to the group and him. So he should be uh here. Yes, he is. Hello. Yeah, that's better than last week. Hello. *Dmitri Zagidulin:* Why? I had the wrong link, but that's good to know. Thank you so much, Eldico. *Ildiko Mazar:* No problem at all. I hope I have the right link, but uh I have this uh uh from from before and Ted was here too. So I think this is it. But *Dmitri Zagidulin:* Right *Ildiko Mazar:* I'll *Ted Thibodeau Jr:* This *Dmitri Zagidulin:* on. *Ildiko Mazar:* check *Ted Thibodeau Jr:* is *Ildiko Mazar:* too. *Ted Thibodeau Jr:* this *Dmitri Zagidulin:* Right *Ted Thibodeau Jr:* is *Dmitri Zagidulin:* on. *Ted Thibodeau Jr:* the *Dmitri Zagidulin:* Right *Ted Thibodeau Jr:* one *Dmitri Zagidulin:* on. 00:02:18 *Ted Thibodeau Jr:* in the W3 calendar. So *Dmitri Zagidulin:* Perfect. *Ted Thibodeau Jr:* hopefully *Dmitri Zagidulin:* That's That's important. *Ildiko Mazar:* Yeah. *Dmitri Zagidulin:* A minor minor friction when switching to a new uh *Ildiko Mazar:* Of course. *Dmitri Zagidulin:* new platform. Oh, we're going to give a couple more minutes uh for uh people to connect given the switch and then we'll get started. Meanwhile, I'm going to change all my calendar entries here. *Ildiko Mazar:* Yeah, that's the one thing that I couldn't quite figure out and I might be just uh did a ton when it comes to technical issues, but uh I couldn't import uh the calendar however hard I tried. So, it's a manual entry for now. *Dmitri Zagidulin:* Yeah, the calendar story is harder. had had these questions for other task forces of the CCG. *Ildiko Mazar:* And we're supposed to have transcription, but I don't see where it is. It just says that it's being transcribed. *Dmitri Zagidulin:* Yeah, I think uh it I think it's uh in an email to the CCG somewhere. uh it might automatically make a pull request to the meetings uh GitHub repo, but we'll we'll double check. 00:04:04 {#00:04:04} *Dmitri Zagidulin:* Yeah, *Ildiko Mazar:* Absolutely. *Dmitri Zagidulin:* I suppose we could turn on the live captions. Yeah, here we go. For those who like it, I suppose you could turn it on uh individually. So, uh all right. Uh well, we'll we'll get started even if people are filing in. Awesome. Welcome everyone to uh the weekly uh VC ADU uh verifiable credentials and education task force of uh the W3C credentials community group. Uh calls are open to anyone. Um you do not need to be a member of W3C to participate. Uh however to contribute to specifications uh you do need to be a member of uh W3C uh which also ju just to be safe uh when you know when giving suggestions here in case you uh ever have IP restriction questions. You probably want to be a member of W3C and uh the CCG group and sign the IP uh requirement. Uh calls are recorded uh and we are under the W3C code of conduct. I think that's all the boiler plate. 00:05:23 {#00:05:23} *Dmitri Zagidulin:* Uh any introductions or reintroductions? Do we have um people that are that are new that I want to that want to introduce themselves? For those of us uh just joining uh we're on the introductions and reintroductions uh part. I noticed a couple couple new people stepped in. Are there any community announcements uh upcoming conferences uh events that we want and uh as always we ceue up by just raising your hand uh here in um in Google Meet. same same mechanism as um as we did in Jity. Yeah. Go ahead, Colin. *Colin Reynolds:* Well, I'll say hello again and just uh try out the new platform. I *Dmitri Zagidulin:* Yeah, *Colin Reynolds:* I apologize. I I missed the last week. I think mostly because I hadn't updated the Google Meet link. Um so, *Dmitri Zagidulin:* no worries. We didn't have call last week anyways. *Colin Reynolds:* oh okay, great. *Dmitri Zagidulin:* All *Colin Reynolds:* Um *Dmitri Zagidulin:* good. *Colin Reynolds:* well, Badge Summit is coming up in Boulder, Colorado in July, uh July 21st to the 24th. 00:06:41 {#00:06:41} *Colin Reynolds:* for Americanbased folks. I think that's a big big place for us to get together and and talk through the implementation of verified credentials in the education space at scale. I I know that's a a higher education focused engagement, but uh that's certainly a big one that's on uh education design labs radar as well as as many others. So, I just will throw that out there. And it's a very lowcost uh conference to attend. It's probably more expensive to get to just because Boulder is a pretty small town and doesn't have a ton of hotel options, but um if folks uh need I think there's a list of hotel blocks on the on the website, but that's a a big conference coming up where we'll jam on a lot of this. And I think a big focus that Noah Geel um he's the coordinator planner of all of it is um the LER petting zoo, which is what he's calling it. So it's uh intended to be I think at the end of um so there'll be TLN is also opening the trusted learner network from Arizona State is also hosting their unconference there uh on that Monday. 00:07:50 {#00:07:50} *Colin Reynolds:* So there'll be three days of of conversations and at the end of it then the LER petting zoo which is I think designed in a way that should build on what people have learned throughout the week to then engage with some some folks in a real meaningful tangible way uh with some of the solutions that they're providing including verified credentials, digital wallets, comprehensive learner records, that type of thing. So uh I just wanted to put that out there for the group. *Dmitri Zagidulin:* Thank you so much. Yeah. Uh want to plus one to that. I attended badge summit for the first time last year and it was uh it was a really uh helpful experience. Uh looking forward to it this year. Uh uh paste a link uh to the badge summit in chat here uh just in case. Instead, go ahead. *Ted Thibodeau Jr:* That was all I was going to ask for is link. *Dmitri Zagidulin:* Yeah, we want the link. Um, all right. Thank you. Uh, okay. Uh, so our main topic today, unless uh there's anybody else who wants to do introductions or announcements, our main topic today is, uh, let's talk about some advanced topics in verifiable credentials, especially when it comes to userfacing, uh, UI. 00:09:01 {#00:09:01} *Dmitri Zagidulin:* Um part of it is just uh questions that we've gotten sort of over uh over time from implementers and part of it uh this is based on the experience from uh MIT's digital credentials consortium team uh just in having uh implemented a u an open source VC wallet. The these are the internal discussions we had. These are the uh problems we bumped up against. Uh and we wanted to sort of surface the discussion here. uh one uh just because those of you who are impleers might be interested uh in the topic uh to get some input from uh from the group uh because it's it's an interesting topic in general. So let me share my screen. Uh and also I just posted a link to the slides in in chat. All right. Can everybody see my screen? Actually, you know what? I'm going to going to join from another from another computer as well so that so that I can keep an eye on the chat in um while while sharing screen in full full screen mode. 00:10:26 {#00:10:26} *Dmitri Zagidulin:* Give me just a second. We'll get started. Here we go. Here we go. Excellent. Okay, I should be able to I I see the chat now. All right. So, yeah. Um, we wanted to talk about to to put out some interesting questions about, uh, what does it mean to have, uh, a unique or duplicate verifiable credential and what happens when user has a credential in their wallet and they click delete this credential. Uh, and yeah, so that that's the kind of stuff uh that we want to talk about. And if uh if we got time uh in the discussion today, I want to approach the subject of hey, how do we handle updates to VCs? Because that's a frequently asked question um that that we get when introducing the concept of verifiable credentials to somebody uh that we'll get into. All right. So let's start start with this uh what happens when you have a credential in a wallet and a user adds another duplicate credential to it right so another copy of it. 00:11:45 {#00:11:45} *Dmitri Zagidulin:* So first and this is again very very real um issue that any uh wallet implement uh deals with. So first of all what do we mean by duplicate and why would duplicates be uh why would they be happening? Uh so one depends on how your users add credentials to your wallet, right? A lot of wallets offer the ability to scan a QR code uh to add a verifiable credential or to click a download link and and uh get a credential in uh into a wallet. Plus there's NFC tabs, all sorts of uh all sorts of methods. And so one of the one of the things imagine you have a link to uh to a QR code for a credential that's uh hosted somewhere and a user happens to scan it twice, right? happens all the time. Just like uh there's duplicate form submissions in uh any sort of form on a website and since time in memorial developers had to come up with various uh safeguards of how do you prevent a form being submitted twice? Well, you disable the button uh you put a little spinner so that the user doesn't double click. 00:13:04 {#00:13:04} *Dmitri Zagidulin:* But even with that, you have to check for duplicates on uh on the server side. this the same sort of thing. So first of all, what do we mean by duplicates? That's that's part of the reason that uh we wanted to bring up this discussion uh here because it's an interesting topic. Verifiable credentials are are complex uh complex field, complex data model and it turns out we could mean several things. One is it could literally be a bite forbyte identical verifiable credential. Like literally there's a credential in a QR code. Let's say it's embedded in there. But even if it's hosted on a cloud and the user scans the same credential twice. It's not a dynamic issuance endpoint, right? So so two VCs are not issued twice or not signed twice. They're issued once, but a user pick picks up a credential twice. Right. What so what should happen then? What about when it is a dynamic issuance endpoint? Right. Right. 00:14:14 *Dmitri Zagidulin:* So, so user happens to scan a QR code several times uh and each time the wallet goes through a uh uh uh verifiable presentation issuance protocol handshake with with the issuing server and the contents of the credential is the same. ment. So the only thing that that that changes is the created timestamp on on the signature, right? So let's say I'm picking up a course completion credential. It's the same course. I just uh just finished it and uh I click on the link twice and my wallet picks up uh two freshly issued uh credentials. What should the user see in that in that case? Well, so part of it is of course uh server side the pick up your credential application could be coded as such that uh to to help minimize or prevent this. But it's still it's still very possible uh that a wallet either uh there's a transmission glitch and the wallet retries or whatever. So what should happen should it hap uh should uh that case be encountered. Now, what about a very different use case where you're not picking up the same copy where two different verifiable credentials are issued with the same ID and we're going to talk about uh the verifiable credential ID uh in just a second. 00:16:07 {#00:16:07} *Dmitri Zagidulin:* And and what about And what about those credentials that don't have an ID? The the things that we we call bearer credentials uh that and then there's two copies of of say credential with the same contents uh but maybe with slightly different time stamps otherwise they'd be bite for by identical PCs. So I I'd love to hear some thoughts uh from um from the group or actually let's let's talk about uh let's talk about ids for a second. Uh those of you who have uh implemented verifiable credential wallets uh I'd love to hear what do you use as the primary key in the database when you store a credential. So the easiest easiest thing uh when dev teams first encounter verifiable credentials is to be like all right we can just use the verifiable credential ID. So that's that's what happened to us a developer uh implementing it was creating the table structure for the internal database and the wallet and and again we we have what is known as an edge wallet which means there's no cloud component that uh verifiable credentials are stored only on a mobile device. 00:17:31 {#00:17:31} *Dmitri Zagidulin:* Right? So there's an internal database in in the phone uh in the mobile app that stores each incoming verifiable credentials. So the question is how do you uniquely identify that credential? So the the first iteration uh the developer doing this was like I'll just use a verified credential ID and you can immediately see that what happens when uh it receives a credential that doesn't have an ID and and the answer to that is it was a bug. Uh there were a bunch of credentials with the ID of undefined uh which is which is JavaScript jargon for when the field is missing and it led to some funny behavior. All right, another thought is uh you can assign it a unique random ID or an auto incrementing integer. Uh which is great and that it prevents collisions. Uh but it also means that you can have any number of copies of the same credential in your database. And and lastly you there is a class of techniques of forming ids uh that is called uh deterministic uh hashes. 00:18:54 {#00:18:54} *Dmitri Zagidulin:* I see uh Eldico has a in in chat question of updates in what sense? So yeah. So so let's let's talk about that in just a second. But let's um but first I want to ask uh those who who have implemented wallets or uh just just think about it as a logic puzzle. How would you store verify how would you uniquely identify a verifiable credential in uh in a wallet? So any any takers? Ilico, go ahead. *Ildiko Mazar:* Uh of course as you know I'm very happy to promote our European digital credentials. So *Dmitri Zagidulin:* Yeah. *Ildiko Mazar:* uh first of all we do not have uh local databases. Uh what we do is uh we have the uh various instantiations of uh the credential issuer but once it's issued there are no there's no trace for uh just uh the protection of uh the person's uh identity. And when it's deposited uh into a wallet uh it's registered under the unique identifier that is a compulsory property of RVCs. So *Dmitri Zagidulin:* Now, 00:19:57 {#00:19:57} *Ildiko Mazar:* uh *Dmitri Zagidulin:* so, *Ildiko Mazar:* every *Dmitri Zagidulin:* so *Ildiko Mazar:* one *Dmitri Zagidulin:* wait, *Ildiko Mazar:* of them *Dmitri Zagidulin:* wait, *Ildiko Mazar:* has *Dmitri Zagidulin:* just *Ildiko Mazar:* one. Yep. *Dmitri Zagidulin:* ju just to uh just to clarify, we're talking about the unique database in the mobile wallet, not on the *Ildiko Mazar:* Ah *Dmitri Zagidulin:* issuer. The it's *Ildiko Mazar:* okay. *Dmitri Zagidulin:* it's a given that the issuer doesn't keep track of it for for privacy reasons. *Ildiko Mazar:* Okay. *Dmitri Zagidulin:* We're talking about in the receiving user's wallet. How is it *Ildiko Mazar:* Okay. *Dmitri Zagidulin:* indexed? *Ildiko Mazar:* And then so based on that uh unique identifier uh once you would try to upload it twice or issue it twice you would receive an error message that this credential already exists in the wallet. So uh there's no it doesn't get overwritten. It's just a single copy of the credential there. So that's how it works *Dmitri Zagidulin:* got it. So that uh that means your wallets cannot ingest credentials that don't have uh a verified credential ID. 00:20:44 *Dmitri Zagidulin:* Right. *Ildiko Mazar:* It's correct. *Dmitri Zagidulin:* Okay. And it's, you know, that that's a that's a reasonable uh policy decision. It just so happens that the verifiable credential specification does not require verifiable credential ID field. And so there is a number of VCs out there that don't have a VC ID. So one easy uh one easy decision is like like I mentioned is to not handle those. And I'm assuming it gives um error if you try to ingest a credential without an ID. *Ildiko Mazar:* I have to say uh I never tried it because uh the uh Europas wallet is part of a a bigger library where *Dmitri Zagidulin:* All right. *Ildiko Mazar:* uh one component is the wallet the other is just a regular uh upload based library uh into *Dmitri Zagidulin:* Yep. *Ildiko Mazar:* which you can upload any other documents PDFs uh open badges uh JPEGs uh scanned documents uh whatever. So one way or another the user is able to store them. What happens if you try to open or upload a credential that is VC but doesn't have an identifier? 00:21:52 {#00:21:52} *Dmitri Zagidulin:* Excellent. Yeah. And uh you it'll be interesting to uh to hear what uh once you do check what happens. Uh and you know I'm realizing as part of this discussion uh what we could what we could do here at BC Edu is uh create a list of example verifiable credentials that people could just test on right so we can we can create a verifiable credential without an ID that people can ingest into their wallet and just see what happens uh other other implementers who who's got uh who's got questions comments on this uh Kyota go head. *Kayode Ezike:* Yeah. Um, so this is an interesting topic. I think about it to so the way that I've gone about it is to use Jason canonicalize um to to determine if there is another potential that has the same value um you know you canize both. So there's still room for optimization right because it you know requires to actually go through and do that for everyone um in *Dmitri Zagidulin:* Uh-huh. *Kayode Ezike:* there. But at the very least, you know for sure if you will collide um when you and and if it does collide, it just doesn't do anything. 00:23:04 *Kayode Ezike:* just *Dmitri Zagidulin:* So what does what does your wallet do for assigning an internal database ID? What do you use as a primary key for *Kayode Ezike:* so it doesn't So at the moment it just kind of uses uh the So currently for the credential uh wallet side of things it's using um storing it kind of in a store and like really this comes up when you're adding when you're actually adding it to the door um where you want to check to see whether or not there's another credential that has the same uh value. But as far as um like a a primary key at the moment, it's really kind of just that we we have this store that we're managing and um we're moving towards sort of a more proper database storage solution, but um currently it's just a um I have to double check again, but basically just kind of relying upon um an ID, which I double check quickly, which *Dmitri Zagidulin:* I *Kayode Ezike:* I *Dmitri Zagidulin:* suspect it's that option too. I think uh databases by or a lot of database by default either auto increment an integer or just assign a random ID. 00:24:19 {#00:24:19} *Kayode Ezike:* yeah um exactly so I'm just double checking the code right now. Actually what we are doing is we're we're generating a a random VU ID and then using that for the ID of the credential but that is distinct from the ID that is on the credential itself. Um so it's just the the main question around how we're checking the collisions again is just checking for canalization and seeing that it's equal. Um, and then we just auto generate an ID as as we receive it into the wallet. *Dmitri Zagidulin:* Got it. Makes sense. Makes sense. Anyone else? So what we what we ended up doing in uh at least learn a credential wallet is we started out with just a naive implementation of VC ID uh ran into a bug where not all credentials had IDs uh and I believe we now uh I'd have to double check uh the code but I believe we use this option four which is if there is an ID we use it or uh we use a hash. And it just so happens that every single credential comes with a unique hash which is its signature value. 00:25:43 {#00:25:43} *Dmitri Zagidulin:* In general, for for those unfamiliar with the uh cryptography, what's a signature? It's an encrypted hash of an object. Uh which means if you sign two identical credentials, it comes to the same comes to the same signature. So uh signature is a uh a convenient and useful if slightly long unique identifier for any given credential. Um, of course, if you do use this composite method, if you do use the VCID, now you start uh having the having to uh find out what happens if um you try to ingest different credential with the same ID but with different contents. Uh so so so let's go back to our question. Now now that we've talked about what's what some of the options uh for storing credentials in in wallets are uh you either use the provided credential ID, you assign it your own random number or you use a deterministic hash. You can use a signature value for it. Right? Right. So, so now given those tools, we have to h handle these four scenarios. 00:27:06 *Dmitri Zagidulin:* So when a new VC comes in and it is bite forbite identical to an existing one, do you have code that that checks for that? Right? And and you can you can easily picture a uh sort of very simple implementation of a wallet that doesn't check for it that just stores an additional copy. But you can also see how that that may lead to uh user confusion. Uh, Ildico mentioned that the uh, European wallet uh, that her team deals with um, just uses the VC ID and may or may not uh, check incoming VCs for for uh, identical contests. Coyote mentioned that uh his team's wallet does check uh not just bite for bite but canonicalized which means like you sort the keys uh just so that you you remove difference in whites space for example. Uh but yeah, so for those for those of you who do rely on uh VC ID, uh question becomes what happens when uh two different verifiable credentials come in with the same ID. So it sounds like for for the European wallet, it looks at the ID and says, "No, you already have one." 00:28:38 {#00:28:38} *Dmitri Zagidulin:* Uh rejects it. Valid valid approach. And it sounds like uh in in Coyote's case uh it checks the canonicalized equivalence and and also rejects it if it's a duplicate one. But I wanted which again is also a valid approach but I wanted to show that there there that it's not obvious there's different options right you you could easily see a credential saying hey these two credentials are identical except for the time stamp and this one is slightly newer do you perhaps want to replace the newer credential with the older one right or or for example an incoming credential uh that again has the same fields but one expires later. You can see how you would want uh the the UI to prompt the user, hey, this one this credential is going to live longer. Do you want to replace it? So, any any questions about this operation? Yeah, go ahead. *Ildiko Mazar:* While the others are thinking uh I know that uh and this is why I asked the other question about the uh what kind of updates because 00:30:01 *Dmitri Zagidulin:* Uh-huh. *Ildiko Mazar:* uh all our credentials that live in wallets now we know that the original electronic seal that uh is applied to them might expire but *Dmitri Zagidulin:* Uh-huh. *Ildiko Mazar:* if they are stored in a wallet uh they are automatically renewed which means that uh they renew the time stamp and uh make them uh valid for a longer term uh in theory. uh until the end of times uh if they are still in the wallet. *Dmitri Zagidulin:* meaning the wallet has internal logic that receives uh a new credential and updates it. Is *Ildiko Mazar:* Mhm. *Dmitri Zagidulin:* that what Aha *Ildiko Mazar:* No, it's checking in it's checking the proof and uh if the the the seal that we always check uh whether it's still a valid uh advanced or qualified electronic seal which is uh something that is there has to be an eidas compliant legal electronic signature seal. *Dmitri Zagidulin:* Uh-huh. *Ildiko Mazar:* Uh if it's about to expire then the the wallet notices and just extends the validity. So the issuer doesn't have to worry about uh their seal expiring and all the thousands of credentials they issued uh prior to that date. 00:31:09 *Ildiko Mazar:* The wallet takes care of it. It's *Dmitri Zagidulin:* Now, *Ildiko Mazar:* only *Dmitri Zagidulin:* so *Ildiko Mazar:* a risk. *Dmitri Zagidulin:* when you say when you say wallet takes care of it, do you mean wallet notifies the issuer uh which *Ildiko Mazar:* No, *Dmitri Zagidulin:* reissues *Ildiko Mazar:* no, *Dmitri Zagidulin:* the *Ildiko Mazar:* no. The wallet automatically updates the the credential that is stored uh in the wallet. *Dmitri Zagidulin:* How can the wallet uh uh the wallet doesn't have the issuer signing keys? How can it do that? *Ildiko Mazar:* it uh adds a new time stamp. So it *Dmitri Zagidulin:* With *Ildiko Mazar:* just *Dmitri Zagidulin:* with *Ildiko Mazar:* extends *Dmitri Zagidulin:* whose *Ildiko Mazar:* the validity *Dmitri Zagidulin:* keys? *Ildiko Mazar:* uh just time step no key. *Dmitri Zagidulin:* Interesting. Okay. So, that's that doesn't quite match the verifiable credential data model. So, it'll be really *Ildiko Mazar:* Oh, *Dmitri Zagidulin:* interesting to um *Ildiko Mazar:* I'll find *Dmitri Zagidulin:* to *Ildiko Mazar:* some *Dmitri Zagidulin:* to *Ildiko Mazar:* documentation. *Dmitri Zagidulin:* dive into the details. Yeah, I' I'd love to know more, right? 00:31:53 *Dmitri Zagidulin:* Because I I'm always interested in interoperability uh between uh between European and and uh the rest of the world's credentials. Uh for from from my understanding of the VC data model, that's not possible. But I think uh I think the European wallet may be doing something interesting that we should know about. So I'd love to uh have a deeper dive from from the sort of baseline verifiable credential model. The only the only party that can renew or extend the validity of a credential is the issuer because they have the they have the signing keys, right? And so the way that's done usually and this is this is an interesting uh question that we'll uh uh we'll get into in a couple of slides of yeah what does happen uh let's say when a credential expires and and you want a renew one because the verifiable credential data model does have a uh refresh method property uh which is used exactly for the operation that you're talking about. it specifies the API endpoint that the wallet has to contact to receive an updated a refreshed copy an extended copy. 00:33:11 *Dmitri Zagidulin:* Uh and and I know a couple of um wallets and projects use that API endpoint use that mechanism from uh the VC data model. Any uh any other questions or comments about uh but okay so so question to Ildico then uh okay so if the only thing that differs is the time stamp then that makes sense European wallet uh has a mechanism that we need to uh look into but what happens when uh a let's say the text of the description in a verifiable credential changes is is there a mechanis mechism to to get uh Oh, actually I'm jumping ahead. I'm jumping ahead. Uh we'll we'll get into updates, but I just wanted to uh yeah, my my question to you is I have a credential in my wallet and another credential with different contents comes in with the same ID just gets rejected, right? Because it's the same ID. *Ildiko Mazar:* Yes, *Dmitri Zagidulin:* Okay, got it. *Ildiko Mazar:* I I think so. I think this is the what I I don't know if it's we do a bite for bite check. 00:34:29 *Ildiko Mazar:* Now *Dmitri Zagidulin:* Uh-huh. *Ildiko Mazar:* that I see it on your slide, it makes me wonder if uh the verification or the validation is more complicated than I thought, but *Dmitri Zagidulin:* Uh-huh. *Ildiko Mazar:* I do know that all the credentials have uh unique identifier. So that's what I thought they would be checking because *Dmitri Zagidulin:* Got *Ildiko Mazar:* even *Dmitri Zagidulin:* it. *Ildiko Mazar:* if you are the issuer trying to reissue, you would get that error message that you can't issue this. You already issued this before. *Dmitri Zagidulin:* Got it. That that makes perfect sense. All right. Any any other questions before we move on? So, yeah. So, we talked about uh the uniqueness options. Go ahead, Kyote. *Kayode Ezike:* This might just might not be like a big deal, an edge case, but you mentioned the signature using using that as part of the identifier, but what do you *Dmitri Zagidulin:* Those *Kayode Ezike:* have you thought at all about credentials that don't have proofs on them or are you not thinking about those at all and you thinking of those as like not counting 00:35:27 *Dmitri Zagidulin:* are not verifiable *Kayode Ezike:* in this *Dmitri Zagidulin:* credentials. *Kayode Ezike:* space? *Dmitri Zagidulin:* Those are not verifiable credentials. Now we do have we we do have a question of uh what about supporting documents things like evidence and things like uh you you know if I if I have let's say um open badge version three of let's say a skill credential and I have a supporting evidence as as a PDF right the PDF doesn't have a proof on it uh some wallets do store that PDF uh so what do you what do you do with that right so so yours is a very valid question of uh what happens to objects without proofs uh again and the options are you use the incoming sort of incoming file name or URL for them as the ID you assign them a random ID in the database or you hash the contents of the of the object as a PDF or whatever *Kayode Ezike:* Yeah, makes sense. Cool. *Dmitri Zagidulin:* great question anyone else. In fact, let's let's just capture that *Alex Higuera:* I 00:36:34 {#00:36:34} *Dmitri Zagidulin:* so *Alex Higuera:* have *Dmitri Zagidulin:* that *Alex Higuera:* a question. *Dmitri Zagidulin:* Yeah, please. *Alex Higuera:* Uh do you think we'll have documentation on this uh that others can access over the uh the internet like either through a blog post or *Dmitri Zagidulin:* You're looking at it. You're looking at it. Uh, and we we can certainly uh turn this into a blog post for sure. *Alex Higuera:* Yeah. or or maybe uh as a uh a wiki section on our dcc site. *Dmitri Zagidulin:* Yeah, absolutely. That I mean that that would be super useful for sure. *Alex Higuera:* Okay, that was all I *Dmitri Zagidulin:* Yeah. Yeah. Yeah. Great question. All right. Uh yeah. So just to just to sort of sum summarize uh what um what does the user see when a duplicate uh VC for all the values of duplicate that we talked about comes in? Uh well one one option is if it is a white bite for by duplicate then you just don't do anything. You just you handle the event silently. 00:37:42 {#00:37:42} *Dmitri Zagidulin:* you don't have another copy because it is literally by identical uh and so the the user doesn't see the list updated. So you you can you can notify the user or just handle this only. The other option is you can literally just store a copy of the verifiable credential which again does it make sense to store a bite forbyte verifiable copy? Um, no, probably not. What about two uh two different credentials with the same ID but different contents? Yeah, in that case it probably does make sense to store them. Uh what about same contents but slightly different timestamps or different expirations? It that's that's a that's something that you have to decide as an implement. What what we do with learn a credential wallet is uh I believe we prompt the user I'm not I don't think we check for bite forbyte equivalents. I believe we prompt the user that says hey you already have a credential like this uh do you still want to store a copy or not? And and we do allow them to either yes or no again. 00:39:06 {#00:39:06} *Dmitri Zagidulin:* So it just depends on the the level of sophistication in your wallet logic, the wallet, the level of handholding you would like for the user. Uh any any questions about the options. All right. Okay, in that case, uh let's talk about deleting verifiable credentials, right? So, here we've got uh a couple of different different options. We have a class of wallets that are known as edge wallets where uh the copy of the credential is only stored on the user's app on the user's mobile device. So, learn a credential wallet is one of those. As Elico mentioned, the European wallet is also uh like required to be an edge wallet. Meaning you just have a copy on on the app. What happens when user deletes the app? They have to go get new copies. They have to go go get the credentials reissued by somebody. It's not stored anywhere else. It's not stored on the server's database. But you see the questions that it leads to, right? 00:40:29 {#00:40:29} *Dmitri Zagidulin:* So I think everybody has the sort of internal intuition of okay, if I only have one copy of the credential in a wallet and and I click delete, it gets deleted from the phone's database from from the phone's memory and that's it. But what about if you allow duplicates, right? So, so that that previous question of hey that that option number two store another copy well when I when I when I delete the first copy do you also automatically delete the second copy? Do you prompt the users that says hey there's a couple of copies of this uh do you want to delete both? Then that sort of begs the question of if you're doing that level of logic, maybe you shouldn't have uh allowed the copy in the first place. But it's a it's a valid question as um Ted mentions in chat. Uh maybe this is a good uh opportunity for this notion of uh soft links and hard links. Ted, do you want to do you want to say more about that? What's what would be uh 00:41:33 *Ted Thibodeau Jr:* Uh, sure. *Dmitri Zagidulin:* say more about that? *Ted Thibodeau Jr:* The gist is that in a Unix file system, you can have what is commonly known as an alias or a shortcut. That is a soft link. It means that you have one copy of the file. Um, right within the file system. Um, the file system manages these things very similarly. A soft link does not a soft link means you can delete the alias or the shortcut without deleting the actual file contents. In contrast, a hard link um you can delete sorry back to the soft link. uh you can physically delete the quote unquote original without touching the quote unquote shortcuts or soft links. However, those shortcuts never no longer have something to go to. With a hard link, you may have seven links to the same content and you can delete each and all of those links except for the last one without deleting the contents. *Dmitri Zagidulin:* Yeah, *Ted Thibodeau Jr:* This is 00:42:51 {#00:42:51} *Dmitri Zagidulin:* makes sense. *Ted Thibodeau Jr:* Yeah, this is this saves bytes of storage in in both cases, but it makes for different modalities of control of of how much you want to retain the data. Like a shortcut to somebody else's file, they can delete the file and your shortcut no longer works except that it says that file is gone. A hard link to somebody else's file is like copying it except that you only use the bytes once. *Dmitri Zagidulin:* Yeah, great point. And so this this sort of makes you think about uh and I I wanted to capture uh your your point here in the slide. The impleers need to think about as as frequently happens the end user interface if you have just a simple list then and and in the list let's say you display the name of the credential then it was confusing to the user to have two items in the list with the same name with the same icon right because then which one do I click on uh if you have more sophisticated ated ways of organizing the credentials uh than just a flat list. 00:44:08 {#00:44:08} *Dmitri Zagidulin:* Uh if you if you can for example put credentials in folders then you have to get into this soft link and hard link problem that uh Ted mentioned. We all have um we all have experience with this either with our desktop operating system file systems right so where you have you have a file but then in other folders you can add a shortcut to it. it doesn't it's not a copy it's literally like a a link a shortcut but then in Google Docs right where we're I don't know if you if people realize this but in Google Docs you can place the same file in two different folders under the hood it is uh it is a link it is it also uses this notion of shortcuts uh which which gets confusing then if somebody create uh deletes the original and you were using hard links uh which means even though you thought you had a copy, your copy disappears, right? It's it's non-trivial user uh usability um behavior and and and cognitive load. Uh so so worth worth thinking about especially if you have uh sort of non-trivial or organization about u similarly right so we talked about what happens when you delete just the one copy what happens when you delete the duplicates hey what about when you have attachments right like as we mentioned before some uh open badges have supporting documents like PDFs and word docs and and other credentials do you when deleting one do you helpfully prompt the 00:45:52 *Dmitri Zagidulin:* user to says, "Hey, this credential has two uh three different attachments. Should I delete those those three as well?" Um, and again, you could do it silently and automatically without uh or or you can prompt the user. Yeah, go ahead, Ted. *Ted Thibodeau Jr:* Yeah, this is similar in my mind to email attachments, right? When you get an email message with a PDF attached to it, bundled into it, some mail clients will automatically put that PDF someplace that you've decided for PDF storage and keep a link to it within the message within your mailbox. Other mail clients will keep the message and its attachments in their own like sort of folder as far as its organizational thinking is. Uh and then when you delete the message in the first one, it will certainly delete the message and it may ask you about the PDF or it may just say you've already decided to offload the PDF storage. So you can manage that separately and in that environment you can delete the PDF without touching the email message and then later when you go to that message and try to open its attached PDF you may find that it's gone. 00:47:13 *Ted Thibodeau Jr:* In the second uh management style, you can't delete the PDF except going through some special commands to say, do I really want to delete the attachment of this message? And then you might keep the message without the attachments. Uh you might in in the second field uh uh method when you delete the email message, it may ask you or may not that the PDF also be deleted. it may just automatically do it because that's your decision in using this mail client. Um, yeah, this is part of why choosing a mail client is an important thing that you do because if it does the wrong management style or the different management style than you're used to, you can wind up losing important documents. *Dmitri Zagidulin:* Absolutely. *Ted Thibodeau Jr:* Just food for thought. *Dmitri Zagidulin:* No, that's that's a great point. You're absolutely right. Ex the exact uh 100% analogy for with email clients, right? So, so compare like a old school uh Outlook or Thunderbird or even Apple mail. Email comes in, it's got an attached PDF, you delete the email. 00:48:23 {#00:48:23} *Dmitri Zagidulin:* Do you as a user have expectation that the PDF got deleted too? I would assume yes. But it's the same thing if you encountered a uh an email in Gmail and you open the attachment in your Google Drive and so a copy gets created in your Google Drive and then you delete the email, the Google Drive copy still stays exactly like uh like Ted mentioned. Essentially what we're getting at is in a way verifiable credential wallets kind of turn into email clients, right? With with with the messages with the emails being very specific special case kind of messages that are signed but but same sort of logic of how do we present attachments? How do we present deletions? And and can you do threaded discussions, right? Can you do updates to the uh to the credential needs to be solved just like we solved it in various ways for free mail clients and and yeah another interesting uh complication to this which is by the way what prompted uh this whole topic of the call uh from the dcc team is so in addition to being an edge wallet we have the ability to create create a public link to a credential. 00:49:57 *Dmitri Zagidulin:* This is useful when uh sharing credential over text, over email. Uh right, because yes, you can make an attach you can attach the raw JSON to an email and and send it to your employer or admissions office, whatever. They're not going to know what to do with it, right? And you don't want to walk them through, okay, now open this JSON in your text editor, select all, copy it into here to verify it, right? Like that's that's not going to happen. So, so what what instead? Well, so well and and that's that's an important uh question that each wallet imple has to uh and and has had to deal with. So our approach to it again uh initial iteration is when you create share create a public link it uploads copy of the credential to internet accessible public storage and it warns the user says hey this is public storage right so uh if you share this link other people will be able to follow that link that you share and and get to it and so on. 00:51:06 {#00:51:06} *Dmitri Zagidulin:* which is a topic in and of itself. And this, by the way, is where the the notion of wallet attached storage comes in, which is my favorite topic uh that I'd love to discuss on on a different call. But here's how it how he here's how it ties into deletion. I have credential in my wallet. I created a public link. So now there's a copy on uh in cloud storage. I click delete. What should happen to the copy and cloud storage? Do you want to prompt the user or say, "Hey, you also have shared it. Do you want to do you want to unshare it? Do you want to delete it from uh from the internet?" Right? You you could see examples in both. Similarly to how we we gave an example with email clients and shared attachments to Google Drive, for example. Uh and again the these are all trade-offs, right? These are all engineering trade-offs and cognitive um cognitive load decisions on part of the user. 00:52:11 *Dmitri Zagidulin:* For example, I send an email with an attachment. I share a a a Google doc from my Google Drive. Okay. Yep. I sent it to Ilico. Ildico receives the email. Great. I go to my Google Drive and I delete the document. And even though I hasn't deleted neither the email nor the attachment from from her drive, uh, unless she opened it, it created a copy, it disappears for Ilico as well, right? So, like and and what you don't see is when you're deleting on the Google Drive, what you don't see is a pop-up that says, "Okay, so you're about to delete this, but recall that you sent as an attachment before to your friend and and deleting it will will delete it for them as well, right? You don't see that uh that UI because it was just happened to be a trade UI trade-off that the Google team made, but you could. And so now we have to we have to decide whether we want to prompt that UI with with verifiable credentials instead of email and attachments. 00:53:21 {#00:53:21} *Dmitri Zagidulin:* Questions uh questions about this. *Ildiko Mazar:* question. *Dmitri Zagidulin:* Yeah. *Ildiko Mazar:* Are these uh share links uh time bound in any sense? Because uh I'm *Dmitri Zagidulin:* Yeah. *Ildiko Mazar:* obviously comparing it to ours. Uh when you create a share link to any of your credentials and your Europass wallet, you must select an expiry date uh for that uh share link. It's always a a unique share link. So you can create multiple share links and attach them to multiple job applications with various different uh expiry dates or application deadlines. Uh and then once the link expires or the credential disappears, they just no longer work. *Dmitri Zagidulin:* Yeah, great question. Uh, hold on. Let me make sure I capture it in the slide. Uh, *Ildiko Mazar:* Also while you're typing uh in EDC's uh the share links uh give a limited or restricted uh freedom to the third party uh authorized uh user to do stuff with the credential. They can no longer download the JSON LD file. Uh they cannot reshare uh or export. 00:54:50 {#00:54:50} *Ildiko Mazar:* Uh they can only consult the the content and the authentication and verification checks while they're on that share link. *Dmitri Zagidulin:* Well, that's See, that's fascinating because that that means they can't use a third party tool that they control to verify it. *Ildiko Mazar:* Yeah, the verification still happens on server side. So, *Dmitri Zagidulin:* Yeah. *Ildiko Mazar:* it's checking the credential in the uh that is stored in a wallet, but the the authorized third party user has uh access temporary access to viewing uh the content. But this the share links can only be created from an individual from their own wallet when they are logged in. And then *Dmitri Zagidulin:* That *Ildiko Mazar:* of *Dmitri Zagidulin:* makes *Ildiko Mazar:* course *Dmitri Zagidulin:* sense. *Ildiko Mazar:* they can manage the share links. *Dmitri Zagidulin:* And that that too uh goes against the the the general verifiable credential uh data model which requires the ability for independent third party to verify uh a credential themselves. I I I can absolutely see the sort of policy decisions that that that went to it, but I I want to I want to highlight that it is a trade-off that the user now relies on one particular uh web application to uh to verify rather than their own. 00:56:08 *Dmitri Zagidulin:* Go ahead, build a build. *Ildiko Mazar:* I think this is uh important to point out that these are what we call the instant automatic and verification checks that are uh supporting and uh accelerating the verification but by no means the third parties are uh stopped from uh verifying themselves. They have uh information about the the issuer. So they have uh comp comprehensive information about the issuers's identity uh about the claims. So they can *Dmitri Zagidulin:* Wait, *Ildiko Mazar:* just *Dmitri Zagidulin:* but you *Ildiko Mazar:* uh *Dmitri Zagidulin:* mentioned that they don't have a copy of the JSON. If they don't have *Ildiko Mazar:* no *Dmitri Zagidulin:* a copy of the JSON, there's no way to verify for them. *Ildiko Mazar:* uh no but once uh if if anybody would temper uh with the credential that is stored uh in in the uh wallet the seal would be broken and that that's part of the authentication and verification checks to show whether the seal is still unbroken and the credential is uh legitimate. So if *Dmitri Zagidulin:* Understood. *Ildiko Mazar:* you 00:57:06 *Dmitri Zagidulin:* But there's no way for a third party verifier to check the seal without having access to the full JSON. That That's my point. *Ildiko Mazar:* uh they can check the seal information uh in one part of the issue the the viewer. So there's a whole tab uh in our *Dmitri Zagidulin:* Ah, *Ildiko Mazar:* viewer *Dmitri Zagidulin:* okay. *Ildiko Mazar:* where *Dmitri Zagidulin:* And that's *Ildiko Mazar:* you *Dmitri Zagidulin:* and *Ildiko Mazar:* can see *Dmitri Zagidulin:* that's what I mean. *Ildiko Mazar:* Yeah. *Dmitri Zagidulin:* Then it relies on one app. It's not possible for third party apps to do it. It relies on that tab specifically. So, and in that way goes against the verify credential *Ildiko Mazar:* Oh, okay. *Dmitri Zagidulin:* uh *Ildiko Mazar:* Good to know. *Dmitri Zagidulin:* um conceptual model. Yeah. All right. We are uh we are getting towards the top of the hour. Any other questions? Uh we I did want to just touch on the subject of uh handling updates to VCs and uh and and as uh Eldico mentioned inspiration refresh service can be handled automatically by wallet. Uh but maybe at a future call we'll talk about uh updating um the frame credential beyond the expiration. What if there's a spelling in the description? What if there's changes to the fields? You know what if there's a name change and I need to get a new diploma? Uh what happens with revocations? And what happens uh as I gather additional evidence or recommendations about a VC? uh and and we could talk about the everything at issuance time versus the acrewing uh method. Uh okay, so I think we're out of uh we're out of time here. Any last uh second questions? Otherwise, thank you so much for everybody for your great questions and um let's continue the conversation on the mailing list uh etc. And and thank you so much you'll to go for for the examples for the European wallets like this. As always, it's really helpful to To have. To have additional examples. Thanks, everyone, cheers. *Ildiko Mazar:* Bye. Transcription ended after 01:10:26 *This editable transcript was computer generated and might contain errors. People can also change the text after it was created.*
Received on Monday, 12 May 2025 22:09:24 UTC