SDO: Web 7.0 DID Interface Definition Language (DIDIDL) 0.22 — Draft Specification

Create your own magic with Web 7.0™ / TDW AgenticOS™. Imagine the possibilities.

Copyright © 2026 Michael Herman (Bindloss, Alberta, Canada) – Creative Commons Attribution-ShareAlike 4.0 International Public License
Web 7.0, TDW AgenticOS™ and Hyperonomy are trademarks of the Web 7.0 Foundation. All Rights Reserved


Status: Draft
Version: 1.0
License: Apache 2.0
Editors: Michael Herman, Chief Digital Officer, Web 7.0 Foundation
SDO: Web 7.0 Foundation, Bindloss, Alberta, Canada


1. Abstract

DIDIDL defines a transport-neutral, message-type–centric capability description format for agents using using DIDComm.

DIDIDL enables agents to:

  • Publish typed tasks grouped under process capabilities
  • Describe request, response, and error schemas
  • Support machine-readable discovery
  • Enable client generation and validation

1.1 Key Concepts

  • APC Process Classification Framework (PCF)

  • Process Capability DID
    • did7://{authority}/{process-name}_{sedashver}:{capability-name}
  • Process Capability Task DID
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}/{task-name}
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}_{semdashver}/{task-name}
  • Process Capability Discovery
    • did7://{authority}/{process-name}/query-capabilities
    • did7://{authority}/{process-name}/disclose-capabilities
    • did7://{authority}/{process-name}_{semdashver}/query-capabilities
    • did7://{authority}/{process-name}_{semdashver}/disclose-capabilities
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}/query-capability
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}/disclose-capability
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}_{semdashver}/query-capability
    • did7://{authority}/{process-name}_{semdashver}:{capability-name}_{semdashver}/disclose-capability

2. Terminology

TermDefinition
AgentA DIDComm-enabled entity
Process Capability (Capability)A grouping of tasks representing a business or functional process
Process Capability Task (Task)A DIDComm message type representing a callable function
SchemaA JSON Schema definition conforming to JSON Schema
Process DIDIDL Document (DIDIDL Document)JSON object conforming to this specification

Normative keywords MUST, SHOULD, MAY follow RFC 2119.


3. Canonical DID Patterns

Process Capability Task DID PatternPatternExample
Process Capability DIDdid7://{authority}/{process-name}_{semdashver}/{capability-name}_{semdashver}did7://web7/user-onboarding_1-0:enrollment_1-0
Process Capability Task DIDdid7://{authority}/{process-name}_{semdashver}/{capability-name}_{semdashver}/{task-name}did7://web7/user-onboarding_1-0:enrollment_1-0/verify-email
Query/Disclose DID Messsage TypesPatternExample
Discovery Query Process Capabilitiesdid7://{authority}/{process-name}_{semdashver}/query-capabilitiesdid7://web7/user-onboarding_1-0/query-capabilities
Discovery Disclose Process Capabilitiesdid7://{authority}/{process-name}_{semdashver}/disclose-capabilitiesdid7://web7/user-onboarding_1-0/disclose-capabilities
Discovery Query Process Capability Tasksdid7://{authority}/{process-name}_{semdashver}/{capability-name}_{semdashver}/query-capabilitydid7://web7/user-onboarding_1-0/query-capability
Discovery Disclose Process Capability Tasksdid7://{authority}/{process-name}_{semdashver}/{capability-name}_{semdashver}/disclose-capabilitydid7://web7/user-onboarding_1-0:enrollment_1-0/disclose-capability

Web 7.0 DID Identifier/Message Type Syntax-Semantics Comparions

Web 7.0 Neuromorphic Agent Protocol Long-Term Memory (LTM) Model


4. DIDIDL Document Structure

4a. Process Capabilities

{
"dididl": "1.0",
"agent": "did7://agents.org/example:agent123",
"capabilities": [...],
"schemas": {...}
}

All tasks MUST be nested under exactly one process capability.


4b. Process Capability Tasks

{
"id": "did7://web7/user-onboarding_1-0:enrollment",
"name": "User Onboarding-Enrollment",
"version": "1.0",
"description": "Handles user lifecycle initiation",
"tasks": [
{
"type": "did7://web7/user-onboarding_1-0:enrollment_1-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto"
},
{
"type": "did7://web7/user-onboarding_1-0:enrollment_2-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto"
},
{
"type": "did7://web7/user-onboarding_1-0:enrollment_1-0/verify-email",
"request": "#/schemas/VerifyEmailRequest",
"response": "#/schemas/VerifyEmailResponse"
}
]
}

