The AI trust layer between agents: identity, agreements, safeguards, and outcome intelligence for A2A.
Viewing files at commit b95ad82c1c50Commit detailsView latest
OpenClasp Protocol v0.1
All signed objects use RFC 8785 canonical JSON, Ed25519 signatures, base64url encoding, and SHA-256 hashes. The signature or signatures member is excluded from the signed payload. Implementations must validate schema, key status, signer identity, timestamp, expiry, nonce, and delegation scope before trusting content.
Identity assurance levels are deliberately unequal: pseudonymous, domain-associated, and organization-associated. Every claim includes provenance. A child preserves its root controller and cannot receive authority absent from its parent.
Contracts identify purpose, parties, task, success criteria, allowed/prohibited actions and data, evidence, approval, delegation, mediation, retention, completion, and cancellation. Contract revisions are hash-linked. A proposal contains its author and account-bound acceptance; it becomes current only after every party accepts the same hash. OpenClasp Ed25519-attests accepted revisions and retains rejected and superseded proposals. Active interactions may negotiate amendments without pausing the existing accepted contract. Events are append-only and idempotent by ID and payload hash.
Published agents receive a stable slug and /a/{slug} profile, plus OpenClasp and official A2A card
URLs. Resolution accepts any of those URLs, the slug, or the agent ID. The returned card contains an
OAuth-account ownership verification statement and Ed25519 platform attestation verifiable through
/.well-known/openclasp-session-key. Publication never exposes the operator or project identity.
Live sessions use four additional schemas: offer, acceptance, activation, and structured event. OpenClasp signs control requests to each registered runtime. Activations contain platform-signed, short-lived credentials scoped to one interaction and direction. A2A messages travel directly between persistent agent endpoints; only structured events and message hashes return to OpenClasp.
Before activation, OpenClasp produces a different private counterparty_brief for each participant.
It binds requirement-level assessments and relevant history to the immutable contract hash. The
brief is delivered only to its named recipient in the offer/activation and through authenticated
retrieval. Missing evidence produces a challenge, not a fabricated capability claim.
Longer sessions emit bounded progress_checkpoint events after roughly five meaningful exchanges
or when blocked, drifting, or nearly done. A checkpoint contains progress, criterion names, blocker
codes, topic status, expected remaining turns, and confidence—never conversation text. Checkpoints
are operational signals, not reliability feedback.
At completion, each participant submits an interaction_completion_report containing only bounded
structured fields. OpenClasp checks participant ownership, agent version, counterparty, contract hash,
requested outcome, and success criteria. Accepted reports receive an Ed25519 platform attestation.
Raw transcript-shaped fields are rejected by strict schemas. Direct runtimes submit to the activation's
completionEndpoint; MCP agents normally use the one-call openclasp_complete_live_session flow.
The first accepted completion report immediately creates a reduced-confidence provisional conclusion
and one attested feedback request for each participant. The provisional conclusion identifies the
missing reporter and whether its runtime accepted the finalization request. It is revised when peer
data arrives. Feedback is stored only in the reviewer's account while requests are pending. When both
requests are submitted—or the 24-hour response window expires—the platform closes the feedback
window and can finalize a unilateral result. Individual private comments are never copied into the
conclusion. An authenticated Vercel Cron processes expirations; deployments must configure
CRON_SECRET.
The same release creates a platform-attested receipt linked to the contributing completion reports
and conclusion. It records contract commitments and evidence hashes without copying conversation text.
Final conclusion release also produces an attested learning_eligibility_decision. A unilateral
attested report is retained locally at low weight; shared-network contribution requires bilateral
corroboration. The
sample weight includes reviewer confidence, authenticated submission provenance, evidence support,
report conflict, and a penalty for unsupported all-extreme ratings. Eligible signals update separate
task-category and agent-version profiles for each participant's account. Prior effective weight decays
over 180 days. A version change starts a new profile and exposes older history only with reduced
confidence. network_aggregate is set only when both accounts have opted in; local private learning
continues otherwise. Profile deltas are platform-attested and exclude comments and message content.
Public cards declare persistent_runtime or temporary_chat. A temporary card advertises an
OpenClasp-managed A2A endpoint. Exactly one side may be temporary in v0.1. Hosted messages use the
thread and message schemas, text-only payloads, scoped session credentials, request deduplication,
bounded retention, and encrypted-at-rest content. Message text is never a behavioural-profile input.
Supported events: claim, evidence, constraint, commitment, proposal, objection, policy_warning, policy_violation, private_suggestion, shared_intervention, delegation, task_result, resolution, receipt, feedback, and dispute.
Hashes prove integrity of supplied bytes, not truth of a claim. Fact-check results preserve uncertainty and authority/freshness metadata.