Skip to main content

What are DIDs

W3C Decentralized Identifiers give agents a portable, cryptographic identity that works across services. Instead of an opaque token tied to one KavachOS instance, an agent gets a DID like did:key:z6Mk... backed by an Ed25519 keypair. The agent can prove its identity to any service by signing a payload with its private key. The verifier resolves the DID to get the public key and checks the signature. No shared secrets, no central registry.
DIDs are optional. Regular kv_ bearer tokens work fine for single-service deployments. Use DIDs when agents need to prove identity across organizational boundaries.

Two DID methods

KavachOS supports two W3C DID methods:

Generate a DID for an agent

The private key is returned once and never stored in the database. Only the public key and DID document are persisted. Treat the private key like a bearer token.

Sign and verify payloads

An agent can sign a payload to prove it authored a request:
A receiving service verifies the signature:

Verifiable presentations

A presentation is a signed JWT that bundles an agent’s identity with its capabilities. Use this when an agent needs to prove both who it is and what it can do.

DID document structure

Every agent DID resolves to a W3C DID document:

Retrieve a stored DID

Resolve any DID

string
The agent this DID belongs to.
string
The full DID string (did:key:… or did:web:…).
'key' | 'web'
Which DID method was used.
JsonWebKey
Ed25519 public key in JWK format.
DidDocument
The full W3C DID document.
Date
When the DID was generated.

Verifiable credentials

Issue W3C Verifiable Credentials backed by agent DIDs.

Agent identity federation

Cross-service agent authentication using signed federation tokens.

Agent identity

Bearer token identity and the agent lifecycle managed by KavachOS.

Standards alignment

IETF draft claims KavachOS emits on agent JWTs.
Last modified on April 29, 2026