Rules:

  • Process Capability DIDs MUST follow the pattern:
    • did7://{authority}/{process-name}_{semdashver}/{capability-name}
    • did7://{authority}/:{process-name}_{semdashver}/{capability-name}_{semdashver}
  • Task DIDs are capability-scoped:
    • did7://{authority}/:{process-name}_{semdashver}/{capability-name}/{task-name}
    • did7://{authority}/:{process-name}_{semdashver}/{capability-name}_{semdashver}/{task-name}
  • Each task MUST belong to exactly one capability

4c. Process Capability Task

{
"type": "did7://web7/user-onboarding_1-0:enrollment_1-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto",
"errors": ["#/schemas/ValidationError"]
}

Rules:

  • Task DIDs MUST be unique within the agent
  • Versioning MUST be encoded in the DID
  • Request and response schemas MUST be referenced by JSON pointer

5. Discovery Protocol

5.1 Query Capabilities

Request

{
"type": "did7://web7/user-onboarding_1-0/query-capabilities"
}

Response

{
"type": "did7://web7/user-onboarding_1-0/disclose-capabilities",
"capabilities": [
{
"id": "did7://web7/user-onboarding_1-0:userverification",
"name": "User Verification",
"version": "1.0",
"description": "Handles user verification."
},
{
"id": "did7://web7/credential-issuance_1-0/credentialissuance",
"name": "Credential Issuance",
"version": "1.0"
"description": "Handles credential issuance."
}
]
}

5.2 Query a Specific Capability

Request

{
"type": "did7://web7/user-onboarding_1-0:userverification/query-capability"
}
{
"type": "did7://web7/user-onboarding_1-0:userverification_1-0/query-capability"
}

Response

{
"type": "did7://web7/user-onboarding_1-0:userverification/disclose-capability",
"capability": {
"id": "did7://web7/user-onboarding_1-0:userverification_1-0",
"name": "User Verification",
"version": "1.0",
"tasks": [
{
"type": "did7://web7/user-onboarding_1-0:userverification_1-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto"
},
{
"type": "did7://web7/user-onboarding_1-0:userverification_1-0/verify-email",
"request": "#/schemas/VerifyEmailRequest",
"response": "#/schemas/VerifyEmailResponse"
}
],
"schemas": {...}
}
}

6. Normative Requirements

  1. Each task MUST appear in exactly one process capability.
  2. Process Capability DIDs MUST be unique within the agent.
  3. Task DIDs are capability-scoped and MUST be unique.
  4. Union of all process capabilities MUST form a disjoint partition of tasks.
  5. Schemas included in capability disclosure MUST only include referenced schemas.
  6. DIDComm authentication MUST protect all DIDIDL exchanges.
  7. Version changes that introduce breaking schema modifications MUST increment the major version in the DID.

7. Example Complete DIDIDL Document

{
"dididl": "1.0",
"agent": "did7://agents.org/example:agent123",
"capabilities": [
{
"id": "did7://web7/user-onboarding_1-0:useronboarding",
"name": "User Onboarding",
"version": "1.0",
"tasks": [
{
"type": "did7://web7/user-onboarding_1-0:useronboarding_1-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto"
},
{
"type": "did7://web7/user-onboarding_1-0:useronboarding_2-0/create-user",
"request": "#/schemas/CreateUserRequest",
"response": "#/schemas/UserDto"
},
{
"type": "did7://web7/user-onboarding_1-0:useronboarding_1-0/verify-email",
"request": "#/schemas/VerifyEmailRequest",
"response": "#/schemas/VerifyEmailResponse"
}
]
}
],
"schemas": {
"CreateUserRequest": {
"$schema": "did7://json-schema.org/schemas:/draft/2020-12/schema",
"type": "object",
"properties": {
"email": { "type": "string" }
},
"required": ["email"]
},
"VerifyEmailRequest": {
"$schema": "did7://json-schema.org/schemas:/draft/2020-12/schema",
"type": "object",
"properties": {
"token": { "type": "string" }
},
"required": ["token"]
},
"VerifyEmailResponse": {
"$schema": "did7://json-schema.org/schemas:/draft/2020-12/schema",
"type": "object",
"properties": {
"success": { "type": "boolean" }
},
"required": ["success"]
},
"UserDto": {
"$schema": "did7://json-schema.org/schemas:/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "string" },
"email": { "type": "string" }
},
"required": ["id", "email"]
}
}
}

Appendix B – APQC Taxonomies

Process Categories and Individual Processes

Appendix C – PowerShell Cmdlet Naming Specifications

Appendix D – Web 7.0™ DID-based, Decentralized Library Operating System (DIDLibOS)

Leave a comment

Filed under Uncategorized

Leave a comment