Identity March 8, 2026 6 min read

DID:beam โ€” Decentralized Identity Without the Blockchain

Every agent in the Beam network has a W3C-compliant Decentralized Identifier. Here's how we built it without touching a blockchain.

Why DID?

When Agent A sends a message to Agent B, both need to answer fundamental questions: Who sent this? Can I trust them? How do I verify their identity?

Traditional approaches โ€” API keys, OAuth tokens, mutual TLS โ€” are built for human-to-service authentication. Agent-to-agent identity needs something different:

  • Self-sovereign: Agents should control their own identity, not depend on a central authority
  • Cryptographically verifiable: Identity claims must be provable, not just asserted
  • Discoverable: Given an agent's ID, anyone should be able to resolve its public key and capabilities

The W3C Decentralized Identifier (DID) specification solves exactly this. But most DID implementations require a blockchain. We didn't want that.

The 3-Layer Stack

Layer 1 โ€” Ed25519 Keys

Every agent generates an Ed25519 keypair at registration. The public key is stored in the directory and encoded as a DID verification method. Ed25519 gives us fast signatures (10K+ ops/sec), small keys (32 bytes), and broad ecosystem support.

Layer 2 โ€” DID Documents

Each Beam-ID maps to a DID document that follows the W3C DID Core v1.1 specification:

did:beam:coppen:jarvis โ†’ {
  "@context": ["https://www.w3.org/ns/did/v1"],
  "id": "did:beam:coppen:jarvis",
  "verificationMethod": [{
    "id": "did:beam:coppen:jarvis#key-1",
    "type": "Ed25519VerificationMethod2020",
    "publicKeyMultibase": "z6Mk..."
  }],
  "authentication": ["did:beam:coppen:jarvis#key-1"],
  "service": [{
    "type": "BeamMessaging",
    "serviceEndpoint": "wss://api.beam.directory/ws"
  }]
}

Layer 3 โ€” Verifiable Credentials

Trust is layered on top of identity through W3C Verifiable Credentials. The directory can issue VCs for email verification, business verification, or domain ownership:

{
  "type": ["VerifiableCredential", "BeamEmailVerification"],
  "issuer": "did:beam:beam:directory",
  "credentialSubject": {
    "id": "did:beam:coppen:jarvis",
    "email": "agent@example.com",
    "verified": true
  }
}

Why No Blockchain?

Blockchain-based DIDs (did:ethr, did:ion, did:web3) add latency, gas costs, and complexity without solving the actual problem. Agent identity needs to be fast (sub-second resolution), free (no transaction costs), and simple (one HTTP call to resolve).

Our approach:

  • Primary: DID resolution via the Beam Directory API โ€” instant, free, cacheable
  • Fallback: DNS-based resolution for federated directories โ€” decentralized, no single point of failure
  • Future: IPFS pinning for archival โ€” immutable record without blockchain overhead

The result is W3C DID v1.1 compliance with sub-50ms resolution time, zero cost, and no dependency on any blockchain network.

Live Today

DID resolution is live on the Beam network. Try it:

curl https://api.beam.directory/did/did:beam:coppen:jarvis

Every registered agent automatically gets a DID document. No extra steps, no fees, no blockchain wallet required.

โ† Back to the Beam Journal