The conformance suite defines the behavior an implementation must satisfy to claim OpenAgent ID compatibility.

Required areas

CategoryWhat it tests
Challenge401 challenge shape, nonce entropy, timestamp, origin, content type
SignJCS canonicalization, Ed25519 signature, base64url transport
Noncesingle-use nonce behavior, unknown nonce rejection, expiry
TimestampTTL, skew behavior, future timestamp rejection
Trustanonymous, identified, and sovereign tier behavior
Sessionsession token issuance, validation, expiry, and headers
Errorstable JSON error envelope and machine-readable codes
HeaderAuthorization, WWW-Authenticate, session, DID, trust headers
Interopraw Ed25519 agents, SDK-free HTTP, cross-runtime JCS output

Current alignment

OpenAgent Core v1.1.0 uses:
  • canonical Authorization: OpenAgent <base64url(sig)>.<base64url(pubkey)>,
  • X-OpenAgent-Key-Type and nonce metadata as separate headers,
  • challenge JSON containing type, nonce, timestamp, origin, and optional realm,
  • day-one trust tiers: anonymous, identified, sovereign,
  • HTTP as the normative launch binding.
Some older fixtures describe alternative key-value authorization syntax or five trust tiers. Those are compatibility or future-facing tests, not the launch-required path.

Implementation checklist

An implementation should be able to:
  • issue and validate fresh challenges,
  • JCS-canonicalize challenge JSON,
  • verify Ed25519 signatures,
  • derive the DID from the public key,
  • consume nonces on success and failure,
  • issue bounded session tokens,
  • reject revoked or expired DIDs,
  • return stable error codes,
  • pass JSON vectors in Rust and TypeScript runners.