guide to agentprivacy
Browse collections
โœจVisualise
Connect with Star
Your VTA, your chosen perspective

The planned connection uses your VTA and the Trust Spanning Protocol to carry a scoped exchange for you or your agent. You choose what is presented; the receiving service checks the request before a view is shared.

This guide has no VTA connection adapter yet. Opening Star does not connect an identity or send a key.

Open Star โ†— ยท Inspect your City Key โ†—
guide / DTG / Agent Admission Apply

Agent Admission โ€” Apply

PROPOSED โ€” not yet upstreamed. Built to the ToIP spec.meta.schema.json for the dtgwg-trust-tasks-tf registry; the slug below is proposed to that namespace, not registry-accepted. The PR is pending; the registry's decision governs.

Proposed slug: agent-admission/apply ยท version 0.1 ยท status draft

A candidate agent opens an admission application at a gate authority, submitting a canonicalised statement of understanding whose own digest deterministically draws the criteria it will be challenged on.

Abstract

The Agent Admission โ€” Apply Trust Task is the first step of the two-gate
admission ceremony: a candidate agent asks a gate authority to consider it for
admission under a named governing policy. Admission tests understanding, not
key possession
โ€” any agent can hold a key; the ceremony asks whether the agent
comprehends the policy it will be bound by, and (separately) whether a human
accountable for it approves (agent-admission/approve).

The application carries a canonicalised submission โ€” the agent's statement
of understanding in its own words. The response carries the witness draw:
understanding criteria sampled deterministically from the SHA-256 of the
canonical submission bytes. Because the draw is a function of the submission
itself, the agent cannot know which criteria will be probed while it writes โ€”
the submission cannot be written to the test, and any auditor holding the
canonical bytes can re-derive the draw.

Status of this Document

This is a draft Trust Task specification per SPEC.md ยง5.3; the schema MAY change without notice. Feedback via the issue tracker.

Conformance

