- From: W3C CCG Meetings <meetings@w3c-ccg.org>
- Date: Tue, 25 Aug 2026 16:51:07 -0700
- To: public-credentials@w3.org
- Message-ID: <CA+ChqYdMSat36dtRDk7KiJHKSW1VFw+q=z+O1R68+YMvfN13Xw@mail.gmail.com>
This CCG Atlantic community group call provided an update on the W3C Decentralized Identifiers (DIDs) Working Group, covering its history, achievements, and ongoing debates. The working group, which has been active since 2024, is nearing the end of its charter and has reached significant milestones, including Candidate Recommendation (CR) snapshots for DID 1.1 and DID Resolution. The discussion highlighted the challenges and progress in standardizing DID resolution, DID URL dereferencing, and other related specifications, emphasizing the need for broader implementer feedback and diverse opinions to refine the standards. *Topics Covered:* - *W3C DID Working Group Update:* The session provided an overview of the W3C DID Working Group's progress, including its history, charter, and achievements over the past two years. The primary goal of the working group has been to address concerns regarding interoperability and standardize DID resolution and related specifications. - *DID Core Specification (DID 1.1):* DID 1.1 is nearing completion as a recommendation, with minimal changes expected due to its CR status, focusing on clarifying the DID document representation by removing the abstract data model and standardizing on JSON while allowing for roundtrip conversion from other formats. - *DID Resolution Specification:* This specification, which defines how to resolve DIDs to their associated metadata and DID documents, has reached a CR snapshot, though DID URL dereferencing features were marked as "at risk" due to time constraints. The work standardizes the resolution algorithm, interface, HTTPS binding, and data model for resolution options, document metadata, and resolution metadata. - *DID Specification Registries:* The working group discussed the challenges and complexities of establishing a W3C registry for DID methods and other extension points, ultimately deciding to deprioritize this work due to time constraints and contentious debates around governance and authority. - *DID Rubric:* The DID rubric, a set of criteria for evaluating DID methods, has been "jsonified" for better maintainability and version control, making it a strong candidate for a future W3C registry. - *DID Threat Model:* The requirement to produce threat models for specifications, driven by the security review group, has been incorporated, helping to rigorously analyze potential threats and inform security considerations, although its late introduction into the process presented challenges. - *DID URL Dereferencing:* This is an area of ongoing debate and work, aiming to define how resources can be referenced relative to a DID using DID URLs, including handling paths, query parameters, and fragments. The current focus is on modularizing the algorithm and defining standard components like path handlers and path service types. - *Active Debates and Challenges:* Key areas of contention include the degree of standardization versus leaving room for implementer innovation, the precise boundaries of the dereferencing algorithm, architectural terminology, and the security concerns surrounding relative DID parameters. *Action Items:* - Encourage implementers of DID methods, particularly those involved in resolution, to engage with the DID Resolution specification and submit their DID resolvers to the resolution test suite to demonstrate implementability. - Seek feedback from implementers of DID URL dereferencing to help refine the specification, particularly regarding strong opinions on how DID URLs should be utilized and handled. - Encourage individuals with strong opinions on areas of active debate, such as DID resolution and DID URL dereferencing, to join the working group and contribute their expertise. Text: https://meet.w3c-ccg.org/archives/w3c-ccg-atlantic-2026-08-25.md Video: https://meet.w3c-ccg.org/archives/w3c-ccg-atlantic-2026-08-25.mp4 *CCG Atlantic - 2026/08/25 12:00 EDT - Transcript* *Attendees* Alex Higuera, Benjamin Young, Dmitri Zagidulin, Erica Connell, Gregory Natran, Harrison Tang, JeffO - HumanOS, Jennie Meier, Kaliya Identity Woman, Lancine Toure, Otto Mora, Ted Thibodeau Jr, Will Abramson *Transcript* Will Abramson: Hey folks. Will Abramson: Give folks a couple more minutes. Will Abramson: I'm going to start joining while I'm doing the So, welcome to today's community group call 25th of August. thanks for being here. Yeah. Today you're going to actually have me presenting maybe joined by a bit of Otto. we're going to talk about the W3C decentralized identifiers working group and just give an update on where we're at and how things are going and maybe some of the open debates going on raging in the group. it's a little bit slap dash but I hope it's fine. Just before I get into that quick administrative stuff. Will Abramson: Code of ethics and professional conduct reminder people treat people with respect and must continue to create a welcoming community here. next IP note anyone is welcome to participate in these calls. However substantiative contributors to any CCG work items must be members of CCG with full IPR agreements signed. just reach out to me or Mimmude or Denin. We're happy to help you if you have any questions with that. call notes. So these calls are recorded and transcribed and the transcription and recording are made available on the W3C CCG mailing list within 24 hours. introductions or reintroductions. Anybody new to the call today want to say hello or anybody just fancy saying hello in mostly familiar faces. You're welcome. Will Abramson: No. Okay. Anyone have any announcements or reminders they want to share with the group? I guess I'll just share that next week. I'm going to be at GDC, which is the conference in Geneva, the global digital collaboration. I'm in conversation with Mammud about whether we're going to have a call. I think we're just confirming the speaker. So imagine a CR call is quite tentative and it maybe cancelled depends if the speaker is available. we'll let you know within the next couple of days hopefully. Any other announcements or reminders or work item updates from folks want to share? 00:05:00 Will Abramson: All then let's just dive into it. Let me show my screen. Yeah. So, as I said, just going to give a little rundown on the W3C decentralized identifiers work and where we're at. So, Toatoto and I are the chairs of this working group and we've been going since 2024. So, we're coming to the end or trying to come to the end. So, I think it's a good time to give an update. we've reached some important milestones. So, let's see where we're at. Yeah, I'll start I'll just give a brief history of talk about what DIDs are. Will Abramson: probably a lot of us are familiar but I think it's great to just give some context for those maybe people who are watching this recording. and then I'll dive into really the main bit of the session which is like okay this did working group what does that even mean we've been going since 2024 which was two years now what we achieved I guess and really looking at the major specs that we're dealing with and what has changed I don't know if anyone on the call is implementing ds but we're hopefully going to flag some things to be aware of in the upcoming standards that Will Abramson: pay attention So, brief history. as I said, I've ripped a lot of this stuff off other people's slides, from the past because I just have to pull this together real fast. But this just is just to give you a sense of kind of the history of these ideas and how far we've come, right? We're talking about over 10 years of work by people in this community. and then at the W3C in various working groups, if you have a look so in 2019 the first W3C did working group charter was approved and then that work started right and then there was this for more objections and then in what 2022 did version 1.0 became a recommendation and then obviously take some time to rearter and all that stuff. Will Abramson: And I guess what's interesting about the state we're at now is we're starting to see tentative signs of adoption in the marketplace of decentralized identifiers and their counterpart verifiable credentials which is great. So California Department of Motor Vehicles there's a true age deployment which is about convenience stores and age verification in convenience stores is blue sky's deployment and social media. they have their own d method there's various government identity systems that are exploring proof of concepts or iwords or even adoption of bids VCs so it was Will Abramson: It's great to see right this sort of effort sometimes feels a bit fruitless and 10 years of work right it's starting to pay just we're starting to see things being adopted in the wild which is great. yeah and then maybe some people think this is not such a good thing. There's over 267 d methods and counting and yeah I mean I helped create this website. I mean, it really just tracks the W3C' registry, The W3C's list of did methods. which maybe if there's time I'll get into some of the contentiousness around that registry list thing in a bit. Will Abramson: But what's been interesting to see is obviously AI has driven both use cases for decentralized identifiers and ease at which any person can submit a DID method to the registry. So, maybe 50 of these DID methods happened in the last year and certainly my sense is many of these DID methods are exactly the same just with a different name on it. so I guess I should say not all DID methods are created equally. I think it's great that there is diversity, but as you're sort of trying to navigate this space, it's very important that you review the spec and try and understand whether this method is really something that you want to be using and relying on. 00:10:00 Will Abramson: Yeah and then just a note the did working group got recharged in 2024. So that's kind of like what we're really going to be talking about. So before we get into that what are did so I think these slides maybe originally came from Drummond I took them from a TAC presentation but credit to whoever created these slides because I did not. Yeah. So first, bits should be a permanent or really a persistent identifier, it is a URL that never needs to change. So you can update the cryptographic material behind it, but the identifier itself can stay the same for as long as you want to use it. it should be resolvable. So given that identifier, you should be able to look up and discover metadata that is associated with that identifier. Will Abramson: And it's really that metadata that gives it this cryptographically verifiable nature, we have an identifier, we resolve it to a DID document which contains the metadata and in that metadata there is cryptographic material that we can use to have verifiable interactions with the controller of that identifier. and lastly, it should be decentralized and not all bid methods in the registry are decentralized or there's various definitions of decentralization but the fact is anybody should be able to create a decentralized identifier without requiring them to register that identifier with some authority. have. So there four requirements that kind of stimulated this work and trying to define what is an identifier that could meet these requirements. Will Abramson: So yeah I talked about We have uniform resource names that kind of look like this. and then are very similar but they just have a different scheme. So the scheme did and then we have this thing called a DID method which is effectively the name space for a bunch of identifiers within that name space and then the did method is a specification that defines how you take a divid method specific string and execute the resolve. I mean really how do you do create read update and deactivate and read here is So resolve would be how do you take that string and resolve it to the authoritative document at a point in time. Will Abramson: So apologies this is everybody knows this stuff now I try and be a bit faster but yeah so d is a digital control point often we have these control points that live in someone else's server like our email address or our username and password right we have to go knock on somebody else's door and then tell them the password but they kind of then look it up in their system and say yeah you are all about trying to move these control points into our device so we give people identifiers but the cryptographic material by which we can have verifiable interactions on behalf of that identifier exists on our device not on somebody else's server. There are a lot of benefits for this model but particular events like honeypotss and it just puts the control of these identifiers in control I guess. Yeah. Will Abramson: So as we said this is the bid right so you create these bids they never need to change but over time you can change the cryptographic material through which you prove control over that identifier. So you can have a single persistent identifier with rotatable cryptographic material and other information through which people can come to understand the control of this identifier. Yeah. And this is really the goal is more and more of our digital interactions are backed by cryptography that are in control. the controllers of those identifiers have cryptographic backing instead of we defer that authority to some system who then tells us what information is true or I think we see with AI you get that even more, right? Will Abramson: you have all of these actors now doing things and you really don't even know if they're human or not, but also we don't even know if the actions that they're taken are trustworthy in closed, I think cryptography is the ways that we can start to anchor our digital interactions in some kind of basis of truth or digital facts. and I definitely believe we need more people to have bits and use cryptography through bits. So, I thought there's any questions about that? I just kind of rush through that. 00:15:00 Will Abramson: I think we're all up to speed on bits and why they're important, but if anyone has any questions, please jump on the queue. No. Okay, good. yeah. did working group 20 24 to present. Yes, this has been interesting for me. I wouldn't have said in 2024 that this was really something that I was well equipped to be a chair of a working group. It's been a fantastic experience to kind of learn on the job, I guess you'd say. so let's see where we got to, right? Yeah. So we start a working group with a charter, right? Will Abramson: Before you can have a working group at the W3C, you have to define through the W3C and the W3C has a bunch of members. They sign off on charters. Basically, they approve them. so the charter itself was a whole battle going backwards and forwards. not a battle but there was a lot of contention in the charter definition because one of the reasons we needed this charter or the justification for this charter was we had to address the concerns raised in version 1.0. So when we had a formal objection there were a number of different organizations that objected to the vid 1.0 Will Abramson: a standard because of the perceived in non-interoperability across div methods. and this charter one of the purposes of it was to address that those concerns to demonstrate how DIDs do in fact enable interoperability even when people have different divided methods when their identifiers are across multiple different bit methods. So yeah, we put some things in the charter. In particular, we said, okay, we don't really need to do much on the did core specification. We're just going to tain so we're going to iterate it to version 1.1. And that means you can do something that the W3C class is class one to three level changes. It basically means we can't add any new features. The only changes we can make that would be normative would be if we can justify they are for fixing a security flaw or a bug in the specification. Will Abramson: So the idea is in general 1 should be backwards compatible with did 1.0 And then additionally we said we are going to define the resolution. So we're going to come up with a entirely new specification which has no basis even though we adopt the CCG did resolution spec which was a final work it final community report from this group which was great as a basis but that work comes into our working group and doesn't it really is up to the group to decide. we could throw that entire spec away or we could build on it. Basically nothing is defined until there's a 1.0 specification and the work was to create this 1.0 standard that people can then rely on for how to did resolution and then there were some other things that we had in scope. Will Abramson: So we had the DI specification registries which we thought maybe we'll turn it into a W3C registry which is this new sort of construct from the W3C that continued maintenance of a spec rather than issuing them as a final I think that in the version 1.0 this was a work item working draft. There's some name for this thing which basically means a note, right? That's what it was. It was a note, So at the end of the work, they publish this note. But the problem is then the working group stops being active and that note can't be updated over time. And the idea of a registry is they create a mechanism by which these things can be continually maintained even when the working group is not active and working under a chart. Will Abramson: We also said we're going to do some stuff around this did rubric work and we also thought maybe we turn that into a registry and then maybe we're going to define a plain se representation maybe we're going to work on the did implementation guide and these are just at the start right so in 2024 we're like what do we want to work on these are the things we might work on let's put them in our chart because it's really hard to add things to the charter once you have it approved but it's easy to not do the things that are in your charter, you don't have to do all these things. We just saying we might do them. 00:20:00 Will Abramson: Yeah and I kind of talked about this but the theory that we landed on during the chartering was if we can did resolution create a standard way for DIDs to be resolved to their metadata right their DID documents and other associated metadata then that is a mechanism by which we can demonstrate interoperability among these divid methods right you think I'm somebody who discovers a bid in the files and I have a standard interface that I can execute a resolution request for that did and get back a DID call standardized document then we have this interoperability layer because it doesn't matter what the DID method is that DID document should Always. Will Abramson: is contain a set of standardized fields that I can then use to have verifiable interactions with the divid controller. So that's what we hope to demonstrate and hopefully when we get to the final vote we won't get similar objections. Yeah, this is just a little bit I put in about okay, how does a working group work? So, you have your charter, then you publish these things called working drafts. working drafts are just so you constantly have the latest spec in a working draft state, I think. but, you're continuously iterating on this in the group, right? Will Abramson: processing issues like updating the spec, all that sort of stuff. And then once you think you're ready, you create a candidate recommendation CR. You move to CR. and you need sort of a working group decision to move to CR and team approval. And then once you're in VR, you can continually iterate on your CR releases, but eventually you say, "Right, we're done now." And then you are sending out to wide review. So that means you're asking the community to review this spec and approve it. and then also it goes out to AC review. And basically the goal is to get to here to a formal W3C recommendation. Will Abramson: You start over here which is just like the working groups involved. Then I missed the step to get to CR first you need to go through horizontal review. So the W3C has a bunch of working groups like TAG the technical architecture group like internationalization and security privacy and there are basically experts that sit on these groups and then they provide review over your current spec and raise any issues that they think you need to address before you can move into CR. So getting to CR is like a big step. Will Abramson: It's like, yes, we now think we have something that is final, although we might change it and iterate on it. this is final and good enough to eventually move to W. So, hopefully I explained that It's kind of complicated and I'm still, learning the ropes a little bit. yeah. So, then I just wanted to update folks. where is the group we had this charter back two years ago. get the great news is we have a CR snapshot which is like we have a CR release basically. Wait. Will Abramson: for both of our core specifications. So did 1.1 had a snapshot in March which are so we might still be making some changes while it's in CR but these are going to be very minimal. We really think did 1.1 is good to go. And then We were trying really hard to get all of our features into the did resolution spec but decided to mark some features at risk so we could get a snapshot in time for the end as we come to the end of our chart. We thought it was really important that we get ACR snapshot of something that the group has consensus on and what we decided that something just did resolution. Will Abramson: So the did resolution spec actually defines two things which I'll get into in a bit but they how to resolve a did and then they define this thing called did URL dreferencing and we marked all did URL dreferencing at risk not because we don't want it I think the group is all in agreement that we definitely want to dig referencing but because we didn't feel confident that we could get to consensus over this spec feature in time given our current charter status which runs out in October. 00:25:00 Will Abramson: So we wanted to just get something into a CR snapshot and then continue work once we have that in snapshot continue working on dig or did URL dreferencing this was just thought the better practice right we really didn't want to finish or have our charter expire without a CR snapshot for did resolution because that would be considered like a fail of the group What So did certification registries. We did a bunch of stuff on this and really it was maybe a distraction at the start on reflection cuz people have a lot of opinions about the DID specification registries, right? Will Abramson: that is the registry for the DID methods but also for any extension points to both the additional properties in DID document and also to resolution arguments and things like that. So basically a bunch of list stuff that what we did do is we did specification registry into three separate documents. and maybe even three separate repos, but in particular, we wanted to pull the did methods work out. And we were thinking eventually we would try and transition that did methods registry into a proper W3C registry, but we abandoned this due to just time constraints and prioritization. I think still if there is a future iteration of this work, we would probably pick Will Abramson: that back up. But we were arguing a lot about, what are the rules of the registry? who's going to, is the W3C even the right entity to be authoritative over these are the set of approved bids, right? A lot of people push back against that. Basically, it was a rat hole. We got stuck in it for a little while and then we just decided, right, let's stop so we're still, active in the D specification registries. We just didn't have it as a priority. Yeah. And then the did rubric me and Joe have been working on the side to try and we haven't added any partic criteria. So for those people who don't know the DID rubric is a set of criteria that you can use to evaluate whether a DID method is right for your use cases. Will Abramson: So it's a set of questions with a set of responses and you bring your subjective self and the use case that you care about and the idea is you should select a few DI methods and this is a tool by which you can help make a more informed decision and we iterated a few criteria based on some work that Joe did by applying this rubric to a bunch of different bid methods. But the main thing that we did is we jsonified it. So now the did rubric is not just a text like a HTML document that has all of the criteria in it is a HTML document that is generated from a set of JSON files and that just makes it much easier if anyone on this call was interested or anyone in the future wants to add a new criteria or propose changes to existing criteria. Will Abramson: it becomes something that we can version and track in a much more I guess code and version control maintainable way. So we think this is a great candidate for W3C registry. We hope we can make that transition but we just don't know about the horizontal review required for a W3C registry. Basically, this is an entirely new process that W3C is still figuring out and we would be one of the first people through that process. But we believe we've done all the work needed. It's just going through that process of making it a W3C registry and doing that transition. And then finally, the did threat model. Yeah. So this also slowed us down but I think it's been fruitful. Will Abramson: basically the security review group or the security interest group sure what they call them exactly but they introduced a new requirement which is that every specification going through a working group should have or maybe even must Love and a threat model against it and that was so that these threat models which is a more formal and rigorous way of analyzing the threats associated with a specification and the kind of software that those specifications produce are documented. So currently specifications always require security considerations and privacy considerations. 00:30:00 Will Abramson: The idea from the security group is these threat models would drive the discovery of and documentation of the security considerations. And this was really to help the security review group do their reviews faster because they were they would have to do this work anyway just to understand the specification. they're maybe trying to get through. They're all volunteers and they're trying to review the security concerns associated with any number of specs, right? The idea is that by having this threat model in place, the group has done more of the thinking themselves and is easier for the security group to on board and kind of orient themselves in the specification that's being considered. Will Abramson: So again, this is new and are still under sort of process development, but I think as we'll see it has been very interesting for how it's helped people and I think if we'd have done this at the start right part of the problem is this kind of got dropped on us quite late in the process if we' done this threat model at the start particularly for did resolution when we adopted this spec from which was like it kind of looked polished. so we adopted it from the CCG, but many members of the group kind of had their mental model of how did the resolution worked, but hadn't taken the time to internalize the language in the spec and how the spec said it worked. I think the threat model is one way to kind of get that level of detail that is required to, have confidence the group has consensus over all the features in the spec. Will Abramson: Any questions before I just go Yeah. So did 1.1 and this was the easy one, we weren't doing too One thing which is a major change really although it shouldn't affect any implementations I don't expect is before in did 1.0 there was this concept of an abstract data model for a not a a DID document. we remove this. So, now the specification says defines a single representation and that representation is JSON, but it must also be compatible with JSONLDD processing and then additional representations are allowed. So xable. Will Abramson: would be allowed but they must support roundtrip conversion to the JSON representation defined by the spec and I think that I expected this to be more controversial than it was like everybody kind of agreed that this was a good thing to do and that the abstract data model was confusing things so this is not to preclude other representations but we're just saying we are picking a concrete representation that is our Will Abramson: base representation and other representations must be able to be converted to this representation. I think this helps interoperability right if everyone knows that they can convert to a common format the base format then they can operate on that use that base format to produce the format that they care about. yeah what else? Yeah. So did core in 1.0 Will Abramson: O did sort of handwave at resolution like we knew resolution was something that we wanted but we didn't define it right there was just a sort of abstract placeholder function names for dreferencing and did URL dreferencing and a section on did parameters that we thought would be useful for did URLs we felt belonged in did resolution And so we moved all that stuff out. So basically we said, this is fine, but this stuff is all placeholder. we kind of took control of it in the did resolution spec, which our feeling was this means it's like new content, even though it was initially defined in DID 1.0, it wasn't really defined enough to be normative. I think that's at least my understanding of what happened there. Will Abramson: And then the other thing that we did is in the VC work they define this thing called a controlled identifier which kind of a little bit confusing but basically it's like DID a decentized identifier but without the need for it to be a controlled identifier can just be any URL that resolves to a controlled identifier document which is effectively so the idea was that would extend controlled identifiers but because the VC working group didn't actually DID docu specification under their control they couldn't do that work. So we basically did that. 00:35:00 Will Abramson: So now we say did 1.1 depends on the controlled identifier spec and a bunch of definitions which were in both controlled identifier 1.0 and did 1.0 have now been just removed from DID1. 1.1 and they point to control identifier spec. So again, there's not too much here to worry about from the augmentation perspective, I don't think. we made a bunch of editorial updates to the spec. but yeah, these are all just sort of bit one thing that you maybe would be a bit confused about is this if you're reading if you're scanning the 1.0.1 Will Abramson: 1.1 specification you might feel it feels a bit light on some of the definitions and that's because we're just saying go look over here which is a bit unfortunate I think but that's what we got left with so it just means you have to read both specifications before you understand the different properties in a document yeah so this is the first CR. So I'm going to talk about the thing the features in the specification that are currently in our candidate recommendation. Will Abramson: So before I get to that, I'm going to talk about what did resolution is I've been talking about a bit. Maybe I should have defined this earlier, but the idea is this sort of operation or in here this is this function which we are defining in our spec. So it's an operation that you can execute by calling resolve. You pass in a decentralized identifier and a set of options and you get back some document metadata and document metadata is DID document such as maybe the version of the DI resolution metadata is metadata about the resolution operation that just got executed maybe the time that it got executed at or I don't know some properties about the resolver that actually executed the request like all that stuff. These are just JSON objects that you can put things in that are useful to your method or your resolver. Will Abramson: There are also some things that we standardize. yeah and resolution is defining a standard interface to execute a resolution request and receive a standardized response for any DID method. So the point is it doesn't matter what DID method this is I can still execute this request and as long as I have a resolver. So this is the caveat like you do need a resolver that understands the divid method that you are executing against but still that resolver should implement this standard interface and you should get back this standard response and independently of the did method you should be able to understand this response because you understand that Will Abramson: document that's specified in D call 1.0 and now 1.1 and then document metadata and resolution metadata is defined by this divided resolution spe And then this diagram is just maybe to help us a bit more. I'm going to come back to this diagram in a bit, but this was the outcome of the threat modeling work that Joe and Steven Mac are kind of heading up. And it's an attempt to kind of pull apart the different architectures of the system we're talking about. I don't want to get into too much. Will Abramson: I think that this is more important later on when I'm talking about the differences of opinion that come across but effect effectively you have some client device that encounters did URL right maybe it receives a verific a verifiable credential and there's a issuer did in there right some device gets something that is a dig URL and it has to execute resolution requests so it calls out to a resolver which maybe is in the 00:40:00 Will Abramson: device or it might be on the cloud somewhere or it might be somewhere else right in the resolver exposes this interface that we've just defined right resolve the resolution options return this metadata and then what the resolver is going to do is going to check does it understand that did method that it's resolving for and then it might read from BDR state so that might be reading from bitcoin it might just be like for did key you don't need a vdr But the DDR is kind of like the sort of deterministic generation of the div document from the encoding in the identifier itself. But this is just trying to pull apart some of the logical pieces of this architecture. But it doesn't have to be read the client could be all of these in a single piece. Will Abramson: But I think the key thing here for me at least is that there is this resolve operation that we are trying to standardize. And this resolve operation takes in ds and it spits out a standard response of did document metadata. yeah so just to kind of go over that again right we define this resolution algorithm. So that is this algorithm that all did resolvers must implement right. So these are the steps before and after executing a resolution operation defined by a specific So every method defines how to resolve DIDs of their DID type and this kind of wraps on around that operation to take transform standard inputs into the required thing inputs for the operation and return back standard outputs. And this also includes Will Abramson: defining some standard error states. Yeah, we define the standard interface which I talked about and we say that all inputs and outputs must be serializable to JSON. We define a HTTPS binding. So that is like how do you execute this interface over a HTTP request. and we define the data model for what is a resolution options to docu document metadata and resolution metadata and for some properties in these objects we define their property name and for example resolution options we define version ID and we have some information about what version ID is and how it should be used and this is a change actually so this was initially defined find in did core so did 1.0 Will Abramson: As the standard errors were just a string so invalid did we've now migrated those to use this RFC which was used throughout the VC work and now errors are a structure so an object that have a type and it's a specific type that defines that we're defining yeah and then this is a key point like resolving clients must trust the resolvers they use to execute Will Abramson: resolution requests this is sort of implied and a bit implicit. We're trying to make this a bit more clear and it's part this is the threat, right? If you're executing resolution requests over HTTPS to resolvers that you don't really know or trust, you are implicitly trusting the result that you get back, you have to use that result. you give them a did and some options and they give you a response. There's not easily ways for you as the client to verify that those responses match or are authoritative for the divid that you pass in. The way that you do that is you probably audit the resolving code and maybe you host the resolver yourself, right? Or you have a business relationship with the resolver that you trust. Will Abramson: But the point here is you kind of have to trust that. I mean there are some people exploring ways that in the metadata there might be information that you could use to do some client side verification of the response but not all good methods are going to support that. And at the end of the day this is important code that you are depending on and you should understand what that means for your system. So this is just flag we are actively seeking feedback from influencers of SID resolution. So if you implement this specification or you implement did resolution for your DID method but maybe you haven't really looked at this specification now is a good Will Abramson: time to do so. we would be happy to help you become conformant. We would love it if you can submit any did resolvers that you have to the resolution test suite. all you need is a live HTTP endpoint to execute a resolution request and a small set of test cases. So you need to provide an endpoint that we can hit using the HTTPS binding and a set of bids that we can hit it with that execute the exercise both successful resolution and a various failure states that are standard. So for example a divid method with a invalid did you know you should provide us an invalid for a divid method that your resolver understands. 00:45:00 Will Abramson: And the purpose of this is just so we can demonstrate to the W3C and the wider community this spec is being implemented and it is implementable, right? the spec defines a bunch of normative requirements on implementers. We want to demonstrate to the W3C that these requirements are being met by implementers and the spec is understandable and being implemented is useful. All right. So then we get to the next bit, right, which is what do we still have left to do? What other bit that we really hope we can get into CR before we're intending not to exit C to WC until we have this PC in. And this is all about D URL dreerencing. Will Abramson: So did URL dreferencing defines how resources can be referenced relative to a DID and retrieved using DID U urls. So whereas a DID resolves DID document and a bunch of stuff URL can be referenced to any number of different types of resources. so yeah a did URL which is important to note but also it can have all of these optional extra parts. So it can have a path it can have some query components and it can have a fragment and the referencing did URLs this bit of the specification we're trying to define is okay which bits do we standardize around how the referencing did URL handles these additional parts that you might see on a DID. Will Abramson: So dreferencing a did which DID URL just gets you to the DI document. There is dreferencing with a fragment which is going to get you in this case probably a verification method with the document. But really this fragment should just be interpreted as a object a sub bit of the document right so you have a document in this case I'm imagining there's a verification method in there that has an ID of key-1 and then there's a path. So the path has really been a lot of our discussion. How do we handle paths? that wasn't really discussed at all in the previous specifications and we wanted to support dreferencing. So you can identify resources DID document using a path that can then be retrieved in the dreferencing process. Will Abramson: And then also there's Query parameters might be things like version ID which is about the div document itself. What version of the divid document you want? But also might be other service query parameters like this one is service which is defined and this is saying okay I want a service back and I'm expecting that service to have this ID and here we've said it should be retrieving the resource defined by the service. and I think part of the challenge has been that we want to be open to extension and innovation, these query parameters, we're only standardizing a very small number of them, but query parameters are an extension point and anybody can use query parameters that have, custom behavior. and we want to be able to support that. Will Abramson: We also want these paths to be backwards compatible with the ways in which people have been using paths in bids within the wider community wherever possible. so it's turned out to be kind of complicated to get the right combination of these things and define the algorithm that handles that. one of the things that we have kind of agreement on is that we're going to refactor the current algorithm in the did resolution s So the did resolution spec was adopted from the CCG work item and we've tried to make it a little bit more modular. So there is a series of highle steps that you execute to do URL dreerencing. Will Abramson: So a DID URL dreerencing you take a DID URL and then you have to prepare to resolve the DID so you can get back the standard response that you then use to continue with your dreferencing process. So you take the D URL you extract the DID and DID parameters and then you construct the resolution options. So you're saying okay from this D URL DID I need some resolution options. You got to create those objects that you can then use to execute the resolution request to get back the standard response. and then you determine the retrieval strategy we've called it. So this is okay based on that standard response and did URL what resource am I retrieving the default resource will just be the DID document. But it's really step three that we've tried to understand the different combinations of things in the DJ URL and how they might affect the resource. 00:50:00 Will Abramson: resource that gets retrieved and then you actually retrieve the resource and then in this case we've use the resource and this has some contentiousness in our community but this is what we've gone for so far. and so using the resource might be, you've got a verification method, you're going to use it to verify a proof. Or maybe you have the referenced an image and you want to use that to render the image on a web page. maybe the dig URL is to a resource that you would render in a HTML page. I see that I'm getting close to time, but I'll keep going. So yeah, there are some points of agreement, which is great. this is a big one. I think there is strong consensus that clients executing did resolution requests must be able to conigure DID resolvers they use to resolve bids of specific DID methods. Will Abramson: The analogy that helped me understand this is I don't know if anyone here uses cryptocurrencies or MetaMask or any of these apps right so you download MetaMask and what MetaMask is doing is it's pointing to blockchain nodes Bitcoin Ethereum nodes or anything right like it is mostly just pointing to them using a URL they're hosted for you but Metask enables the configuration of those URLs so that you can point it at your own Bitcoin node or your own Ethereum node. And in the same way, clients should have that capability to configure the resolvers that they trust because it's their trust relationship that we're talking about here. So they must have some say over the resolvers that they use for specific div methods. And in particular, they must be able to say if they want to self-host that stuff, then they should be able to configure clients to use the resolvers that they choose. Will Abramson: The second one is like clients should not blindly promote all bid query parameters into resolution options. Right? There are some risks around doing this. Basically here is a query parameter. What you might do is extract the did and say okay this query parameter I'm just going to promote it into the resolution options object and execute the resolution request. Instead, we think all clients should understand the query parameters that they choose to promote in the context of their business situation, Not just blindly promote all of them because there are risks where some security risks associated with this. So, work in progress and the main bit of work is this PR. Will Abramson: This is a number of different PRs that Joe and Steven have been backwards and forwarding on, but if you want to get the latest context of where we're at, 344 is a great one to look at. We're particularly defi trying to define that we're trying to put the bones onto this algorithm and get consensus We kind of have consensus on the high level steps. What we don't have poor consensus yet exactly the contents of these individual steps. And in particular, we want to define this thing called a path handler, which is a standard way to define path handling objects, which would go in a DID document and then how you would handle paths that are in a DI URL. And then there's also talk of this path service type which we're going to define which would be kind of a standard way to do something like a did web vh who is so yeah active areas of debate. Will Abramson: So what are we struggling with or where are we not quite clear and this is just my sense right to do take this with a pinch of salt but I think a big part of the confusion that we are facing is how far do we standardize versus leave to implementers right where does the end for the specification and how much do we let implementers figure it out so there are whole different levels of this are we going to do we did with res resolution and define a HTTPS binding to a dreference function. are we going to define a dreference function with explicit inputs and outputs? Are we defining a specific software component that executes dreferencing and returns some result to some other entity? 00:55:00 Will Abramson: Yeah, are we just defining an algorithm that the client executes to form dreferencing? Yeah. And then also again on these boundaries does the dreferencing algorithm retrieve the resource at all or is it just providing URLs that some other client or some other process is actually then going to use that URL to fetch the resource. This to me is all about where do we draw the boundary on the system that we're trying to define. And it's not to say that have if we didn't want to standardize It doesn't mean HTTPS binding is not allowed. It's just that there is not in this current specification a standard way that this is how you should implement HTTPS. And then we've had a big discussion recently about architecture terminology. Will Abramson: And I think again this goes back to the threat modeling stuff which Joe and Steve Macau have led and it's led to them kind of having some clear in their head terms that maybe haven't been shared widely with the group and I see I'm not quite I made yeah I don't know how that's anyway I was saying basically the discussion is there a client of a dreferencer which then executes resolution or is it there's just a client of a resolver and the client is the thing that executes the referencing. Will Abramson: So we're hoping to get clarity on which of those things we prefer. And then finally, there's been some security concerns raised with relative did parameter which we are not sure how we want to handle because some people depend on relative ref and it does have some useful capabilities that we don't seem to be able to replicate in other approaches. But there is a lot of good arguments that maybe relative ref should be removed pr Okay, there's 3 minutes left. Sorry that was a bit too long. hopefully that was useful. Do anyone have any last comments, thoughts, reflections, questions? Otto Mora: just to say that it was a great summary will really well put together really detailed. I know that this may be confusing to some of the folks here but it's been a ton of work over the last few months. great to work with you as co-chair. and we really are looking for people with strong opinions on these areas of active debate. Otto Mora: I think it's one of the things that we've been lacking in the group is people that perhaps did method authors have strong opinions around this topic that would enrich the debate. I think it's some of the things that we would really benefit from having folks in the working group that can bring more nuance opinions around these areas of debate that resolution, how it should work and so on. Will Abramson: Yes, totally. Will Abramson: I definitely agree with that. Yeah. I mean, we can just end then. I guess that was great. I mean, we're about at time anyway. Hopefully that was useful. I know it was a big dump of a lot of stuff and maybe it doesn't all fit together. But, if you are a did method implement and you're doing resolve stuff, we would love to hear from you. We'd love for you to try and implement this spec. It would really help us. and then did URL dreferencing, right? Will Abramson: problem is you audit just doesn't have enough implementers who are really thinking about how they want to use the URLs that have strong opinions about how it should work. cool. Thanks to Yeah. Otto Mora: Thank you. Will Abramson: Have a great rest of your day. Meeting ended after 00:59:43 👋 *This editable transcript was computer generated and might contain errors. People can also change the text after it was created.*
Received on Tuesday, 25 August 2026 23:51:17 UTC