Specification / DID Method

did:oas

The self-certifying, offline-verifiable DID method for autonomous agents. Every identifier is derived from a public key, making the DID itself a cryptographic commitment.

did:oas:l1fe:agent:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK

Scroll to decode

did
Scheme

W3C Decentralized Identifier scheme. Always the literal string 'did'. The universal prefix that signals this URI follows the DID specification.

oas
Method

Open Agent Specification method identifier. Declares that this DID conforms to OAS resolution rules, cryptographic requirements, and entity kind taxonomy.

l1fe
Namespace

Issuing authority or network scope. DNS-label-safe string (1-63 chars). Enables multi-tenant resolution without collision. Examples: 'l1fe', 'acme', 'self'.

agent
Entity Kind

One of 11 typed identifiers: hmr, mhr, enr, ao, agent, agent:instance, tool, skill, workflow, model, dataset, service. Determines lineage requirements and capabilities.

z6MkhaXgBZDv...ta2doK
Identifier

Base58btc-encoded multibase representation of the entity's Ed25519 public key. Self-certifying: the identifier IS the cryptographic key. The 'z' prefix signals base58btc encoding.

CRUD Operations

Lifecycle of a DID

CREATELocal
$ oas did create --kind agent --namespace l1fe
Generating Ed25519 keypair...
Public key: z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
DID: did:oas:l1fe:agent:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
Document signed and saved.

Generate Ed25519 keypair. Derive identifier from public key via multibase encoding. Construct DID document with verification methods. Sign with private key.

No network call required. The DID is self-certifying.

READResolve
$ oas did resolve did:oas:l1fe:agent:z6Mkha...doK
Parsing DID components...
Namespace: l1fe Kind: agent
Fetching document from resolver...
Signature valid. Document integrity confirmed.

Parse DID into components. Look up the DID document via the namespace's resolver endpoint, or verify locally if the document is provided inline.

Supports offline resolution when the document is bundled.

UPDATESigned Patch
$ oas did update --did did:oas:l1fe:agent:z6Mkha...doK --add-service api
Loading current document (v2)...
Adding service endpoint: api
Signing document v3...
Update published. Version: 3

Create a new version of the DID document with updated fields. Sign the update with the controlling key. Version number increments monotonically.

Previous versions remain valid for historical verification.

DEACTIVATERevocation
$ oas did deactivate --did did:oas:l1fe:agent:z6Mkha...doK --confirm
WARNING: This action is irreversible.
Signing deactivation record...
Status: "deactivated"
DID deactivated at 2026-04-09T00:00:00Z

Set the DID document status to 'deactivated'. Sign the deactivation record. The DID remains resolvable but will fail verification checks.

Deactivation is irreversible. Key rotation is preferred.