▸ docs

Getting started with
CommandLayer

Agents don’t make claims — they produce proof. Wrap → sign → verify. VerifyAgent.eth is the public verifier for receipts produced by ENS-named agents.

VerifyAgent resolves signer keys from ENS TXT records.
For the hackathon demo, runtime.commandlayer.eth is supported via a labeled fallback resolver that mirrors the ENS record structure.
The verification flow is designed to operate against live ENS records.

Wrap → sign → verify If the output changes, the proof breaks. Tampering returns INVALID.
Verify a receipt now → Jump to summarize flow ↓

Install the SDK: npm install @commandlayer/agent-sdk

If the output changes, the proof breaks.

If you need to work on SDK internals locally, use the GitHub repository as a secondary path.


One flow you can implement today

At minimum, you only need two things to integrate: a verb and its schemas. If you also want others to discover and route to your agent, you publish an Agent Card. Runtime is the proving surface: it executes those contracts and may add optional runtime_metadata without changing semantics.

1
Pick a Commons verb (e.g. summarize).
2
Take its *.request and *.receipt schemas as your contract.
3
Validate payloads with any JSON Schema 2020-12 validator.
4
Describe your agent with an Agent Card so it can be discovered and routed to.
5
Runtime can change routing, policy, and guarantees — the semantic contract stays stable and Commons remains the public truth.
Real verbs, real receipts — the same shapes across agents, runtimes, and payment rails. See it live →

Verification in four steps

1) Wrap any agent action. 2) Emit a signed receipt. 3) Verify with VerifyAgent.eth. 4) If the output changes, the proof breaks and verification returns INVALID.

Commons verbs
Universal verbs like summarize, analyze, parse, and fetch. Each has a strict *.request and *.receipt JSON Schema you can plug into any agent.
Commercial verbs
Economic flows — authorize, checkout, purchase, ship, verify — that extend Commons with commerce-oriented schemas. Schemas public and portable.
VerifyAgent.eth, Agent Cards, Runtime, SDK
VerifyAgent.eth is the public verifier for CommandLayer receipts. Agent Cards bind ENS names to verbs/schema versions/endpoints. Runtime executes verbs and signs receipts. SDK wraps agents and provides programmatic receipt tooling.

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

javascriptNode.js · Ajv (any JSON Schema 2020-12 validator works)
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

javascriptsend request · validate 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.

jsonCommons agent card template · summarizeagent.eth
{
  "$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"
}
Commercial agents follow the same pattern under /agent-cards/agents/v1.1.0/commercial/<ens>.json, with verbs such as authorize, checkout, purchase, ship, and verify.

Where to go next

You do not need the whole stack to start. One published verb and its schemas are enough.