For payment rails
Your payments carry the agreement, in a field you already have.
On almost every rail the public package supports, the ATR hash — the unique fingerprint of the agreement’s Agentic Transaction Record (ATR) — rides in a field the payment already has: a nonce, a memo, a note, a salt, an invoice field. Where a rail has none, the package says so. Settlement stays on your rail. Source: lcp docs: rails (opens in a new tab)
Sources (1)
Where it rides
A field the rail already has, and no new contract.
Each rail below, with the field its payments carry the ATR hash in, or, where a rail has none, what carries it instead. No pairing in the package adds a contract for LCP, and nothing about the rail changes. Source: lcp docs: rails (opens in a new tab) · Source: lcp docs: binding (opens in a new tab)
| Rail | Where the ATR hash rides |
|---|---|
| EVM chains | the signed authorization’s nonce |
| Tempo | MPP’s attribution memo |
| Solana | one Memo instruction |
| Stellar | the seller’s muxed address |
| XRP Ledger | the Payment’s InvoiceID |
| Hedera | the signed transaction body’s memo |
| Algorand | the asset transfer’s note |
| Aptos | the challenge only |
| Cardano | a CIP-20 message |
| Casper | the CEP-3009 authorization’s nonce |
| Concordium | the transfer’s memo |
| NEAR | the NEP-141 transfer’s memo |
| Polkadot Asset Hub | a remark batched with the transfer |
| Starknet | the outside execution’s nonce |
| Sui | an unused Pure input |
| Tron | the TRC-20 transfer’s memo |
| TON | the Jetton transfer’s text comment |
| Stacks | the SIP-010 transfer’s memo |
| Lightning | the BOLT11 invoice |
| Card networks | the agent’s signature, the mandate, or the processor reference |
| Stripe | the PaymentIntent’s metadata |
What it proves
What makes a payment a proof of the agreement.
Three properties decide how much a payment on a rail shows, and every pairing in the package states all three about itself. Source: lcp docs: binding (opens in a new tab)
The payer signs it
The ledger keeps it
Anyone can read it back
Where a rail’s payment carries nothing public, the seller can advertise an agreement URL: the buyer first pays it on a pairing that is a public proof, then makes the full payment. Source: lcp docs: where the payment is not a public proof (opens in a new tab) · Source: lcp docs: the agreement URL (opens in a new tab)
Non-custodial
Nothing about your rail changes.
Integra orchestrates. It never broadcasts a transaction and never takes custody of funds. Settlement stays entirely on your rail.
The package itself holds no key, signs nothing, moves no funds and calls no network on its own. It reads a payment’s settlement through a reader you supply, with your endpoint and your credentials. A reader that fails never makes a payment read as failed. Source: @integraledger/lcp: what it guarantees (opens in a new tab) · Source: lcp docs: reading settlement (opens in a new tab)
Ways in
Build it once, for your whole network.
Publish your rail’s profile
Test against the vectors
Run it on your test network
Ready to see your own agreements proved?
Tell us what you sell, buy or carry, and we will show you where the agreement rides in it.
The hosted appliance is free on test networks, with test-network USDC.