Use this file to discover all available pages before exploring further.
This specification defines how AI agents are identified, authenticated, and trust-scored within AgentMesh. Every agent operating in a governed mesh MUST possess a cryptographically bound identity tied to a human sponsor. Trust is not binary: it is a continuously computed score reflecting behavioral history across five dimensions, decaying over time without positive signals, and propagating through interaction networks. All SDK implementations — Python, TypeScript, Rust, .NET, and Go — MUST conform to this specification. The key words are interpreted as described in RFC 2119.
where <unique-id> is a hex-encoded string generated with at least 128 bits of cryptographically secure randomness.
The canonical wire format is planned to migrate to did:agentmesh:<fingerprint> in a future version. Implementations SHOULD accept both did:mesh: and did:agentmesh: prefixes in parsing but MUST generate did:mesh: in version 1.0.
Trust scores are integers in the range [0, 1000]. Implementations MUST clamp all scores to this range. Trust ceilings MUST be enforced on every score update.The trust score is computed across five reward dimensions:
Implementations MUST define exactly five trust tiers:
Tier
Score Range
Access Level
verified_partner
900–1000
Highest confidence; full mesh access
trusted
700–899
Established track record; standard access
standard
500–699
Default starting point
probationary
300–499
New or recovering agent; limited access
untrusted
0–299
Failed validation or malicious behavior; blocked
The TypeScript SDK uses a 0.0–1.0 floating-point scale with four tiers (Untrusted, Provisional, Trusted, Verified). The Rust SDK uses 0–1000 with five tiers. Both satisfy this specification as long as the tier boundaries align proportionally.
A delegation chain is an ordered sequence of links from a root sponsor to a leaf agent. Each link MUST satisfy:
Monotonic narrowing: Child capabilities MUST be a strict subset of the parent’s capabilities. A child MUST NOT hold capabilities the parent does not hold.
Wildcard restriction: The wildcard capability "*"MUST NOT be delegated.
Depth limit: The maximum delegation depth is implementation-defined but MUST be enforced. The default maximum depth is 5.
Trust ceiling propagation: Each child’s maximum achievable trust score is the parent’s trust ceiling (or 1000 for root agents).
The challenge response signature is over: challenge_id || nonce || response_nonce. Token verification MUST use constant-time comparison (e.g., hmac.compare_digest) to prevent timing side channels. Standard string equality MUST NOT be used for token comparison.
When require_freshness=True, the challenge includes a freshness_nonce that MUST be included in the signed payload and verified. Freshness bypasses the handshake result cache.
JWK export MUST NOT include the private key (d field) by default. The includePrivate / include_private parameter is explicit opt-in.JWKS sets MUST wrap keys in {"keys": [...]}.Round-trip invariant: An identity serialized to JWK and imported back MUST produce a semantically equivalent identity (same did, public_key, capabilities).
The IdentityRegistry manages collections of AgentIdentity records:
Method
Description
register(identity)
Register an identity. Raises error if DID already registered.
get(did)
Look up by DID. Returns None / undefined if not found.
revoke(did, reason)
Revoke identity and all its delegates (cascading revocation).
getBySponsor(email)
Find all identities for a sponsor.
listActive()
List all identities that are currently active.
Cascading revocation: When a root identity is revoked, the registry MUST recursively revoke all child identities in the delegation tree. Cycle detection MUST be implemented to prevent infinite recursion on malformed delegation graphs.
An implementation is conformant if it satisfies all MUST requirements:
DID format MUST be did:mesh:<unique-id> with ≥ 128 bits of randomness.
Ed25519 MUST be the signature algorithm.
Private keys MUST NOT appear in serialized output.
Every identity MUST have a human sponsor.
Trust scores MUST be clamped to [0, 1000].
Trust ceilings MUST be enforced on every score update.
Scope chain capabilities MUST only narrow, never widen.
Wildcard "*"MUST NOT be delegated.
Handshake challenges MUST expire and be cleaned up.
Token verification MUST use constant-time comparison.
Signature verification failures MUST NOT raise exceptions.
Revoked identities MUST NOT be reactivated.
Key rotation MUST produce verifiable proofs.
JWK export MUST NOT include private keys by default.
Conformance tests MUST cover: DID generation and parsing; identity creation, validation, and lifecycle transitions; credential issuance, validation, rotation, and revocation; trust score computation, tier assignment, and ceiling enforcement; trust decay and network propagation; handshake challenge-response flow; delegation chain construction and verification; key rotation with proof verification; JWK round-trip; and revocation list operations.