- From: <meetings@w3c-ccg.org>
- Date: Sat, 2 Aug 2025 11:48:25 -0700
- To: public-credentials@w3.org
- Message-ID: <CA+ChqYfS9cJxOmrG0+H+KBZRbGdBzveb00C7HnD3UP7PnYfaRQ@mail.gmail.com>
VC API Community Group Meeting Summary - 2025/07/29 *Attendees:* Dave Longley, Eric Schuh, Joe Andrieu, John's Notetaker, Kayode Ezike, Manu Sporny, Parth Bhatt *Topics Covered:* 1. *Badge Summit Report (Kayode Ezike):* Kayode reported on his experience at the Badge Summit, highlighting a "petting zoo" event demonstrating VC claiming and interoperability. A key discussion point revolved around the lack of clear guidance in the specification for same-device claiming using deep links, prompting a suggestion to raise an issue for further discussion and potential specification updates. The use of deep links within the protocols endpoint was also noted. 2. *Pull Request Review:* The majority of the meeting focused on reviewing several pull requests: - *PR: Specifying Presentation Schema:* Discussion centered on whether to restrict the presentation schema to JSON Schema or allow for other schema types. The consensus leaned towards specifying JSON Schema concretely while allowing for future expansion with other schema types, requiring a clear description of how to use JSON Schema and leaving other options open for future standardization. - *PR: Add proof chain and set documentation to credential issuance:* A rebase issue was resolved by agreeing to separate commits for clarity and proper attribution of changes. - *PR: Update proof description and add proof ID and previous proof properties:* This PR was revised to remove the addition of proofID and previousProof properties, acknowledging the lack of implementer feedback on these features. Only the proof description update will be retained. - *PR: Clarify Open ID values:* The team requires a complete example of an authorization request to finalize this PR. 3. *Upcoming Meeting:* The next meeting will continue the pull request review process, with Eric Schuh committing to work on several PRs. *Key Points:* - The Badge Summit provided valuable insights into real-world VC usage and interoperability challenges. - The need for improved clarity and examples in the VC API specification was highlighted multiple times. - Maintaining proper attribution of changes in the specification through Git commits is crucial. - A pragmatic approach was adopted for handling schema types in the specification, prioritizing concrete implementation over premature generalization. - The group prioritized existing implementations and interoperability before adding new, potentially complex features. Text: https://meet.w3c-ccg.org/archives/w3c-ccg-vc-api-2025-07-29.md Video: https://meet.w3c-ccg.org/archives/w3c-ccg-vc-api-2025-07-29.mp4 *VC API - 2025/07/29 14:58 EDT - Transcript* *Attendees* Dave Longley, Eric Schuh, Joe Andrieu, John's Notetaker, Kayode Ezike, Manu Sporny, Parth Bhatt *Transcript* Joe Andrieu: Hey Sorry, I just got a big laugh in my email. we have a presentation due next week for the no phone home and I think we all forgot about it. Manu Sporny: I saw it on the calendar. Was looking forward to it. Joe Andrieu: Yeah, it'll be exciting. we just have to actually prepare something. Manu Sporny: Yeah. Yeah. good thing you have a lot of content to pull from,… Joe Andrieu: Yeah, it shouldn't be hard. Manu Sporny: least conceptually. Yeah. we'll get started in a minute. I unfortunately have to drop at 25 past the hour, so this is going to be a pretty short call today. I think we're going to focus mostly on poll requests. so yeah, we've got four PRs that we need to kind of Go ahead. Clarity. Kayode Ezike: Yeah, I also have just took a few questions I'd like to ask at some point. Manu Sporny: Sure thing. Kayode Ezike: I didn't know if they merited issues per se, but just wanted to have a chance to ask them on the call. Manu Sporny: Let's let me make sure. Oops. All right, let's go ahead and get started. so the agenda today is largely just pull request processing. Manu Sporny: As I noted, I've got to go halfway through the hour. so we're probably only be going to be able to get to pull requests today. any other kind of community updates before we get started? Coyote, I think you were at the badge summit last week. Kayode Ezike: Yeah. Manu Sporny: I don't know if you wanted to report out on anything that happened there with VCs or VC API or anything like that. Kayode Ezike: Yeah, I was there. so I admittedly missed the first couple days. I had to do some debugging of some things, but the final day was interesting because it's my first batch summit I've ever been to. So, I'll start with that. But this was also their first time doing a particular event that they called L petting zoo. Basically this new branding that they're doing where they wanted to basically demonstrate to folks what it looks like to claim VCs and to demonstrate interoperability. Kayode Ezike: it very much in the same spirit as jobs for the future plugfest type of thing but also unnecessarily it could also just be a provider demonstrating the ability to acquire credentials from their own systems and so I think what you were saying so there was a post a comment that I made in the playground channel. I wanted to see if we could kind of use the playground to demonstrate some of that stuff. ended up not using it too much, but it worked the way that I needed to whenever I did use it, but I did try to socialize it a little bit with it with a few folks from ASU as well as DCC. Kayode Ezike: There was one comment that received at one point that was interesting that I had to think a little bit about, but basically there was one practitioner who kind of was hesitant to they were familiar with it. They were aware of it, but they were hesitant to introduce it because it wasn't clear how to claim on the same device because it's very like code. I guess my thinking after that meeting was that I mean it's just like you can always add the claim through chy or whatever interf mechanism you want to on top of that. It doesn't prevent that. 00:05:00 Kayode Ezike: It's just that I guess it doesn't like the spec for the interaction stuff doesn't necessarily I think call out how that might happen and maybe that's something that people are wanting to see. But that was an interesting data point that I got back from that conversation. But yeah, all in I thought it was a great event. I think that people are starting to see, different examples of what it looks like to interact with, like I said, the arts, VCs, etc. Manu Sporny: Yeah, that's a good comment about BC Playground. Yeah, I mean, you can use Chappie. and in fact, that's what we do. there's also potential to use the DC I don't know if the current version of DC API supports any other protocol … Manu Sporny: other than Open ID. but that could also be meaning that could be used same device as well. Kayode Ezike: Yeah, I think it was more so the actual interactions like that new spec that or… Kayode Ezike: I guess subspec that was kind of defined maybe a month or two ago. I think for some reason there was the expectation that there would be some language around how to use that in combination with a same device flow because it is QRentric but maybe the answer to that is that it's more so just supposed to demonstrate the cross device and… Kayode Ezike: you're supposed to use the other mechanisms on top of that if you need to do same device. yeah. Manu Sporny: Interesting. Yeah. Manu Sporny: Yeah, that's interesting. I don't know if we've I'm pulling the playground up now. so they were expecting is this the thing that they were expecting? Manu Sporny: Hold on. Let me no. uses chappie. this one,… Kayode Ezike: So I guess maybe it's actually to pull it up… Kayode Ezike: who would Yeah. Manu Sporny: Yeah, it's this thing, right? Kayode Ezike: So maybe a little bit more context could help too. Manu Sporny: Help me. Kayode Ezike: So the folks that I was speaking to actually both the people I mentioned they have a flow it's like a lot of them have a deep link flow right where basically using the kers that they currently use or the links they currently use are deep links to the applications and I think I was trying to socialize the idea of also being able to support something like this where you can sure you would still have to have a camera that's cognizant of what this URL format means and you can't just do it necessarily directly from any camera app with a caveat but I think that's like the context that's important to mention and then from there I think there was a discussion about… Kayode Ezike: how do we actually enable with that flow like a same device delivery Manu Sporny: Okay. Manu Sporny: Interesting. trying to think if we should raise an issue on that or not, Cody, because it's currently out of scope right now, what the protocols URL provides back and how you convey the protocols URL is kind of out of scope. I think it's worth probably raising an issue coyote so we can at least talk about it to figure out which spec it should land in like that explanation. Kayode Ezike: Yeah, I'll take this back to guy that I was speaking with and see what if he can also give a little bit more light to… Kayode Ezike: what he would hope to see from this sort of port flow. Manu Sporny: Okay, sounds good. Manu Sporny: Go ahead, Dave. Dave Longley: Yeah, I just want to say I mean if you're looking for a deep link those are necessarily specific to the origin that you're communicating with. A pattern could be devised where you could say if you want to make a deep link it looks like this and this query variable will take the interaction URL and then that way when you click on it it should presumably open the right app or take you to a website that the app provider has implemented and transmit the interaction URL as a query parameter to that link. 00:10:00 Dave Longley: So, we could suggest that as a pattern, but that's really only going to work if what wallet or client the user has or you've got some list of them and that gets back to maybe you should be using Shopee for those situations and in that situation if you are then the protocols are that link is communicated to you over Shopee to whatever deep link you've installed. Kayode Ezike: Yeah, that makes sorry I know we have a bunch of other things, but other thing I wanted to add that kind of relates to what Dave said too is I noticed an interesting pattern that one issue our developer implemented which is I know at the moment the protocols endpoint is in some ways I mean it's specified to a degree but I think there's some flexibility in what you can put in there. Kayode Ezike: I think I've seen an implementation where they actually provide in addition to BTPI for V star etc. there's the deep links for different issuers that they might also support as well. I've seen that space be carved out for that sort of a interaction. Kayode Ezike: I'm not sure if that's in line with the vision for what the protocols object was going to be for, but it's just something I'm starting to notice. Manu Sporny: it is I mean we support any arbitrary protocol being put into the protocols thing right we don't have a pattern on… Manu Sporny: how exactly you do proprietary things in there… Manu Sporny: but we know that no matter what we do they're going to be companies that have their own proprietary protocols that they want to run and So, we providing a mechanism for them to advertise that if the other side wants to use it, but of course, they'll also be the open protocols that they could use so, Good. Kayode Ezike: So those are my observations geneneralally. Kayode Ezike: But yeah, overall I thought it was a pretty neat event and I think these folks are aware of what's going on in this community to a degree. Manu Sporny: great. Thank you for all the work that you did on your demos, Coyote, to kind of share the news and information on the stuff that we're working in the CCG and beyond. All right. let's jump into poll requests real quick. I think we've got about 10 minutes, so we might run through these pretty quickly. the first PR was this ability to specify the presentation schema to the workflow step. I think I did a bunch of changes. but I don't know what to do at this point. Manu Sporny: So the previously we had specified concretely the type being JSON schema and the schema being expressed in the JSON schema property. we got some feedback where people were like why are we making this so specific to JSON schema? Don't we really mean any schema? So a PR was put in. I think Longley you said this is specifically for JSON schema we can do other things Ted said yes but for those other things we need to define something and so I'm kind of stuck right now on what the PR should do. Manu Sporny: we can be concrete and say this is just for JSON schema. Other mechanisms we can create a more generic interface where the type is JSON s The schema is a JSON schema thing. But say that other things could be used for type, but we don't define what they are just yet. go ahead Dave. Dave Longley: I think we do something not quite exactly what you just said, but the JSON schema for this the open API stuff should have a list that says any of and one of them is … Manu Sporny: Dave Longley: where the type is JSON schema and it will have the property JSON schema and we will just have one entry in that array in any of array until there's anyone who wants to interoperate on any other type of schema. So what we're saying is when you specify the schema type a required property is type but for anything more than that all of the properties match whatever the type is if that makes sense. Manu Sporny: So add rules to the JSON schema so that they match concretely on the following type JSON JSON schema and then JSON schema string I know I'll figure out later. on the following… 00:15:00 Manu Sporny: but also allow in any of match that does the following. I don't know if this is even the right thing to do. Dave Longley: Yeah, this is more like we're clearly and… Dave Longley: we probably want text too. we're clearly saying you can put whatever schema you want in here. If you use JSON schema, it has to look like this. No other but we don't specify anything else because we don't have anyone else saying how to interoperate on any other schema. So this is our one concrete mechanism that we will specify in the group so far for… Dave Longley: what you can use. Here's how you do it. Sure you can put something else in there. It'll be non-standard currently. Manu Sporny: And… Manu Sporny: then do we want to do something like this? Dave Longley: No, because I't know. We don't even know… Manu Sporny: Yeah, it's fine. Dave Longley: Dave Longley: what that is. So we can say type is required no matter… Manu Sporny: Yep, that's fine. Okay, I will … Dave Longley: what you do. But then anything else you needs to match one of these things in the list if that makes sense. But the text could just say you have to put type. Manu Sporny: Sure. Dave Longley: But we're only going to accept JSON schema right now… Manu Sporny: Okay. Dave Longley: because that's the only thing that's standardized. Manu Sporny: That you're but that does not agree Ted would disagree with that,… Manu Sporny: I think. So, I need that be okay. Dave Longley: I think Ted's complaint is we don't have text. That says what we just said. So, if what we're doing, I think that that will address Ted's concern,… Dave Longley: Manu Sporny: Okay. Dave Longley: and he can tell us otherwise. Manu Sporny: I'll make a rev and then see how TED responds. okay, that's that item. next PR is PR495. Manu Sporny: Add proof chain and set documentation to credential issuance. I think yeah, this was a request to rebase. Was that all it was? parse. … Parth Bhatt: Yeah and… Parth Bhatt: basically include all the death commits in one basically request. So I bundled it. Manu Sporny: no, you collapsed it all down into a single commit, right? Yeah,… Parth Bhatt: Yes, but that was the only final change. Manu Sporny: that yeah you wiped Ted's commitments. Parth Bhatt: Did I misunderstood? Manu Sporny: So the reason this is important is because at some point we need to attribute who wrote what in the specification like who were editors who were authors that kind of thing and if we wipe out people's contributions like Ted doesn't show up at all here Ted wouldn't get any credit for this thing even though it includes his text. so,… Manu Sporny: Parth Bhatt: Okay. … Manu Sporny: so usually the way it needs to happen is like your commits go in as one commit. Parth Bhatt: what Yes,… Manu Sporny: And then Ted comes in and he does a bunch of editorial changes. You can wrap all of those into one editorial fix and that goes as a second commit in it and that will ensure that we properly attribute people in the change log. Does that make sense? Okay. All right. yeah. Parth Bhatt: I do have a backup of this repo. Manu Sporny: But now that it's okay. Parth Bhatt: I can create another PR with the same changes and I can acknowledge dead changes in a separate commit if you want. Manu Sporny: All right, that sounds good. Yeah. and it's sorry to be a pain about this part,… Parth Bhatt: It's okay. Manu Sporny: but we want to make sure that we give people the credit that's due for the changes that they made to the specification. it definitely adds up over two years. Ted has become an editor on specifications where he was never officially an editor, but he just edited so much of it that we could demonstrate that he was truly acting as an editor. even though he didn't, have it in next pull 499, update proof description and add proof ID and previous proof properties. I think Dave has provided a lot of feedback on this one, which I have not had a chance to read through. Do you want to summarize this? 00:20:00 Dave Longley: Yeah, the summary is I don't think we should add any proof options to a top level options thing. it does not match usage and won't work with more complex use cases where you have multiple proofs and so on. And I wrote a whole bunch about that. I don't think we have any implementers who are coming forward saying this is how I implemented a flexible reusable approach to specifying previous proof ID or anything like that. and in the absence of that what we've always done everywhere else is said we're not going to specify how to do that right now. Dave Longley: We're going to let implementers incubate it and then they can bring that to the group if they want to see if anyone else wants to interoperate with how they've done it. Manu Sporny: And so that would reduce this PR down to just this change up here. Dave Longley: Yes, I think we just have a description on the proof. Manu Sporny: Okay, sounds good. parts. does that give you enough to go from? Parth Bhatt: Yeah, I basically have to remove the proof ID section from the credential option YAML file. Manu Sporny: Yep. Dave Longley: And then there's a previous proof as well. Manu Sporny: And okay. Dave Longley: We just remove those two things. Parth Bhatt: Yes. Yes. Manu Sporny: Manu Sporny: All that is that item and then the last one we have is clarify open ID values. I did take a look at this and try to raise a PR on it. I see there are changes here. I will merge those in. and then Coyote has a request for a change here. I think the main thing I'm blocked by here is an example, a full-fledged example of what this value looks like because it's impossible for me to tell by looking at the Open ID4VP spec what it should actually be. Manu Sporny: There's some of it in there, but that's correct. Dave Longley: You're saying… Dave Longley: what this property looks like, but I think you're saying what an example authorization request looks like because that's not the same thing because all this property is going to do is have a simple string with a simple variable name in it there. Manu Sporny: That's right. Yeah. Yeah. Manu Sporny: It's the other part of it that was part of I think issue 456. I think we said we were going to put an example in here. I suppose a concrete example should be provided is the thing that I was responding. Dave Longley: I think yeah but the concrete example is just going to be the variable name if you go back to it's the other property… Manu Sporny: It's No, it's the other part of it. Yeah, it's the other property. Dave Longley: but you go back to the other PR there's text in there that says you have to use this or that I don't remember that is called probably just authorization request is the name of the variable it says either this or… Manu Sporny: Yeah, it's the example in authorization request that I'm talking about. this correct. Dave Longley: yes that is the one that we need an example of. Manu Sporny: That's what I'm asking for. Manu Sporny: I don't know… Dave Longley: Okay. Manu Sporny: what that example looks like, but if somebody could put that in here, I could finish off this All right. that is it for the call today. I'm sorry it was a short call. but I've got to run because I'm double booked. that is all the PRs. I think PR editors will get those updated and we'll cover them again next week. and then hope to have some other issues addressed there. I think you're on PTO next week, there are a couple of PRs we're waiting on people so whenever folks can get around to it. Yeah, go ahead, Eric. Eric Schuh: I'll actually be here next week. Eric Schuh: It's the following week. and I'm working on the one PR that I'm assigned right now. So that should be in and I'm going to try to knock out one or two of the other ones that are marked low effort as well. So Manu Sporny: Excellent. Manu Sporny: Okay, Thanks that's it for the call. thank you everyone. appreciate it. I don't know what happens if I leave the call and let it run. so yeah, maybe if you all could Coyote Dave use another Slack channel or something. I'll shut the call down. thanks everyone. chat again next week. Take care. Bye. Meeting ended after 00:24:50 👋 *This editable transcript was computer generated and might contain errors. People can also change the text after it was created.*
Received on Saturday, 2 August 2025 18:48:32 UTC