Questions
What people ask first.
Each answer cites the public text of the standard or the documentation of a published package. What we say of other organizations’ protocols is our reading of their published interfaces.
The basics
- What is an agentic agreement?
What a buyer’s agent and a seller’s agent commit to before the money moves: the price, the terms, and how a dispute would be handled. It is to agentic commerce what accepted terms and conditions are to a website, and what a contract is to traditional commerce.
- What is an Agentic Transaction Record (ATR)?
The document of one agentic agreement: one record of exactly what was agreed, for one transaction. The seller keeps and serves it; the buyer fetches it and keeps it before it pays. The name is the standard’s: the ATR is the terms document itself. Source: LCP §2.3 (opens in a new tab) · Source: LCP §2.5 (opens in a new tab) · Source: lcp docs: the ATR (opens in a new tab)
- What is the ATR hash?
The ATR’s unique fingerprint, computed from its exact bytes. Change one byte of the ATR, and it no longer matches.
The SHA-256 of the ATR’s exact bytes, the standard’s
atrHash. Change one byte of the ATR and its hash changes, so the ATR hash identifies exactly one version of the agreement. Source: LCP §2.5 (opens in a new tab) · Source: LCP §12.3 (opens in a new tab)- How is the ATR hash bound into a payment?
The payment carries it in a field its protocol or rail already has: a nonce, a memo, a note, an invoice field. Where the rail settles on a public ledger, the ATR hash is then in the settled transaction, permanently, for anyone to check. On card networks and processors it rides in the processor’s records instead. Each pairing in the package says which it is. Source: lcp docs: binding (opens in a new tab) · Source: lcp docs: recovering H from the chain alone (opens in a new tab)
- Does the ATR make an agreement enforceable?
The ATR is a record, never a judge. That a terms acceptance was bound and evidenced is a technical fact; whether the resulting agreement is enforceable is not ours to assert.
About the standard
- What is the Legal Context Protocol?
LCP is an open standard for discovering the legal context of agentic commerce transactions. A service publishes a reference to its legal terms at one well-known address,
/.well-known/legal-context.json. Source: LCP Abstract (opens in a new tab) · Source: LCP §2.1 (opens in a new tab)That core requires no blockchain, no cryptography beyond HTTPS, no API and no third-party service. Beyond it, the standard gives advisory guidance on stronger records: provable terms, signed acceptance, and hooks to dispute resolution. Source: LCP Abstract (opens in a new tab) · Source: LCP §3 (opens in a new tab)
- Who stewards it?
LCP is co-stewarded by Integra and the AAA-ICDR.
It is published under the Apache 2.0 licence, with no fees at any level, and changes go through public proposals with community review. Source: LCP governance (opens in a new tab)
- How does LCP relate to x402, MPP, ACP, UCP, AP2 and the others?
Those protocols move or authorize the payment; LCP adds the legal context they leave to others: what terms were offered, under what conditions, with what recourse. It rides inside their existing carriers without changing what those carriers mean. AP2, for one, defines mandates and no transport of its own. Source: LCP §9.2 (opens in a new tab) · Source: LCP §8 (opens in a new tab) · Source: LCP §C.5 (opens in a new tab)
The protocols carry the money; LCP carries the meaning.
- Does it need a blockchain?
No. The first two levels work on any web server that serves a JSON file. A blockchain comes in only when the ATR hash is bound to a settlement on one. Source: LCP FAQ (opens in a new tab) · Source: LCP §3, Level 1 (opens in a new tab) · Source: LCP §3, Level 2 (opens in a new tab)
- What stops someone changing the terms after the fact?
The ATR hash. If the ATR changes by one byte its SHA-256 changes, and either party can see the mismatch. The ATR hash a transaction’s receipt carries identifies the version in effect for that transaction, whatever the seller’s page says later. Source: LCP §3, Level 2 (opens in a new tab) · Source: LCP §12.3 (opens in a new tab)
Sources (11)
LCP Abstract (opens in a new tab) · LCP §2.1 (opens in a new tab) · LCP §3 (opens in a new tab) · LCP governance (opens in a new tab) · LCP §9.2 (opens in a new tab) · LCP §8 (opens in a new tab) · LCP §C.5 (opens in a new tab) · LCP FAQ (opens in a new tab) · LCP §3, Level 1 (opens in a new tab) · LCP §3, Level 2 (opens in a new tab) · LCP §12.3 (opens in a new tab)
About Integra
- What does Integra do?
Integra is the Agentic Agreement company.
We co-steward the Legal Context Protocol, publish its packages for anyone to use, and run the hosted appliance that does the seller’s side of each agreement: it assembles, hashes, stores and binds the ATR. Source: @integraledger/lcp README (opens in a new tab) · Source: connectors docs: the seller door (opens in a new tab)
- Do I have to trust Integra?
We are not a party you have to trust. Verification does not route through Integra. Anyone holding the ATR checks it themselves — offline, from the bytes and the chain, without our permission or participation.
- Does Integra hold funds or settle payments?
Integra orchestrates. It never broadcasts a transaction and never takes custody of funds. Settlement stays entirely on your rail.
- Is there a free way to use it?
Yes. The hosted appliance is free on test networks, with test-network USDC, and the packages are open source. Source: @integraledger/lcp README (opens in a new tab)
How the ATR hash rides each rail
- How does it ride on EVM chains?
The payer signs the ATR hash as part of its payment authorization, and the ATR hash is then on the chain with the transfer.
With x402’s
exactscheme, the ATR hash is the nonce of the EIP-3009 authorization the payer signs. The token contract verifies that signature when it executes the transfer, and the ATR hash lands on chain as the nonce of the transfer’s event. Source: lcp docs: rails (opens in a new tab) · Source: lcp docs: pairings reference (opens in a new tab)What that proves is stated by the pairing itself: it does not show that the amount, the payee, the asset or the timing match the ATR’s content. Source: lcp docs: pairings reference (opens in a new tab)
- How does it ride on Stellar?
The seller’s receiving address carries part of the ATR hash: enough to confirm an ATR someone holds, not enough to reveal it.
The seller’s muxed address carries the ATR hash’s first 8 bytes as its id, as the transfer’s destination. Eight bytes confirm an ATR hash someone holds and bind it only through those bytes; the pairing’s record says so. Source: lcp docs: rails (opens in a new tab)
- And on Solana and Sui?
On both, the transaction the payer signs carries the whole ATR hash: on Solana in a memo, on Sui as an extra input.
On Solana, the transaction’s one Memo instruction holds the ATR hash as
lcp:sha256:0x…. On Sui, one unusedPureinput of the signed transaction holds its 32 bytes. Source: lcp docs: rails (opens in a new tab)- And on Aptos?
Nothing on the chain carries it. The payment request does, and the seller ties the payment to it when it claims the payment.
Nothing on chain: no field of a standard Aptos transfer carries the ATR hash. The challenge carries it, and the seller ties the payment to it when it claims the payment for the request. Source: lcp docs: rails (opens in a new tab)
- Does any of this need a new contract?
No. Each payment uses a field its protocol or rail already has.
No. No pairing in the package adds a contract for LCP: each uses a field its protocol or rail already defines. The standard also describes an overlay contract for rails with no field of their own; the package’s pairings do not use it. Source: lcp docs: binding (opens in a new tab) · Source: LCP §8.3.2 (opens in a new tab)
- What about cards and other traditional rails?
Card networks are covered, through Visa’s Trusted Agent Protocol, Mastercard’s Verifiable Intent and plain card checkouts, and so is Stripe, through MPP. The site names no other traditional rail, because no public package implements one. Source: lcp docs: agentic checkouts (opens in a new tab) · Source: lcp docs: MPP (opens in a new tab)
For implementers
- Where is the standard?
At legalcontextprotocol.org (opens in a new tab), with its public text, examples and governance. Source: LCP Abstract (opens in a new tab)
At legalcontextprotocol.org (opens in a new tab). Its public text is on GitHub, and every
LCP §on this site links into it. Source: LCP Abstract (opens in a new tab)- What is the smallest integration?
Publish one small file on your own website saying where your terms are: that is the standard’s first level. Adding the terms’ ATR hash is the second.
Publish
/.well-known/legal-context.jsonwith one field,terms: the absolute HTTPS address of a standalone terms file. That is Level 1, Informational. Source: LCP §2.4 (opens in a new tab) · Source: LCP §3, Level 1 (opens in a new tab)Add
atrHash, the SHA-256 of that file’s exact bytes, and it is Level 2, Provable; the file must then be byte-for-byte identical every time it is served. Carrying the ATR hash in a payment is not a level: it is how the packages bind each sale to its ATR. Source: LCP §2.5 (opens in a new tab) · Source: LCP §3, Level 2 (opens in a new tab) · Source: lcp docs: binding (opens in a new tab)- Which packages can I install?
Five open-source packages on npm, with the buyer’s gate also for Python: the seller side, the buyer’s gate, the gate as MCP tools, the seller door’s contract and a facilitator. The Developers page lists them.
On npm:
@integraledger/lcp, the seller side;@integraledger/terms, the buyer’s gate, also on PyPI asintegraledger-terms;@integraledger/terms-mcp, the gate as MCP tools;@integraledger/agentic-connectors, the seller door’s contract; and@integraledger/profile-facilitator, an x402 facilitator for two LCP profiles. The Developers page lists their versions. Source: @integraledger/lcp README (opens in a new tab) · Source: @integraledger/terms README (opens in a new tab) · Source: @integraledger/agentic-connectors README (opens in a new tab)- How do I know my own implementation is right?
Run the packages’ published test vectors against it. Nobody has to run the same code to interoperate. Source: @integraledger/lcp: vectors and conformance (opens in a new tab)
Run the packages’ test vectors against it. They fix the ATR’s exact bytes and hash, each refusal, the buyer gate’s rows, and for each pairing what the payer signs and the ATR hash read back. Nobody has to run the same code to interoperate. Source: @integraledger/lcp: vectors and conformance (opens in a new tab)
Sources (10)
LCP Abstract (opens in a new tab) · LCP §2.4 (opens in a new tab) · LCP §3, Level 1 (opens in a new tab) · LCP §2.5 (opens in a new tab) · LCP §3, Level 2 (opens in a new tab) · lcp docs: binding (opens in a new tab) · @integraledger/lcp README (opens in a new tab) · @integraledger/terms README (opens in a new tab) · @integraledger/agentic-connectors README (opens in a new tab) · @integraledger/lcp: vectors and conformance (opens in a new tab)