|
1 | 1 | # did:trail Method Specification |
2 | 2 |
|
3 | | -**Version:** 1.1.0-draft |
| 3 | +**Version:** 1.2.0-draft |
4 | 4 | **Status:** Draft |
5 | 5 | **Authors:** Christian Hommrich (TRAIL Protocol Initiative) |
6 | 6 | **Contact:** christian.hommrich@gmail.com |
@@ -53,6 +53,7 @@ This document is a **Draft** specification submitted for registration in the [W3 |
53 | 53 | - 7.2 [Trust Tiers](#72-trust-tiers) |
54 | 54 | - 7.3 [Trust Score](#73-trust-score) |
55 | 55 | - 7.4 [EU AI Act Alignment](#74-eu-ai-act-alignment) |
| 56 | + - 7.5 [Platform Identity Binding (Managed Agent Support)](#75-platform-identity-binding-managed-agent-support) |
56 | 57 | 8. [Security Considerations](#8-security-considerations) |
57 | 58 | - 8.1 [Key Security](#81-key-security) |
58 | 59 | - 8.2 [Crypto Agility](#82-crypto-agility) |
@@ -234,14 +235,20 @@ did:trail:org:acme-corp-eu-a7f3b2c1e9d04f5a |
234 | 235 | did:trail:org:deutschebank-ai-desk-e2f4a6b8 |
235 | 236 | ``` |
236 | 237 |
|
237 | | -#### `agent` — AI Agent Identity |
238 | | -Identifies a specific AI agent or AI-powered service instance operated by an organization. MUST be associated with a parent `org` DID. |
| 238 | +#### `agent` — AI Agent Deployment Identity |
| 239 | +Identifies an AI agent **deployment** operated by an organization. A deployment is a named, versioned configuration of an AI system — distinct from any individual running instance. MUST be associated with a parent `org` DID via the `trail:parentOrganization` property. |
239 | 240 |
|
240 | 241 | ``` |
241 | 242 | did:trail:agent:acme-corp-eu-rfq-assistant-v1-d4e5f6a7b8c3 |
242 | 243 | did:trail:agent:db-contract-analysis-prod-001-c8d9e0f1a2b4 |
243 | 244 | ``` |
244 | 245 |
|
| 246 | +**Deployment vs. Instance:** The `agent` DID identifies the *deployment configuration*, not a running process. This distinction is critical for platform-hosted agents (e.g., Anthropic Managed Agents, Azure AI, Google Vertex AI) that are dynamically provisioned per session. A single `did:trail:agent` DID covers all instances spawned from one deployment configuration, across all sessions, for the active lifetime of that deployment. This maps to the "Deployment vs. Pod" distinction in container orchestration. |
| 247 | + |
| 248 | +**Registration authority:** The `did:trail:agent` DID is created and registered by the **deploying organization** (which MUST hold a `did:trail:org` DID), not by the agent itself. Agents operating on third-party platforms (managed agents) cannot directly interact with the TRAIL Registry. The deployer acts as the accountable principal for all agent instances. |
| 249 | + |
| 250 | +**Lifecycle:** The `did:trail:agent` DID remains active as long as the deployment is active. Deactivation of the deployment DID (§6.4) implicitly revokes all active sessions of that deployment. Individual session termination does not require registry interaction. |
| 251 | + |
245 | 252 | #### `self` — Local Verification Mode |
246 | 253 | DIDs are cryptographically self-contained and verifiable without external registry lookup. Represents the foundational trust tier of the TRAIL ecosystem, providing cryptographic identity verification without organizational attestation. |
247 | 254 |
|
@@ -1018,6 +1025,99 @@ TRAIL provides technical infrastructure that organizations can use to support th |
1018 | 1025 | | **Art. 49** (Registration) | Providers and deployers must register high-risk AI systems in the EU database | TRAIL Trust Registry can serve as a complementary technical registry alongside the official EU database | TRAIL is NOT the official EU AI database. Registration in TRAIL does not satisfy Art. 49. Organizations MUST register in the official EU database independently. | |
1019 | 1026 | | **Art. 52** (Transparency for Certain AI Systems) | Persons interacting with AI must be informed they are interacting with AI | TRAIL DID can be presented in real-time to verify AI system identity; TRAIL Badge provides visual indicator | TRAIL provides the verification mechanism. Organizations must ensure actual notification is delivered to affected persons in a clear and timely manner. Implementation of UI/UX notification is the organization's responsibility. | |
1020 | 1027 |
|
| 1028 | +### 7.5 Platform Identity Binding (Managed Agent Support) |
| 1029 | + |
| 1030 | +Platform-hosted AI agents (e.g., Anthropic Managed Agents, Azure AI, Google Vertex AI) are dynamically provisioned per session and cannot directly interact with the TRAIL Registry. This section defines the `PlatformIdentityBinding` Verifiable Credential type, which enables deploying organizations to establish a cryptographically verifiable link between a platform's internal deployment identifier and a registered `did:trail:agent` DID — without requiring platform cooperation. |
| 1031 | + |
| 1032 | +#### 7.5.1 Motivation |
| 1033 | + |
| 1034 | +When an enterprise deploys an AI agent on a third-party platform, two identity namespaces exist: |
| 1035 | + |
| 1036 | +1. **Platform namespace** — An internal deployment identifier assigned by the platform operator (e.g., `managed-agent-deployment-abc`). This identifier is platform-specific and not externally resolvable without platform cooperation. |
| 1037 | +2. **TRAIL namespace** — The `did:trail:agent` DID registered by the deploying organization, externally resolvable and cryptographically verifiable. |
| 1038 | + |
| 1039 | +An external auditor (e.g., a BaFin compliance officer verifying EU AI Act Art. 12 conformance) needs to establish that a specific platform deployment corresponds to the organization's registered identity — without contacting the platform operator. `PlatformIdentityBinding` provides this link. |
| 1040 | + |
| 1041 | +#### 7.5.2 PlatformIdentityBinding Credential |
| 1042 | + |
| 1043 | +The `PlatformIdentityBinding` credential is issued by the **deploying organization** (not by the platform). The deployer's `did:trail:org` DID MUST be the credential issuer. |
| 1044 | + |
| 1045 | +**Normative definition:** |
| 1046 | + |
| 1047 | +```json |
| 1048 | +{ |
| 1049 | + "@context": [ |
| 1050 | + "https://www.w3.org/2018/credentials/v1", |
| 1051 | + "https://trailprotocol.org/ns/credentials/v1" |
| 1052 | + ], |
| 1053 | + "type": ["VerifiableCredential", "PlatformIdentityBinding"], |
| 1054 | + "issuer": "did:trail:org:acme-corp-eu-a7f3b2c1e9d04f5a", |
| 1055 | + "validFrom": "2026-04-01T00:00:00Z", |
| 1056 | + "validUntil": "2027-04-01T00:00:00Z", |
| 1057 | + "credentialSubject": { |
| 1058 | + "id": "did:trail:agent:acme-sales-agent-v2-de-3f8c", |
| 1059 | + "platformIdentity": { |
| 1060 | + "platform": "anthropic", |
| 1061 | + "deploymentId": "managed-agent-deployment-abc", |
| 1062 | + "attestedBy": "did:trail:org:acme-corp-eu-a7f3b2c1e9d04f5a" |
| 1063 | + } |
| 1064 | + }, |
| 1065 | + "credentialStatus": { |
| 1066 | + "id": "https://registry.trailprotocol.org/1.0/status/2026-04#17", |
| 1067 | + "type": "StatusList2021Entry", |
| 1068 | + "statusPurpose": "revocation", |
| 1069 | + "statusListIndex": "17", |
| 1070 | + "statusListCredential": "https://registry.trailprotocol.org/1.0/status/2026-04" |
| 1071 | + } |
| 1072 | +} |
| 1073 | +``` |
| 1074 | + |
| 1075 | +**Field definitions:** |
| 1076 | + |
| 1077 | +| Field | Requirement | Description | |
| 1078 | +|-------|-------------|-------------| |
| 1079 | +| `issuer` | MUST | The `did:trail:org` DID of the deploying organization. MUST match `credentialSubject.platformIdentity.attestedBy`. | |
| 1080 | +| `credentialSubject.id` | MUST | The `did:trail:agent` DID of the deployment. | |
| 1081 | +| `platformIdentity.platform` | MUST | Lowercase identifier of the platform operator. Registered values: `anthropic`, `azure`, `google`, `aws`, `other`. | |
| 1082 | +| `platformIdentity.deploymentId` | MUST | The platform's internal deployment identifier, as assigned by the platform operator. | |
| 1083 | +| `platformIdentity.attestedBy` | MUST | The `did:trail:org` DID of the attesting organization. MUST equal `issuer`. | |
| 1084 | +| `validFrom` / `validUntil` | MUST | Validity period of the binding. SHOULD not exceed 12 months. | |
| 1085 | +| `credentialStatus` | MUST | Revocation status entry conforming to W3C VC Status List 2021. | |
| 1086 | + |
| 1087 | +#### 7.5.3 Verification Requirements |
| 1088 | + |
| 1089 | +A verifier receiving a `PlatformIdentityBinding` credential MUST: |
| 1090 | + |
| 1091 | +1. Resolve `credentialSubject.id` via the TRAIL Registry and verify the `did:trail:agent` DID is active. |
| 1092 | +2. Resolve `issuer` via the TRAIL Registry and verify the `did:trail:org` DID is active and at Tier 1 or above. |
| 1093 | +3. Verify that `issuer` equals `credentialSubject.platformIdentity.attestedBy`. |
| 1094 | +4. Verify the credential signature against the issuer's public key. |
| 1095 | +5. Verify the credential has not been revoked via `credentialStatus`. |
| 1096 | +6. Verify `validFrom` and `validUntil` bounds against the current timestamp. |
| 1097 | + |
| 1098 | +A verifier MUST NOT require platform operator cooperation to complete verification. The binding is self-contained and externally auditable. |
| 1099 | + |
| 1100 | +#### 7.5.4 Accountability Model |
| 1101 | + |
| 1102 | +The `PlatformIdentityBinding` design preserves the Tier 1 accountability principle: the deploying organization is the accountable principal, not the platform operator. The deployer: |
| 1103 | + |
| 1104 | +- Creates and maintains the `did:trail:agent` DID |
| 1105 | +- Issues and signs the `PlatformIdentityBinding` credential |
| 1106 | +- Is responsible for revoking the credential if the deployment is decommissioned or compromised |
| 1107 | + |
| 1108 | +This design is platform-agnostic: the same pattern applies to Anthropic Managed Agents, Azure AI services, Google Vertex AI deployments, and future platforms without requiring platform-specific extensions to this specification. |
| 1109 | + |
| 1110 | +#### 7.5.5 EU AI Act Art. 12 Audit Trail |
| 1111 | + |
| 1112 | +For high-risk AI deployments subject to EU AI Act Article 12 (Record-Keeping), the `PlatformIdentityBinding` credential enables a cross-jurisdictional audit trail that: |
| 1113 | + |
| 1114 | +- Does not require platform cooperation to access |
| 1115 | +- Is cryptographically bound to the deploying organization's verified identity |
| 1116 | +- Is accessible to EU regulatory bodies without triggering CLOUD Act concerns |
| 1117 | +- Can be independently verified by any party holding the TRAIL Registry's public key |
| 1118 | + |
| 1119 | +Organizations claiming EU AI Act Art. 12 compliance via TRAIL SHOULD maintain `PlatformIdentityBinding` credentials for all managed agent deployments and ensure revocation occurs within the timeframes specified in §8.6. |
| 1120 | + |
1021 | 1121 | --- |
1022 | 1122 |
|
1023 | 1123 | ## 8. Security Considerations |
@@ -1655,6 +1755,18 @@ Note: The JCS output differs from the input in key ordering (`@context` sorts be |
1655 | 1755 |
|
1656 | 1756 | ## 15. Changelog |
1657 | 1757 |
|
| 1758 | +### v1.2.0-draft (2026-04-10) |
| 1759 | + |
| 1760 | +This release adds normative support for platform-hosted AI agent deployments (Managed Agents). It addresses the structural gap identified in v1.1.0-draft: the assumption that an agent has a persistent identity and can directly interact with the TRAIL Registry does not hold for agents dynamically provisioned per session by third-party platforms. |
| 1761 | + |
| 1762 | +| # | Change | Sections Affected | |
| 1763 | +|---|--------|-------------------| |
| 1764 | +| 1 | **Extended `agent` mode — Deployment vs. Instance distinction** — The `agent` identifier mode now explicitly represents a *deployment* (configuration), not a running instance. Added normative text on registration authority (deployer org), lifecycle semantics, and platform-hosted agent support. | §4.2 | |
| 1765 | +| 2 | **Added `PlatformIdentityBinding` VC type** — New credential type enabling deploying organizations to cryptographically link a platform's internal deployment ID to a `did:trail:agent` DID. Signed by deployer, not platform. No platform cooperation required for audit. Full normative definition including field requirements, verification algorithm, accountability model, and EU AI Act Art. 12 audit trail guidance. | §7.5 (new) | |
| 1766 | + |
| 1767 | +Community discussion: [GitHub Discussion #10](https://github.com/trailprotocol/trail-did-method/discussions/10) |
| 1768 | +Tracking issue: [Issue #9](https://github.com/trailprotocol/trail-did-method/issues/9) |
| 1769 | + |
1658 | 1770 | ### v1.1.0-draft (2026-03-04) |
1659 | 1771 |
|
1660 | 1772 | This release addresses 9 critical improvements identified during community review and internal audit of v1.0.0-draft. |
|
0 commit comments