Introduction
What Integra Agent Guard is, what it guarantees, and what it deliberately does not do.
Integra Agent Guard is the buyer side of agentic commerce: two packages for an agent that is about to pay, and wants to know that the terms it read are the terms the seller committed to.
LCP is the Legal Context Protocol — the open standard for
legal context in agentic commerce, co-stewarded by Integra Ledger and AAA-ICDR. It defines where a service
publishes its terms, and the fingerprint that binds it to them. These docs refer to it constantly, and to
its numbered sections (LCP §5.3, and so on); this is what that means.
Both are Apache-2.0 and free forever — no account, no key, no token, nothing to sign up for.
| Package | What it is | |
|---|---|---|
@integraledger/agent-guard | Verify before sign, as a type and as a runtime guarantee. | npm |
@integraledger/lcp-mcp-server | A read-only Model Context Protocol server exposing the same checks as tools. | npm |
npm install @integraledger/agent-guard
npm install @integraledger/lcp-mcp-serverThe fingerprint, and why it is new
The check below rests on one artifact, and it is worth being plain that the artifact did not exist until recently.
ATR stands for Agentic Transaction Record, and in the Legal Context
Protocol the ATR is the terms document itself — the
standalone artifact the seller publishes. atrHash is its SHA-256 digest, 0x-prefixed hex.
None of the nine agentic commerce protocols carries a terms fingerprint of its own. They carry prices,
payment rails, mandates and receipts; not one of them commits the seller to a particular terms document.
LCP defines atrHash and defines where it rides inside each of those protocols' own extension points, so
a seller who adopts LCP advertises the digest alongside the terms.
That advertised digest is the only thing that binds a seller to a document. Everything on this site follows from that one fact — including why a seller who advertises nothing cannot be verified at all.
Two atrHash values are equal when their decoded 32-byte values are equal, so a conformant implementation
compares the decoded bytes rather than the strings. The guard does; you get this for free unless you are
writing your own comparison.
The guarantee
The guard fetches the terms the seller advertised, recomputes that fingerprint over the bytes it was actually served, and halts before any signing key is invoked if the two disagree.
That last clause is the whole product. transact reaches your signer on exactly one path — a proceed
decision — and on any other outcome the signer is not called at all. The key is structurally gated rather
than gated by a check you have to remember to write.
It works against any seller
Every check runs over what a seller publicly advertises in its own commerce protocol document — an x402 challenge, an ACP checkout session, an AP2 envelope, an MPP charge request. Nothing requires the seller to run Integra software, or to know Integra exists.
Nothing here calls home either: no telemetry, no callback, no registry check. The only network request either package makes is fetching the terms the seller pointed you at, and it makes that request through a guarded fetcher.
What it is not
The guard decides whether terms are bound to a payment. It has no opinion on how you pay, and that boundary is deliberate:
- It does not choose a payment requirement. An x402
acceptsarray lists alternatives; which one to pay is a matter of rails, balances and preference, and the guard does not pick for you. Narrowacceptsto the requirement you intend to pay before calling. - It does not hold offer-expiry policy. Whether a quote has gone stale is agent operations. Hold that
in your own client and reach
transactonly when you still intend to pay. - It does not custody, broadcast, or settle. It returns a decision. What you do with a signature is yours.
- It does not record an acceptance, hold an agreement, or run a dispute. Those assert a custodian or forum role. See the MCP boundary.
The standard
These packages implement the buyer side of the Legal Context Protocol,
co-stewarded by Integra Ledger and AAA-ICDR, over the public @integraledger/lcp-* protocol packages. The
seller-side application they interoperate with is separately licensed and is not part of this repository.
Where to go next
- Why verify before sign — the failure this prevents, which is not the one most people expect.
- Quickstart — a working gate in about twenty lines.
- Protocols — what is universal, what is by-name, and why the difference exists.
- MCP server — the same checks as tools for an agent host.
Last updated on