This specification defines how did:wba, native
did:web, and did:webvh identities participate in
the DID-method-agnostic authentication protocol defined by
Agent Identity and HTTP Authentication.
Each Binding Profile defines method-specific resolution and validation rules
without redefining the underlying DID method.
DID methods differ in identifier syntax, resolution, update, deactivation, and trust properties. The Agent Identity protocol therefore separates its common HTTP authentication algorithm from the method-specific processing needed to obtain a validated DID Document.
This document does not redefine did:web or
did:webvh. It defines only the requirements that connect those
methods, and the separately specified did:wba method, to the
common Agent Identity protocol.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in all capitals.
An implementation claiming conformance to the AI Agent Protocol Web DID profile MUST support the following Binding Profiles:
did:wba Binding Profile;did:web Binding Profile;did:webvh Binding Profile.An implementation MAY support additional DID methods, but it MUST apply the specification of the method encoded in each DID and MUST define or identify a Binding Profile for any additional method.
The DID method name encoded in the DID is authoritative. A verifier MUST select the resolver and Binding Profile from that method name. It MUST NOT select a method from separate descriptive metadata and MUST NOT fall back to another method after a resolution or validation failure.
The following examples identify the three required method profiles:
did:wba:example.com:user:alice:e1_<fingerprint>
did:web:example.com:agents:alice
did:webvh:<SCID>:example.com:agents:alice
In the did:webvh example, <SCID> is the
self-certifying identifier defined by the did:webvh method.
After method-specific resolution succeeds, every Binding Profile MUST produce a DID Document and method metadata sufficient for the verifier to:
id matches the requested DID;keyid;authentication relationship;A verifier MUST NOT authenticate an agent from an unvalidated document or from key material that merely happens to match the request signature.
did:wba Binding Profile
A did:wba identity MUST be created, resolved, updated, and
deactivated according to the
did:wba DID Method Specification.
https://<domain>/.well-known/did.json.
did:wba method specification.
did:wba profile.
e1_ Path Profile
For a path-type did:wba using the default e1_
profile, the resolver MUST validate the path-to-key binding and DID
Document proof defined by the did:wba method specification.
At a minimum, the resolver MUST:
proof;DataIntegrityProof using eddsa-jcs-2022;proof.verificationMethod;e1_ fingerprint segment.
A client using this profile SHOULD sign the initial HTTP authentication
request with the binding key. The signing key MUST be authorized by the
DID Document's authentication relationship.
A naked-domain did:wba does not contain an e1_
fingerprint. The resolver MUST NOT apply the path-binding rule to this DID
form. Authentication uses a verification method authorized by the resolved
DID Document's authentication relationship.
did:web Binding Profile
Native did:web identities participate in Agent Identity
without migration to did:wba. Creation, resolution, update,
and deactivation remain governed by the
did:web Method Specification
.
A verifier MUST:
did:web rules;id exactly matches the requested DID;keyid;authentication;
TLS service identity verification MUST use the DNS identifier in the
certificate's subjectAltName extension. Implementations MUST
NOT rely on Common Name as the service identity.
did:wba RequirementsA verifier MUST NOT require a native did:web identity to satisfy:
did:wba path-binding public-key fingerprint;did:wba path-profile semantics;did:wba rotation semantics;did:wba-specific top-level DID Document proof.
If the DID Document contains a standard proof, an implementation MAY
verify that proof according to its declared cryptographic suite and local
policy. Such a proof is not a prerequisite for native did:web
resolution unless required by a separately selected profile.
The identity-binding semantics of did:web are supplied by
successful native did:web resolution and DID Document
verification, not by a did:wba path fingerprint.
did:webvh Binding Profile
A did:webvh implementation MUST process the DID log according
to the supported version of the
did:webvh v1.0 Specification
and MUST derive the applicable DID Document only from a valid history.
At a minimum, the resolver MUST validate:
The verifier MUST fail resolution when the history is incomplete, inconsistent, uses an unsupported method version, or fails a required proof or hash-chain check. It MUST NOT authenticate an agent using an unvalidated current-state document that bypasses the DID history.
The verification method identified by keyid MUST exist in the
DID Document derived for the applicable version and MUST be authorized by
its authentication relationship.
The did:wba e1_ path-binding and DID Document
proof rules MUST NOT be applied to did:webvh. The SCID,
update authorization, version, witness, portability, and deactivation
semantics are governed by the supported did:webvh method
version.
After successful method-specific resolution, a supported DID method may be used by other Agent Protocol capabilities according to the contents of the validated DID Document and the requirements of the applicable upper-layer specification.
A DID Document MAY contain service entries for agent description, naming, messaging, or other application functions. This specification does not require support for every service type. An implementation MAY ignore an unsupported service type, preserve it as metadata, or process it only when it implements the specification that defines that service type.
AgentDescription, ANPHandleService, and
ANPMessageService are examples. Their endpoint formats and
processing semantics are not defined by this document.
A supported DID may participate in an upper-layer end-to-end encryption
protocol when its validated DID Document contains a suitable verification
method in the keyAgreement relationship and the upper-layer
protocol supports the method's algorithm and key representation.
This document does not define the encryption, key schedule, message protection, or group-state procedures of an E2EE protocol.
| DID method | Required method-specific behavior | Requirements that MUST NOT be inherited |
|---|---|---|
did:wba |
Apply the did:wba method rules; for e1_, validate the path-to-key binding and proof. |
None from another method. |
did:web |
Apply native Web resolution and DID Document verification. | No did:wba fingerprint, proof, or rotation requirement; no did:webvh history requirement. |
did:webvh |
Validate the SCID and the applicable authorized, hash-linked DID history. | No did:wba path-binding or document-proof requirement. |
An application MUST NOT reject a valid did:web or
did:webvh identity solely because it lacks
did:wba-specific path bindings or proofs.
did:webvh resolver MUST validate the history required by the
supported method version and MUST NOT skip invalid intermediate updates.
did:wba resolver MUST fail an e1_ resolution
when the path binding or required DID Document proof fails.
Web-based DID resolution can reveal the identifiers a verifier is resolving and can enable correlation across interactions. Implementations SHOULD use caching, privacy-preserving DNS resolution, scoped identifiers, and data minimization as appropriate to their deployment.
A method's persistence and update model can affect linkability. Applications MUST NOT assume that all supported DID methods have equivalent privacy, rotation, or recovery properties.