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.
Four pieces work together on top of x402 and ERC-8004: Commons verbs, Commercial verbs, Agent Cards, and the Runtime execution layer. This page shows how to call a verb, validate payloads, describe your own agent, and see how everything lines up.
CommandLayer doesn’t compete with x402 or ERC-8004 — it completes the stack by defining machine intent. Commons and Commercial verbs give you the vocabulary, Agent Cards bind that vocabulary to agents, and Runtime turns it into execution and guarantees.
Universal verbs like summarize, analyze,
parse, and fetch. Each has a strict
*.request and *.receipt JSON Schema you can plug into
any agent.
Economic flows — authorize, checkout,
purchase, ship, verify — designed to sit
on x402 rails and tie into payments, fulfillment, and risk.
Agent Cards bind ENS names to verbs, schema versions, and x402 entrypoints. Runtime endpoints execute those verbs with receipts and guarantees, while the verb language and schemas stay free and stable.
Use CommandLayer as the language contract between clients and agents — the piece that standardizes exit names, request shapes, and receipts on top of x402 and ERC-8004.
The fastest way in is to wire a single Commons verb. The pattern is always the same: pick a verb, shape a request, validate, send, and check the receipt.
summarize) from
Commons.
*.request and *.receipt schemas as your contract.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.
Both schemas are public and versioned under
https://commandlayer.org/schemas/v1.0.0/commons/summarize/:
All Commons schemas follow the same pattern:
/schemas/v1.0.0/commons/<verb>/requests/<verb>.request.schema.json
and
/schemas/v1.0.0/commons/<verb>/receipts/<verb>.receipt.schema.json.
In Node.js with Ajv (example only — 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.0.0/commons/summarize/requests/summarize.request.schema.json"
).then(r => r.json());
const validate = ajv.compile(schema);
if (!validate(payload)) {
console.error("Invalid summarize.request", validate.errors);
}
Where you send the request depends on the agent. When reference agents are available, you’ll typically hit an x402-compatible HTTP endpoint listed in an Agent Card.
const res = await fetch("https://<agent-endpoint>/summarize", {
method: "POST",
headers: {
"content-type": "application/json"
},
body: JSON.stringify(payload)
});
const receipt = await res.json();
// validate against summarize.receipt.schema.json
If you operate an agent and want others to discover and call it, you describe it with an Agent Card JSON file and host it at a stable URL under your control.
For Commons agents, cards live under:
/agent-cards/v1.0.0/commons/<ens>.json
{
"ens": "summarizeagent.eth",
"owner": "commandlayer.eth",
"contact": "dev@commandlayer.org",
"verbs": [
{
"name": "summarize",
"schema_version": "1.0.0",
"tier": "commons"
}
],
"x402": [
{
"network": "eip155:1",
"entry": "x402://summarizeagent.eth/summarize/v1"
}
]
}
Commercial agents follow the same pattern under
/agent-cards/v1.0.0/commercial/<ens>.json, with verbs such as
authorize, checkout, purchase,
ship, and verify.
You don’t need the whole stack to start. One verb + its schemas is enough. As x402 and ERC-8004 roll out, the same vocabulary scales across more agents, networks, and payment rails.