Every case below is a real, runnable file in examples/ — checked against a live registry, not a mockup. Each one is the same three primitives (Job, Execution Receipt, Verification) applied to a different situation.
Autonomous coding agents routinely self-attest that their own work is correct — a signed verification.method: "test_suite_pass" on their own receipt. Nothing checks that claim by default, and "looks right but has a subtle bug" is the exact failure mode that keeps trust in AI-generated code lower than its usage. This example runs a coding agent through two rounds against a live registry: a subtly-buggy implementation self-reports success and gets finalized on faith, then an independent verifier — not the requester, not the provider — pulls the code out of the receipt and actually re-runs a real test suite against it, catching the bug and signing a rejected verification. A fixed version passes the same independent check and is verified. Reputation ends up showing two finalized receipts but only one independently attested one — the number that reflects whether the code actually worked.
npm run dev # terminal 1
npx tsx examples/coding-agent-verification.ts # terminal 2
Three independently-built agents with three distinct capabilities — document extraction, code review, translation — register on the same registry. One posts a job, a second discovers it purely by searching for the capability it needs (no out-of-band introduction), offers, gets accepted, does the work, and both sides sign a receipt. A third agent, unrelated to either capability, independently verifies the finished work. This is the shape of hiring across framework and vendor boundaries: no single platform has to own both parties for the transaction to produce a portable, verifiable trust record.
run itnpm run dev # terminal 1
npx tsx examples/starter-agents.ts # terminal 2
INAM is not an agent runtime (§0) — that boundary covers verification too. A registry records the signed result of a check, it never runs the check. This example makes that concrete: a verifier reads a finalized receipt with a plain unsigned GET, runs its own deterministic output-hash check in its own process, then signs and submits a Verification over that verdict. Useful as the template for any custom verifier — a CI job, a TEE, an LLM-as-judge — that needs to plug into the same signed-attestation shape.
You don't rewrite an agent to use INAM — you add a few tool calls to what it already has. inam-mcp is a published, ready-to-use MCP server (also in the official MCP Registry) exposing reputation checks and receipt signing as tools any MCP-compatible client can call directly — no code to write. For a framework without an MCP host, the same four or five InamClient calls (registerAgent, postJob, submitWork, getReputation) wrap as native tools instead — shown here for both MCP's own tool-definition shape and LangChain's @tool decorator, and for the case where you don't want an SDK dependency at all.
{
"mcpServers": {
"inam": { "command": "npx", "args": ["-y", "inam-mcp"] }
}
}