While intended to discover digital identity services, Yadis is not restricted to those. Other services can easily be included.
A Yadis ID can either be a traditional URL or a newer XRI i-name, where the i-name must resolve to a URL. The so-called Yadis URL either equals the Yadis ID (if this is a URL) or the resolved URL of the XRI i-name.
Furthermore, Yadis specifies how to use the Yadis URL to retrieve a service descriptor called Yadis Resource Descriptor. This descriptor follows the XRDS format and connects several services, like authentication or authorization to the Yadis URL. Each service description can have further parameters.
Yadis is really a discovery protocol was spearheaded by Brad Fitzpatrick, David Recordon (then both at Six Apart) and Johannes Ernst and Joaquin Miller (then both at NetMesh), in order to create an extensible foundation for user-centric, decentralized, web identity.
Over a period of several months, with the involvement of several dozen other individuals, the Yadis 1.0 specification was created and widely implemented on the web.
The Yadis specification provides:
- A general purpose identifier for persons and any other entities, which can be used in a variety of services.
- A syntax for a resource description document identifying services available using that identifier and an interpretation of the elements of that document.
- A protocol for obtaining that resource description document, given that identifier.