Specification / Entity Kinds

12 Entity Kinds

Every participant in the agent ecosystem has a typed identity. Three kinds are roots that anchor accountability; the other nine carry cryptographic lineage back to them.

01hmrRoot entity

Human Root

A single human-root keyholder. The lineage terminus: every privileged chain in OAS terminates at a human root. That is cryptographic ancestry under verifier policy — not legal personhood or Sybil resistance by itself.

URI patterndid:oas:<ns>:hmr:<id>
Lineage

Root entity. Exempt from the lineage requirement.

02mhrRoot entity

Multi-Human Root

A threshold group of human-root keyholders (t-of-n) acting collectively as a lineage terminus. FROST threshold signatures keep the group key indistinguishable from a single signer.

URI patterndid:oas:<ns>:mhr:<id>
Lineage

Root entity. Exempt from the lineage requirement.

03enrRoot entity

Enterprise Root

A stable corporate identity governed by a rotating MHR, providing organizational continuity across governance transitions. Added as the twelfth kind in spec v1.1.0.

URI patterndid:oas:<ns>:enr:<id>
Lineage

Root entity. Verifiers additionally check its governing MHR.

04ao

Autonomous Organization

A group of agents, tools, and workflows operating as a coherent unit, with its own identity distinct from any single member.

URI patterndid:oas:<ns>:ao:<id>
Lineage

Lineage required. Chain terminates at a human root.

05agent

Agent

An autonomous software entity capable of independent decision-making and action. The primary operational kind: it performs tasks, invokes tools, and collaborates with other agents.

URI patterndid:oas:<ns>:agent:<id>
Lineage

Lineage required. AgentLineageProof2025 at every link.

06agent:instance

Agent Instance

A specific running instance of an agent, identified by UUID. Separates the long-lived agent definition from each concurrent execution and its session keys.

URI patterndid:oas:<ns>:agent:instance:<uuid>
Lineage

Lineage required. Inherits its chain through the parent agent.

07tool

Tool

A capability that agents invoke to interact with external systems or perform computations. Typed identity makes every invocation attributable.

URI patterndid:oas:<ns>:tool:<id>
Lineage

Lineage required. Chain terminates at a human root.

08skill

Skill

A composable unit of agent behavior — a reusable capability package that can be attached to agents and governed independently.

URI patterndid:oas:<ns>:skill:<id>
Lineage

Lineage required. Chain terminates at a human root.

09workflow

Workflow

A defined process involving one or more agents executing a sequence of steps. Gives multi-agent orchestration its own verifiable identity.

URI patterndid:oas:<ns>:workflow:<id>
Lineage

Lineage required. Chain terminates at a human root.

10model

Model

A machine learning model with verified provenance. Identity-bound models make it possible to prove which model acted and where it came from.

URI patterndid:oas:<ns>:model:<id>
Lineage

Lineage required. Chain terminates at a human root.

11dataset

Dataset

A data collection with verified provenance and lineage. Datasets carry the same accountability chain as the agents and models that consume them.

URI patterndid:oas:<ns>:dataset:<id>
Lineage

Lineage required. Chain terminates at a human root.

12service

Service

An infrastructure service — compute, storage, networking — with verified identity, so even the substrate agents run on is attributable.

URI patterndid:oas:<ns>:service:<id>
Lineage

Lineage required. Chain terminates at a human root.

Lineage in practice

One tree, four generations, one accountable human

The multi-generation example from the specification. Verifying the scraper at generation 3 means walking four lineage proofs back to Alice — from bundled evidence via typed authorizing verification.

did:oas:acme:hmr:aliceHuman Root
└─did:oas:acme:ao:researchgeneration 0
├─did:oas:acme:agent:coordinatorgeneration 1
└─did:oas:acme:agent:analystgeneration 2
└─did:oas:acme:tool:scrapergeneration 3
└─did:oas:acme:workflow:pipelinegeneration 1

Roots terminate chains

Every humanRootChain must terminate at an hmr, mhr, or enr DID. Chains that loop or end at a non-root entity are invalid.

Generation is measurable

An entity's generation equals the length of its humanRootChain minus one, so trust policies can reason about distance from the root.

One root per entity

Every chain converges to exactly one human root — a single, unambiguous accountability anchor for every autonomous entity.