Service Type Definitions for W3C DID Documents
This document defines four DID Document service types for AI agent identity, tool discovery, task communication, and delegation verification. These service types enable autonomous agents to advertise their capabilities within W3C Decentralized Identifier (DID) Documents, supporting interoperable discovery and communication across the Model Context Protocol (MCP) and Agent-to-Agent (A2A) protocol ecosystems.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Implementations that use these service types MUST include the IDProva JSON-LD context
(https://idprova.dev/ns/v1) in the @context array of any
DID Document containing IDProva service entries.
All terms defined in this specification are scoped under the namespace URI
https://idprova.dev/ns/v1. The context document is available at that URI
and MUST be included in the @context of DID Documents using these service types.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://idprova.dev/ns/v1"
]
}
https://idprova.dev/ns/v1#MCPToolsMCPToolsA service endpoint that exposes Model Context Protocol (MCP) tool discovery and execution capabilities for AI agents. Relying parties can query this endpoint to discover available tools, retrieve tool schemas, and invoke tool execution through the MCP protocol.
Requirements:
serviceEndpoint MUST resolve to an MCP-compliant server endpoint.tools/list and tools/call methods.Example:
{
"id": "did:idprova:example.com:kai-lead-agent#mcp-tools",
"type": "MCPTools",
"serviceEndpoint": "https://agent.example.com/mcp/sse"
}
https://idprova.dev/ns/v1#A2ATaskA2ATaskA service endpoint for Agent-to-Agent (A2A) protocol task communication. Enables DID-identified agents to discover and communicate with other agents for task delegation, status reporting, and result delivery.
Requirements:
serviceEndpoint MUST resolve to a valid A2A Agent Card or task endpoint.tasks/send and tasks/get methods.Example:
{
"id": "did:idprova:example.com:kai-lead-agent#a2a-tasks",
"type": "A2ATask",
"serviceEndpoint": "https://agent.example.com/.well-known/agent.json"
}
https://idprova.dev/ns/v1#AgentDiscoveryAgentDiscovery
A service endpoint for AI agent identity discovery, typically served at a
.well-known path. Returns structured metadata about the agent including its
capabilities, supported protocols, delegation status, and trust attestation references.
Requirements:
serviceEndpoint MUST return a JSON document containing agent metadata.Example:
{
"id": "did:web:example.com:agents:payment-bot#discovery",
"type": "AgentDiscovery",
"serviceEndpoint": "https://example.com/.well-known/agent-identity.json"
}
https://idprova.dev/ns/v1#DelegationVerifyDelegationVerifyA service endpoint where relying parties can validate Delegation Attestation Tokens (DATs) or other scoped capability tokens. Returns verification status including chain validity, scope constraints, expiry status, and root controller identity.
Requirements:
serviceEndpoint MUST accept a DAT (JWS compact serialisation) and return a verification result.Example:
{
"id": "did:idprova:example.com:kai-lead-agent#delegation-verify",
"type": "DelegationVerify",
"serviceEndpoint": "https://agent.example.com/verify/delegation"
}
DelegationVerify endpoint MUST NOT cache verification results beyond the shortest token lifetime in the chain.AgentDiscovery endpoint reveals metadata about agent capabilities. Operators SHOULD consider what information to expose publicly vs. requiring authentication.| Reference | URL |
|---|---|
| W3C DID Core v1.1 | https://www.w3.org/TR/did-1.1/ |
| Model Context Protocol | https://modelcontextprotocol.io/ |
| Agent-to-Agent Protocol | https://google.github.io/A2A/ |
| IDProva Implementation | https://github.com/techblaze-au/idprova |
| JSON-LD Context | https://idprova.dev/ns/v1 |
| RFC 2119 (Key Words) | https://www.rfc-editor.org/rfc/rfc2119 |