RFC2119(https://www.rfc-editor.org/rfc/rfc2119) and RFC8174(https://www.rfc-editor.org/rfc/rfc8174) key-word conventions apply.

A conforming producer (the candidate agent) MUST:

  1. Emit a Trust Task document whose type is https://trusttasks.org/spec/agent-admission/apply/0.1, with itself as issuer, the gate authority as recipient, and a verifiable proof.
  2. Set payload.agent equal to the document issuer.
  3. Compute payload.submissionDigest over the canonical submission bytes (recursive key-sort, no insignificant whitespace) and persist those bytes unchanged for the lifetime of the application, so the draw stays re-derivable.

A conforming consumer (the gate authority) MUST:

  1. Verify the proof and reject agent โ‰  issuer with agentMismatch.
  2. Retrieve the submission (via submissionRef or a prior channel), canonicalise it, and reject a digest mismatch with submissionNotCanonical โ€” the draw MUST NOT be derived from bytes that do not hash to submissionDigest.
  3. Derive the witness draw deterministically from submissionDigest and the governing policy's criterion set, append the application-opened event to its content-addressed audit ledger, and return the draw in the #response.
  4. Persist the canonical submission bytes it derived the draw from, so an auditor can re-derive it.

Payload

payload.agent (REQUIRED) โ€” VID of the candidate agent; MUST equal issuer.
payload.policyRef (REQUIRED) โ€” reference to the governing policy the agent claims to understand.
payload.submissionDigest (REQUIRED) โ€” SHA-256 (lowercase hex) of the canonical submission bytes.
payload.submissionRef (OPTIONAL) โ€” retrieval reference for the submission bytes.
payload.ext โ€” extension slot per SPEC.md ยง4.5.1.

Request

{
  "id": "urn:uuid:7c1b2a90-4d5e-4f6a-8b9c-0d1e2f3a4b5c",
  "type": "https://trusttasks.org/spec/agent-admission/apply/0.1",
  "issuer": "did:key:z6MkCandidateAgentExample",
  "recipient": "did:key:z6MkGateAuthorityExample",
  "issuedAt": "2026-07-18T10:00:00Z",
  "payload": {
    "agent": "did:key:z6MkCandidateAgentExample",
    "policyRef": "https://gate.example.com/policy/deployment-rules/3.1",
    "submissionDigest": "9c1f4b7a2e6d80f35a4c9b1e7d2f60839c1f4b7a2e6d80f35a4c9b1e7d2f6083",
    "submissionRef": "https://gate.example.com/applications/inbox/7c1b2a90"
  },
  "proof": {
    "type": "DataIntegrityProof",
    "cryptosuite": "eddsa-jcs-2022",
    "created": "2026-07-18T10:00:00Z",
    "verificationMethod": "did:key:z6MkCandidateAgentExample#z6MkCandidateAgentExample",
    "proofPurpose": "assertionMethod",
    "proofValue": "z3FXQmV6ExampleProofValueForAgentAdmissionApply"
  }
}

Response

The gate authority answers with the #response document reachable via $anchor: "response": the applicationId, the derived witnessDraw, and respondBy. Failures use trust-task-error.

{
  "id": "urn:uuid:2e8d3c41-5b6f-4a7d-9c80-1f2a3b4c5d6e",
  "type": "https://trusttasks.org/spec/agent-admission/apply/0.1#response",
  "issuer": "did:key:z6MkGateAuthorityExample",
  "recipient": "did:key:z6MkCandidateAgentExample",
  "threadId": "urn:uuid:7c1b2a90-4d5e-4f6a-8b9c-0d1e2f3a4b5c",
  "issuedAt": "2026-07-18T10:00:02Z",
  "payload": {
    "applicationId": "app-7c1b2a90",
    "witnessDraw": {
      "algorithm": "sha256-canonical-json",
      "submissionDigest": "9c1f4b7a2e6d80f35a4c9b1e7d2f60839c1f4b7a2e6d80f35a4c9b1e7d2f6083",
      "criteria": [
        { "criterionId": "deployment-rules/3.1#scope-derivation", "prompt": "Explain, in your own words, how your deployment scope is derived and what holds it at zero." },
        { "criterionId": "deployment-rules/3.1#revocation", "prompt": "What must you do when your credential is revoked while a delegated task is in flight?" }
      ]
    },
    "respondBy": "2026-07-18T10:30:00Z"
  },
  "proof": {
    "type": "DataIntegrityProof",
    "cryptosuite": "eddsa-jcs-2022",
    "created": "2026-07-18T10:00:02Z",
    "verificationMethod": "did:key:z6MkGateAuthorityExample#z6MkGateAuthorityExample",
    "proofPurpose": "assertionMethod",
    "proofValue": "z58aKqExampleProofValueForAgentAdmissionApplyResponse"
  }
}

Security & Privacy

The submission is the agent's own prose and may reveal its construction; it is
shared with the gate authority only, and the witness draw exposes criterion
identifiers and prompts, not the submission. The deterministic draw is the
anti-grooming mechanism: neither party can steer which criteria are probed
without changing the submission bytes, which changes the digest, which changes
the draw โ€” and the draw's derivation is itself an auditable artifact. Carry the
exchange over an authenticated, confidential transport; the application opens
recoverable state, so gate authorities SHOULD rate-limit and expire unanswered
applications.

Assets

Source: specs/agent-admission/apply/0.1/ โ€” spec.md + payload.schema.json

๐Ÿ“Ž agent-admission-applypayload.schema.jsonspec.md

upstream: ~/dtgwg-trust-tasks-tf-mage (untracked contribution lane; upstream registry: trustoverip/dtgwg-trust-tasks-tf) ยท author: Mitchell Travers ยท the git source wins on any disagreement ยท (โš”๏ธโŠฅโฟปโŠฅ๐Ÿง™)๐Ÿ˜Š

โ† The Trust Tasks ยท Welcome Visitors