Build verifiable agent actions.
+CommandLayer docs cover the protocol model, SDK integration, runtime signing, MCP bridging, verifier checks, schemas, and capability activation.
+ -authorize, checkout, purchase, ship, verify — that extend Commons with commerce-oriented schemas. Schemas public and portable.Start here
+Protocol Overview
Explain CLAS, receipts, and trust boundaries.
+Wrap Your Agent
Use the SDK to wrap actions and emit canonical receipts.
+Verify Receipts
Paste a receipt or verify programmatically.
+Production Proof
MCP → runtime → verifier → tamper invalid.
+Capabilities
Explore Trust Verification v1 and future capability families.
+SDK
Install @commandlayer/agent-sdk@1.2.0.
Architecture docs
+CLAS
Core protocol model and semantics.
+runtime-core
Deterministic canonicalization and signing internals.
+runtime
Production runtime behavior and receipt emission.
+MCP bridge
Protocol bridge from MCP clients to runtime actions.
+VerifyAgent
Public verifier flow and validation checks.
+agent-sdk
Application integration and wrapping utilities.
- -
Example: calling summarize
- A typical integration: the client builds a summarize.request payload, validates it against the Commons schema, sends it to an agent endpoint, and receives a summarize.receipt. The same pattern applies to every Commons verb.
1. Inspect the schemas
-Both schemas are public and versioned under the v1.1.0 path: https://commandlayer.org/schemas/v1.1.0/commons/summarize/
- summarize.request.schema.json ↗ · - summarize.receipt.schema.json ↗ -
- -2. Validate before sending
-import Ajv from "ajv"; -const ajv = new Ajv({ strict: true }); -const schema = await fetch( - "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.request.schema.json" -).then(r => r.json()); -const validate = ajv.compile(schema); -if (!validate(payload)) { - console.error("Invalid summarize.request", validate.errors); -}-
3. Send & receive a receipt
-const res = await fetch("https://runtime.commandlayer.org/summarize/v1.1.0", { - method: "POST", - headers: { "content-type": "application/json" }, - body: JSON.stringify(payload) -}); -const receipt = await res.json(); -// validate against summarize.receipt.schema.json-
- -
Defining your own Agent Card
-If you operate an agent and want others to discover and call it, describe it with an Agent Card JSON file and host it at a stable URL. Commons cards live under /agent-cards/agents/v1.1.0/commons/<ens>.json.
{
- "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json",
- "id": "summarizeagent.eth",
- "owner": "commandlayer.eth",
- "ens": "summarizeagent.eth",
- "version": "1.1.0",
- "status": "protocol_reference",
- "class": "commons",
- "implements": ["summarize"],
- "schemas": {
- "request": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.request.schema.json",
- "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json"
- },
- "entry": "https://runtime.commandlayer.org/execute"
-}
- /agent-cards/agents/v1.1.0/commercial/<ens>.json, with verbs such as authorize, checkout, purchase, ship, and verify.
- +
-
+
- Runtime signs.
- Verifier validates.
- MCP bridges.
- SDK wraps.
- Schema-valid alone is not verified. +
Canonical proof model
+Runtime production is live, runtime signs canonical Trust Verification receipts, and MCP E2E against production runtime passes: STEP 1 SIGNED · STEP 2 VERIFIED · STEP 3 TAMPERED INVALID.
+metadata.proof.canonicalization = "json.sorted_keys.v1" +metadata.proof.hash.alg = "SHA-256" +metadata.proof.signature.alg = "Ed25519" +metadata.proof.signature.kid = "vC4WbcNoq2znSCiQ" +metadata.proof.signer_id = "runtime.commandlayer.eth"+
Developer paths
+Fast path
Install SDK → wrap action → verify receipt.
Protocol path
Read protocol → inspect schemas → implement verifier.
Capability path
Choose capability family → define schema → publish metadata.
Where to go next
-You do not need the whole stack to start. One published verb and its schemas are enough.
- -