Entry points
Every entry point of @integraledger/lcp and what it exports.
This page is generated from the package by node scripts/docs-reference.mjs, and CI checks that it matches.
Import each entry point by its subpath. Every entry point is ESM with its own type declarations. The API reference gives each export's signature and documentation.
| Entry point | What it holds |
|---|---|
@integraledger/lcp | The core: assembling an ATR and hashing its exact bytes, comparing hashes, the hash's string and structured forms, the https-link rule, and the registry of every pairing (BINDINGS, pairingOf, canonicalTx). |
@integraledger/lcp/a2a | The LCP extension for A2A: the ATR hash and the link to the seller's copy delivered in a Task's metadata, keyed by the extension's URI. A2A signs nothing per transaction, so this is a carrier and exports no pairing. Pure; no I/O. |
@integraledger/lcp/ack | ACK Payment Requests and receipts, and the pairing ack/payment-request: the ATR hash as the id of the seller-signed Payment Request, in LCP's string form, with the link beside the request in the 402 body. ACK defines no payer signature, so build and bound always refuse. Pure; no I/O. No token or receipt signature is verified here. |
@integraledger/lcp/acp | ACP checkout sessions and delegate-payment allowances, and the pairings acp/checkout/delegated and acp/checkout/undelegated: the ATR hash as the checkout session's id, with the link beside it in the session's metadata.legal_context, and, where the handler requires delegate_payment, as the allowance's checkout_session_id. Pure; no I/O. Nothing here signs or verifies a signature. |
@integraledger/lcp/ap2 | AP2 v0.2 checkouts and closed Checkout Mandates, and the ap2/checkout-mandate pairing: the ATR hash as the legalContext member of the merchant-signed checkout_jwt payload, committed to by the buyer's closed Checkout Mandate through checkout_hash, and read back from inside the mandate. Nothing here verifies a signature. |
@integraledger/lcp/aptos | Aptos, and the x402/exact/aptos pairing, served at the seller-tied level: no field of a standard Aptos transfer carries the ATR hash, so the hash is advertised in the challenge, read back from the echoed extension, and tied to the payment by the seller's claim. The settlement is found by the payer's sender and sequence number, and identified by a digest of the transfer the payer signed. |
@integraledger/lcp/avm | Algorand: the pairing x402/exact/algorand, in which the payer signs an asset transfer whose note is the ATR hash's LCP string, and the settlement read from an Indexer by the transaction id computed from the signed bytes. algosdk is an optional peer: this module loads it when present, and without it the pairing serves no option. |
@integraledger/lcp/card | The card entry point: the ATR hash on a card checkout, on three paths. |
@integraledger/lcp/cardano | Cardano, and the x402/exact/cardano pairing: the ATR hash as a CIP-20 message (metadata label 674) that the payer's signed body commits to through auxiliary_data_hash. The transaction id is the Blake2b-256 of the body as received, so settlement is read by an id fixed before any money moves. |
@integraledger/lcp/casper | CEP-3009 on Casper and the x402/exact/casper pairing: the ATR hash as the authorization's 32-byte nonce, written by the buyer's signer, read back from what the payer signed, and read from the executed call's arguments. |
@integraledger/lcp/ccd | Concordium and the x402/exact/ccd pairing: the ATR hash in LCP's string form, as a CBOR text string, in the memo of the one transfer the sender signs; read back from the signed transaction, and read from the finalized transfer event. |
@integraledger/lcp/discovery | The discovery document of LCP §2, served at /.well-known/legal-context.json. parse reads one; emit writes one, members in the order of LCP §2.4–§2.5's tables, absent members omitted, no whitespace, UTF-8. Both check only what LCP §2 states. Neither throws or does I/O. |
@integraledger/lcp/evm | EIP-3009 on eip155 chains: the typed data a payer signs, the identity digest of a transfer, and the settlement read from the token's AuthorizationUsed event. Nothing here knows x402. |
@integraledger/lcp/hedera | Hedera: the transaction wire form read and written by hand (protobuf, five messages), the Mirror Node settlement read, and the x402 pairings x402/exact/hedera (the ATR hash as the signed body memo) and x402/exact/hedera/transfer-executor (the hash advertised in the challenge only); and MPP's mpp/charge/hedera, whose signed memo is MPP's attribution memo, its nonce keccak256 of the challenge id that carries the hash. |
@integraledger/lcp/lightning | BOLT11 invoices and the Lightning pairings on x402 and MPP. On x402/exact/lnbtc the seller's node writes the ATR hash as the invoice's m field and signs it; on x402/exact/lnbtc/invoice-named the invoice carries no hash and the ATR's x402 slot names the invoice instead. On MPP the seller's node writes the ATR hash as the invoice's description hash h. The payer signs nothing; it pays the invoice. |
@integraledger/lcp/mpp | The mpp entry point: MPP's challenge pieces and its pairings. The charge pairings here are EVM authorization (the signed nonce is keccak256(id ‖ realm)), EVM permit2 (the signed witness carries that value), EVM transaction and hash (nothing signed carries H), and Tempo pull and push (the signed transferWithMemo carries MPP's attribution memo, whose nonce is keccak256 of the id). The session and subscription pairings are re-exported from their module. |
@integraledger/lcp/near | NEAR: the pairing x402/exact/near. The payer signs a NEP-366 delegate action for one NEP-141 ft_transfer whose memo argument is the ATR hash's LCP string; a facilitator's relayer submits it. Settlement is read from the relayed transaction's receipts through a bounded reader. |
@integraledger/lcp/polkadot | Polkadot Asset Hub: the profile pairing x402/exact/polkadot/lcp-assets-remark, in which the payer signs one extrinsic whose call is utility.batch_all([assets.transfer_keep_alive, system.remark_with_event]) with the ATR hash's LCP string as the remark; the settlement is read by block and index through Sidecar. SCALE is encoded and decoded here for these shapes only. |
@integraledger/lcp/stacks | Stacks rail pieces: the transaction id, the reader a settlement read goes through, the reading of a SIP-010 transfer whose memo argument is the ATR hash's 32 bytes, and the zero-party recovery of that hash from a mined transaction. |
@integraledger/lcp/starknet | Starknet: the pairing x402/exact/starknet. The payer signs a SNIP-12 OutsideExecution (SNIP-9 v2) authorizing one token transfer; its Nonce is the ATR hash's low 250 bits. Settlement is read from the executed call's trace through a bounded reader. The chain holds 250 of the hash's bits, so a holder of the ATR confirms the hash from it but nothing recovers the hash. |
@integraledger/lcp/stellar | Stellar rail pieces: the payer-signed Soroban transfer, its muxed to whose 8-byte id is the ATR hash's first 8 bytes, the digest of the signed authorization entry, and settlement read through a bounded reader. |
@integraledger/lcp/sui | Sui, and the x402/exact/sui pairing: the ATR hash as the one Pure input of the payer's programmable transaction that no command uses. The payer's signature covers it, the rail executes the transaction unchanged, and the hash stays on chain in the transaction's input list. Settlement is read by the transaction digest, which the signed bytes fix before any money moves. BCS decoding and base58 use @mysten/sui, loaded once when this module is; without it every function that needs it refuses sui/peer-missing, and status reads as pending unreadable. |
@integraledger/lcp/svm | Solana rail pieces: the wire transaction, its one Memo instruction carrying the ATR hash in LCP string form, the digest of the message the payer signed, and settlement read through a bounded reader. |
@integraledger/lcp/tempo | Tempo rail pieces: the 0x76 transaction's calls, the TIP-20 transferWithMemo calldata, the TIP-20 channel reserve's descriptor and ids, and the account keychain's key authorizations. Tempo serves eip155 JSON-RPC, so the reader is EvmReader. Nothing here throws on a caller's value; refusals are values. |
@integraledger/lcp/tron | Tron: the transaction pieces (protobuf for the fields the profile uses, base58check addresses, the transaction id) and the pairing x402/exact/tron/lcp-trc20-memo, whose payer-signed TRC-20 transfer carries the ATR hash as its memo, raw_data.data, in LCP string form. Settlement is read by transaction id through a bounded reader. |
@integraledger/lcp/tvm | TON: the pairing x402/exact/tvm. The ATR hash rides in the scheme's extra.forwardPayload as a TEP-74 text comment holding its LCP string. The payer's W5 wallet signs a request whose one Jetton transfer carries that payload; settlement is read from the Jetton wallets' transactions through a bounded reader. |
@integraledger/lcp/ucp | UCP checkouts and bookings, and four pairings: the ATR hash and link as one links[] entry of type legal_context in the checkout response. The ap2-mandate pairings read the hash from the checkout inside the buyer's checkout mandate, after AP2's checkout_hash check; the unsigned pairings have nothing signed to read. Nothing here takes a key, signs or verifies a signature. |
@integraledger/lcp/x402 | x402 v2 documents and the x402/exact/eip155/eip3009 pairing: the ATR hash advertised in the challenge's extensions.legalContext, signed by the payer as the EIP-3009 nonce, read back from the payment, and read from the settlement. |
@integraledger/lcp/x402-batch-settlement | x402 batch-settlement: one ATR per channel. On EVM the ATR hash is the channel configuration's salt, which the channel id commits to and every signature signs; on Solana it is the opening transaction's one memo; on Cloudflare it rides the echoed extensions.legalContext of each request, with no channel. |
@integraledger/lcp/x402-exact-solana | The x402/exact/solana pairing: the ATR hash placed as the option's extra.memo in LCP string form, written by the payer as the transaction's one Memo instruction, read back from the signed message, and read from the settlement. |
@integraledger/lcp/x402-exact-stellar | The x402/exact/stellar pairing: the ATR hash advertised in the challenge's extensions.legalContext, and its first 8 bytes carried as the muxed id of the option's payTo, which the payer signs as the Soroban transfer's to. |
@integraledger/lcp/x402-exact-xrpl | The x402/exact/xrpl pairing: the ATR hash's LCP string placed as the option's extra.invoiceId, whose SHA-256 the payer signs as the Payment's InvoiceID, read back from the signed blob, and settlement read by the blob's hash. |
@integraledger/lcp/x402-upto-solana | The x402/upto/solana pairing: the ATR hash placed as the option's extra.memo in LCP string form, written by the payer as the one Memo instruction of the transaction that opens a one-request payment channel escrowing the signed maximum; read back from that transaction, and settlement read from the opening. |
@integraledger/lcp/xrpl | XRP Ledger rail pieces: the signed Payment blob, its InvoiceID carrying the ATR hash in each scheme's form, the transaction hash computed from the blob, and settlement read by that hash through a bounded reader. |
@integraledger/lcp
The core: assembling an ATR and hashing its exact bytes, comparing hashes, the hash's string and structured forms, the https-link rule, and the registry of every pairing (BINDINGS, pairingOf, canonicalTx).
import { assemble, BINDINGS, canonicalJson, … } from "@integraledger/lcp";Values (22): assemble, BINDINGS, canonicalJson, canonicalTx, digestJson, fromLcpString, fromLegalContext, fromRawBytes, hash, hashEquals, isHashWithNonHttpsLink, isHttpsLink, isOtherSchemeLink, jsonWithinDepth, MAX_JSON_DEPTH, newAtrId, pairingOf, pairingsOfPlaced, parseJson, toLcpString, toLegalContext, toRawBytes.
Types (17): AtrHash, Binding, CarrierAfterH, CoreRefusal, Json, LcpPattern, MppBinding, PairingId, PairingOn, Presented, PresentedOn, PushMode, Refusal, Surface, TieRequestOn, TxSpelling, X402Binding.
@integraledger/lcp/a2a
The LCP extension for A2A: the ATR hash and the link to the seller's copy delivered in a Task's metadata, keyed by the extension's URI. A2A signs nothing per transaction, so this is a carrier and exports no pairing. Pure; no I/O.
import { A2A_EXTENSION_URIS, agentExtension, binding, … } from "@integraledger/lcp/a2a";Values (7): A2A_EXTENSION_URIS, agentExtension, binding, delivery, place, read, requested.
Types (2): A2aAgentExtension, A2aTask.
@integraledger/lcp/ack
ACK Payment Requests and receipts, and the pairing ack/payment-request: the ATR hash as the id of the seller-signed Payment Request, in LCP's string form, with the link beside the request in the 402 body. ACK defines no payer signature, so build and bound always refuse. Pure; no I/O. No token or receipt signature is verified here.
import { fromReceipt, paymentRequest, tie } from "@integraledger/lcp/ack";Pairings: ack/payment-request.
Values (3): fromReceipt, paymentRequest, tie.
Types (3): AckBody, AckPaymentOption, AckValues.
@integraledger/lcp/acp
ACP checkout sessions and delegate-payment allowances, and the pairings acp/checkout/delegated and acp/checkout/undelegated: the ATR hash as the checkout session's id, with the link beside it in the session's metadata.legal_context, and, where the handler requires delegate_payment, as the allowance's checkout_session_id. Pure; no I/O. Nothing here signs or verifies a signature.
import { delegated, issuedDigest, METADATA_KEY, … } from "@integraledger/lcp/acp";Pairings: acp/checkout/delegated, acp/checkout/undelegated.
Values (5): delegated, issuedDigest, METADATA_KEY, tie, undelegated.
Types (7): AcpBinding, AcpChoice, Allowance, HandlerOption, Presented, Session, Unsigned.
@integraledger/lcp/ap2
AP2 v0.2 checkouts and closed Checkout Mandates, and the ap2/checkout-mandate pairing: the ATR hash as the legalContext member of the merchant-signed checkout_jwt payload, committed to by the buyer's closed Checkout Mandate through checkout_hash, and read back from inside the mandate. Nothing here verifies a signature.
import { CHECKOUT_VCT, checkoutBinding, checkoutJwtOf, … } from "@integraledger/lcp/ap2";Pairings: ap2/checkout-mandate.
Values (8): CHECKOUT_VCT, checkoutBinding, checkoutJwtOf, checkoutMandate, issuedDigest, jwsPayload, readMandate, tie.
Types (7): Ap2Offer, CheckoutOption, Jws, MandateContent, Payload, Presented, Unsigned.
@integraledger/lcp/aptos
Aptos, and the x402/exact/aptos pairing, served at the seller-tied level: no field of a standard Aptos transfer carries the ATR hash, so the hash is advertised in the challenge, read back from the echoed extension, and tied to the payment by the seller's claim. The settlement is found by the payer's sender and sequence number, and identified by a digest of the transfer the payer signed.
import { aptosIdDigest, aptosOptionCheck, aptosPairingOf, … } from "@integraledger/lcp/aptos";Pairings: x402/exact/aptos.
Values (7): aptosIdDigest, aptosOptionCheck, aptosPairingOf, aptosStatus, committedInstrument, decodeAptosTx, exactAptos.
Types (8): AptosCommitted, AptosInstrument, AptosNetwork, AptosPaymentPayload, AptosReader, AptosRef, AptosStatus, AptosUnsigned.
@integraledger/lcp/avm
Algorand: the pairing x402/exact/algorand, in which the payer signs an asset transfer whose note is the ATR hash's LCP string, and the settlement read from an Indexer by the transaction id computed from the signed bytes. algosdk is an optional peer: this module loads it when present, and without it the pairing serves no option.
import { avmCarrier, avmPairingOf, avmRecover, … } from "@integraledger/lcp/avm";Pairings: x402/exact/algorand.
Values (7): avmCarrier, avmPairingOf, avmRecover, avmStatus, exactAvm, MSGPACK_MAX_DEPTH, msgpackWithinCaps.
Types (8): AlgorandNetwork, AvmParams, AvmPaymentPayload, AvmPresented, AvmReader, AvmRef, AvmStatus, AvmUnsigned.
@integraledger/lcp/card
The card entry point: the ATR hash on a card checkout, on three paths.
import { disclosureDigest, pairingsOf, sellerReference, … } from "@integraledger/lcp/card";Pairings: card/mastercard-vi/autonomous, card/mastercard-vi/immediate, card/seller-reference, card/visa-tap.
Values (8): disclosureDigest, pairingsOf, sellerReference, TAP_FIELD, tie, viAutonomous, viImmediate, visaTap.
Types (10): CardOption, CardPairing, CardPairingId, CardScheme, CardValues, TapPresented, TapUnsigned, ViAutonomous, ViImmediate, ViUnsigned.
@integraledger/lcp/cardano
Cardano, and the x402/exact/cardano pairing: the ATR hash as a CIP-20 message (metadata label 674) that the payer's signed body commits to through auxiliary_data_hash. The transaction id is the Blake2b-256 of the body as received, so settlement is read by an id fixed before any money moves.
import { auxiliaryData, cardanoOptionCheck, cardanoPairingOf, … } from "@integraledger/lcp/cardano";Pairings: x402/exact/cardano.
Values (8): auxiliaryData, cardanoOptionCheck, cardanoPairingOf, cardanoRecover, cardanoStatus, decodeCardanoTx, exactCardano, LCP_MARKER.
Types (9): CardanoNetwork, CardanoOnChain, CardanoPayload, CardanoPaymentPayload, CardanoReader, CardanoRef, CardanoStatus, CardanoTx, CardanoUnsigned.
@integraledger/lcp/casper
CEP-3009 on Casper and the x402/exact/casper pairing: the ATR hash as the authorization's 32-byte nonce, written by the buyer's signer, read back from what the payer signed, and read from the executed call's arguments.
import { CASPER_DOMAIN_TYPEHASH, casperIdDigest, casperOption, … } from "@integraledger/lcp/casper";Pairings: x402/exact/casper.
Values (7): CASPER_DOMAIN_TYPEHASH, casperIdDigest, casperOption, casperRecover, casperStatus, cep3009TypedData, exactCasper.
Types (12): CasperAddress, CasperAuthorization, CasperCall, CasperChoice, CasperNetwork, CasperPaymentPayload, CasperReader, CasperRef, CasperStatus, CasperUnsigned, Cep3009TypedData, PackageHash.
@integraledger/lcp/ccd
Concordium and the x402/exact/ccd pairing: the ATR hash in LCP's string form, as a CBOR text string, in the memo of the one transfer the sender signs; read back from the signed transaction, and read from the finalized transfer event.
import { accountBytes, ccdIdDigest, ccdMemo, … } from "@integraledger/lcp/ccd";Pairings: x402/exact/ccd.
Values (9): accountBytes, ccdIdDigest, ccdMemo, ccdOption, ccdRecover, ccdStatus, exactCcd, memoCarrier, pltMemo.
Types (9): CcdChoice, CcdItem, CcdNetwork, CcdPaymentPayload, CcdReader, CcdRef, CcdStatus, CcdTransfer, CcdUnsigned.
@integraledger/lcp/discovery
The discovery document of LCP §2, served at /.well-known/legal-context.json. parse reads one; emit writes one, members in the order of LCP §2.4–§2.5's tables, absent members omitted, no whitespace, UTF-8. Both check only what LCP §2 states. Neither throws or does I/O.
import { emit, MAX_DOCUMENT_BYTES, parse, … } from "@integraledger/lcp/discovery";Values (4): emit, MAX_DOCUMENT_BYTES, parse, WELL_KNOWN_PATH.
Types (1): LegalContextDocument.
@integraledger/lcp/evm
EIP-3009 on eip155 chains: the typed data a payer signs, the identity digest of a transfer, and the settlement read from the token's AuthorizationUsed event. Nothing here knows x402.
import { AUTHORIZATION_USED_TOPIC, authorizationIdDigest, bindSalt, … } from "@integraledger/lcp/evm";Values (32): AUTHORIZATION_USED_TOPIC, authorizationIdDigest, bindSalt, carriesBinding, decodePermissionContext, DELEGATION_MANAGER, DELEGATION_MANAGER_CHAINS, eip3009Recover, eip3009Status, eip3009TypedData, ESCROW, evmStatus, EXACT_PERMIT2_PROXY, isLog, isReceipt, PAYMENT_AUTHORIZED_TOPIC, PAYMENT_INFO_TYPEHASH, paymentHash, PERMIT2, permit2TypedData, ReaderError, RECEIVE_POLICY_GUARD, receiveTypedData, REDEEMED_DELEGATION_TOPIC, redeemedLeafRecover, SALT_BINDING_TYPEHASH, settledAt, TRANSFER_TOPIC, TRANSFER_WITH_AUTHORIZATION_TYPEHASH, transferDigest, transferParts, UPTO_PERMIT2_PROXY.
Types (18): Delegation, Eip155, Eip3009Ref, Eip3009TypedData, EvmBreadthStatus, EvmLog, EvmReader, EvmReceipt, EvmRef, EvmStatus, EvmTransaction, EvmTxRef, Field, Hex, PaymentInfo, Permit2TypedData, ReceiveTypedData, TransferIdentity.
@integraledger/lcp/hedera
Hedera: the transaction wire form read and written by hand (protobuf, five messages), the Mirror Node settlement read, and the x402 pairings x402/exact/hedera (the ATR hash as the signed body memo) and x402/exact/hedera/transfer-executor (the hash advertised in the challenge only); and MPP's mpp/charge/hedera, whose signed memo is MPP's attribution memo, its nonce keccak256 of the challenge id that carries the hash.
import { APPROVE_SELECTOR, approveCalldata, CHANNEL_CLOSED_TOPIC, … } from "@integraledger/lcp/hedera";Pairings: mpp/charge/hedera, x402/exact/hedera, x402/exact/hedera/transfer-executor.
Values (22): APPROVE_SELECTOR, approveCalldata, CHANNEL_CLOSED_TOPIC, CHANNEL_OPENED_TOPIC, chargeHedera, decodeHederaTx, ESCROW_OPEN_SELECTOR, exactHedera, exactHederaExecutor, executorStatus, HEDERA_CHAIN_IDS, HEDERA_NETWORKS, hederaChannelId, hederaChargeRequest, hederaIdDigest, hederaNetworkOfChainId, hederaPairingOf, hederaStatus, hederaVoucher, openCalldata, txIdMirror, txIdText.
Types (20): ExecutorPayload, ExecutorPaymentPayload, ExecutorRef, HederaBody, HederaChannelConfig, HederaCloseRef, HederaEvmReader, HederaLandedCharge, HederaNetwork, HederaPayload, HederaPaymentPayload, HederaReader, HederaRef, HederaSessionRef, HederaStatus, HederaTxId, HederaUnsigned, HederaVoucherTypedData, MirrorEntry, MppHederaRequest.
@integraledger/lcp/lightning
BOLT11 invoices and the Lightning pairings on x402 and MPP. On x402/exact/lnbtc the seller's node writes the ATR hash as the invoice's m field and signs it; on x402/exact/lnbtc/invoice-named the invoice carries no hash and the ATR's x402 slot names the invoice instead. On MPP the seller's node writes the ATR hash as the invoice's description hash h. The payer signs nothing; it pays the invoice.
import { atrNamesInvoice, chargeLightning, decodeBolt11, … } from "@integraledger/lcp/lightning";Pairings: mpp/charge/lightning, mpp/session/lightning, x402/exact/lnbtc, x402/exact/lnbtc/invoice-named.
Values (8): atrNamesInvoice, chargeLightning, decodeBolt11, exactLnbtc, exactLnbtcNamed, invoiceH, lnbtcPairingOf, sessionLightning.
Types (8): Bolt11, LnMppChoice, LnMppPairing, LnMppUnsigned, LnNetwork, LnPaymentPayload, LnRef, LnUnsigned.
@integraledger/lcp/mpp
The mpp entry point: MPP's challenge pieces and its pairings. The charge pairings here are EVM authorization (the signed nonce is keccak256(id ‖ realm)), EVM permit2 (the signed witness carries that value), EVM transaction and hash (nothing signed carries H), and Tempo pull and push (the signed transferWithMemo carries MPP's attribution memo, whose nonce is keccak256 of the id). The session and subscription pairings are re-exported from their module.
import { attributionMemo, CARRIER, challengeBound, … } from "@integraledger/lcp/mpp";Pairings: mpp/charge/card, mpp/charge/evm/authorization, mpp/charge/evm/hash, mpp/charge/evm/permit2, mpp/charge/evm/transaction, mpp/charge/hedera, mpp/charge/nearintents, mpp/charge/solana, mpp/charge/stellar, mpp/charge/stripe, mpp/charge/tempo/memo, mpp/charge/tempo/push, mpp/charge/usdc/evm, mpp/charge/usdc/gateway, mpp/charge/usdc/solana, mpp/charge/usdc/stacks, mpp/charge/xrpl, mpp/session/evm, mpp/session/hedera, mpp/session/solana, mpp/session/tempo, mpp/session/xrpl, mpp/subscription/stripe, mpp/subscription/tempo.
Values (54): attributionMemo, CARRIER, challengeBound, challengeH, challengeHash, challengeId, chargeCard, chargeHedera, chargeNearIntents, chargeSolana, chargeStellar, chargeStripe, chargeUsdcEvm, chargeUsdcGateway, chargeUsdcSolana, chargeUsdcStacks, chargeXrpl, checkAttribution, EVM_CLOSE_SELECTORS, evmAuthorization, evmChannelId, evmHash, evmPermit2, evmTransaction, gatewayAccount, issuedDigest, keySearch, LEGAL_CONTEXT_METADATA_KEY, MPP_BINDINGS, mppSvmCarrier, network, pairingsOf, pairingsOfPlaced, parseChallenges, place, problem, read, sessionEvm, sessionHedera, sessionResume, sessionSolana, sessionStatus, sessionTempo, sessionXrpl, subscriptionStripe, subscriptionTempo, tempoMemo, tempoPush, tie, transferPresent, USDC_CARRIER, usdcGatewaySalt, usdcNonce, usdcRequestHash.
Types (34): GatewayPreimage, GatewaySaltInput, HederaLandedCredential, HederaSessionUnsigned, LandedCredential, MppChallenge, MppChoice, MppCredential, MppIntent, MppMethod, MppPairing, MppUnsigned, RailSessionChoice, RailSessionUnsigned, ReceiveTypedData, SessionChoice, SessionRef, SessionStatus, SessionUnsigned, SessionWithin, SessionWithinUnsigned, SolanaChargeChoice, SolanaChargeUnsigned, SolanaSessionUnsigned, StacksChargeChoice, StellarChargeChoice, StellarChargeUnsigned, StripeSubscriptionReceipt, UsdcUnsigned, VoucherTypedData, WithinSigningRequest, XrplChargeChoice, XrplChargeUnsigned, XrplSessionUnsigned.
@integraledger/lcp/near
NEAR: the pairing x402/exact/near. The payer signs a NEP-366 delegate action for one NEP-141 ft_transfer whose memo argument is the ATR hash's LCP string; a facilitator's relayer submits it. Settlement is read from the relayed transaction's receipts through a bounded reader.
import { exactNear, FT_TRANSFER_GAS, ftTransferArgs, … } from "@integraledger/lcp/near";Pairings: x402/exact/near.
Values (9): exactNear, FT_TRANSFER_GAS, ftTransferArgs, nearCarrier, nearLapsed, nearRecover, nearStatus, NEP461_DELEGATE, pairingOf.
Types (8): NearChoice, NearNetwork, NearOutcome, NearPayment, NearReader, NearRef, NearStatus, NearUnsigned.
@integraledger/lcp/polkadot
Polkadot Asset Hub: the profile pairing x402/exact/polkadot/lcp-assets-remark, in which the payer signs one extrinsic whose call is utility.batch_all([assets.transfer_keep_alive, system.remark_with_event]) with the ATR hash's LCP string as the remark; the settlement is read by block and index through Sidecar. SCALE is encoded and decoded here for these shapes only.
import { CALL, decodeProfileCall, encodeProfileCall, … } from "@integraledger/lcp/polkadot";Pairings: x402/exact/polkadot/lcp-assets-remark.
Values (13): CALL, decodeProfileCall, encodeProfileCall, exactPolkadotRemark, extrinsicHash, LCP_ASSETS_REMARK, POLKADOT_NETWORKS, polkadotLocate, polkadotPairingOf, polkadotRecover, polkadotStatus, splitSigned, ss58Decode.
Types (9): PolkadotExtrinsic, PolkadotNetwork, PolkadotPayload, PolkadotPaymentPayload, PolkadotReader, PolkadotRef, PolkadotStatus, PolkadotUnsigned, ProfileCall.
@integraledger/lcp/stacks
Stacks rail pieces: the transaction id, the reader a settlement read goes through, the reading of a SIP-010 transfer whose memo argument is the ATR hash's 32 bytes, and the zero-party recovery of that hash from a mined transaction.
import { MEMO_PREFIX, memoArgument, memoHash, … } from "@integraledger/lcp/stacks";Values (6): MEMO_PREFIX, memoArgument, memoHash, stacksRecover, stacksStatus, stacksTxid.
Types (6): StacksLanded, StacksMempool, StacksNetwork, StacksReader, StacksRef, StacksStatus.
@integraledger/lcp/starknet
Starknet: the pairing x402/exact/starknet. The payer signs a SNIP-12 OutsideExecution (SNIP-9 v2) authorizing one token transfer; its Nonce is the ATR hash's low 250 bits. Settlement is read from the executed call's trace through a bounded reader. The chain holds 250 of the hash's bits, so a holder of the ATR confirms the hash from it but nothing recovers the hash.
import { ANY_CALLER, chainIdFelt, exactStarknet, … } from "@integraledger/lcp/starknet";Pairings: x402/exact/starknet.
Values (13): ANY_CALLER, chainIdFelt, exactStarknet, FELT_P, MASK_250, outsideExecution, pairingOf, SELECTOR_EXECUTE_FROM_OUTSIDE_V2, SELECTOR_TRANSFER, snNonce, starknetIdDigest, starknetLandedNonce, starknetStatus.
Types (11): Felt, Field, OutsideExecutionTypedData, StarknetInvocation, StarknetNetwork, StarknetPayment, StarknetReader, StarknetReceipt, StarknetRef, StarknetStatus, StarknetUnsigned.
@integraledger/lcp/stellar
Stellar rail pieces: the payer-signed Soroban transfer, its muxed to whose 8-byte id is the ATR hash's first 8 bytes, the digest of the signed authorization entry, and settlement read through a bounded reader.
import { decodeStellarTx, muxedFor, muxedId, … } from "@integraledger/lcp/stellar";Values (11): decodeStellarTx, muxedFor, muxedId, PASSPHRASE, SCVAL_MAX_DEPTH, SCVAL_MAX_ELEMENTS, scValsWithinCaps, stellarLocate, stellarStatus, transferEventOf, transferEventTopics.
Types (6): StellarNetwork, StellarPayment, StellarReader, StellarRef, StellarStatus, StellarUnsigned.
@integraledger/lcp/sui
Sui, and the x402/exact/sui pairing: the ATR hash as the one Pure input of the payer's programmable transaction that no command uses. The payer's signature covers it, the rail executes the transaction unchanged, and the hash stays on chain in the transaction's input list. Settlement is read by the transaction digest, which the signed bytes fix before any money moves. BCS decoding and base58 use @mysten/sui, loaded once when this module is; without it every function that needs it refuses sui/peer-missing, and status reads as pending unreadable.
import { decodeSuiTx, exactSui, suiCarrier, … } from "@integraledger/lcp/sui";Pairings: x402/exact/sui.
Values (7): decodeSuiTx, exactSui, suiCarrier, suiOptionCheck, suiPairingOf, suiRecover, suiStatus.
Types (9): SuiExecuted, SuiNetwork, SuiPayload, SuiPaymentPayload, SuiReader, SuiRef, SuiStatus, SuiTx, SuiUnsigned.
@integraledger/lcp/svm
Solana rail pieces: the wire transaction, its one Memo instruction carrying the ATR hash in LCP string form, the digest of the message the payer signed, and settlement read through a bounded reader.
import { ATA_PROGRAM, buildChannelMessage, buildSvmMessage, … } from "@integraledger/lcp/svm";Values (31): ATA_PROGRAM, buildChannelMessage, buildSvmMessage, channelInstruction, channelPda, channelVoucherMessage, COMPUTE_BUDGET, decodeSvmTx, findPda, MEMO_V3, MEMO_V4, OPEN_DISCRIMINATOR, openInstructionData, openOf, PAYMENT_CHANNELS, RENT_SYSVAR, SEAL_DISCRIMINATOR, sessionProof, sessionSalt, SETTLE_AND_SEAL_DISCRIMINATOR, solanaVoucher, svmCarrier, svmChannelStatus, svmCloseStatus, svmDigest, svmLocate, svmRecover, svmStatus, SYSTEM, TOKEN, TOKEN_2022.
Types (12): ChannelBuildInput, ChannelIx, ChannelStatus, SolanaNetwork, SvmBuildInput, SvmCloseRef, SvmCloseStatus, SvmLanded, SvmReader, SvmRef, SvmStatus, SvmTx.
@integraledger/lcp/tempo
Tempo rail pieces: the 0x76 transaction's calls, the TIP-20 transferWithMemo calldata, the TIP-20 channel reserve's descriptor and ids, and the account keychain's key authorizations. Tempo serves eip155 JSON-RPC, so the reader is EvmReader. Nothing here throws on a caller's value; refusals are values.
import { ACCESS_KEY_SPEND_TOPIC, ACCOUNT_KEYCHAIN, CHANNEL_CLOSED_V1_TOPIC, … } from "@integraledger/lcp/tempo";Values (23): ACCESS_KEY_SPEND_TOPIC, ACCOUNT_KEYCHAIN, CHANNEL_CLOSED_V1_TOPIC, CHANNEL_CLOSED_V2_TOPIC, CHANNEL_OPENED_V1_TOPIC, CHANNEL_OPENED_V2_TOPIC, decodeKeyAuthorization, decodeTempoTx, encodeKeyAuthorization, expiringNonceHash, KEY_AUTHORIZATION_WITNESS_TOPIC, KEY_AUTHORIZED_TOPIC, KEY_REVOKED_TOPIC, keyAccount, memoCalldata, OPEN_V1_SELECTOR, OPEN_V2_SELECTOR, RECEIVE_POLICY_GUARD, tempoChannelId, TIP20_CHANNEL_RESERVE, TRANSFER_WITH_MEMO_SELECTOR, TRANSFER_WITH_MEMO_TOPIC, witnessRecover.
Types (4): KeyAuthorizationUnsigned, TempoCall, TempoDescriptor, TempoKeyAuthorization.
@integraledger/lcp/tron
Tron: the transaction pieces (protobuf for the fields the profile uses, base58check addresses, the transaction id) and the pairing x402/exact/tron/lcp-trc20-memo, whose payer-signed TRC-20 transfer carries the ATR hash as its memo, raw_data.data, in LCP string form. Settlement is read by transaction id through a bounded reader.
import { decodeTronTx, encodeTronRaw, exactTronMemo, … } from "@integraledger/lcp/tron";Pairings: x402/exact/tron/lcp-trc20-memo.
Values (14): decodeTronTx, encodeTronRaw, exactTronMemo, LCP_TRC20_MEMO, pairingOf, TRANSFER_SELECTOR, TRANSFER_TOPIC, TRIGGER_SMART_CONTRACT, TRIGGER_URL, tronAddress, tronCarrier, tronRecover, tronStatus, tronTxId.
Types (9): TronChoice, TronInfo, TronNetwork, TronPayment, TronRaw, TronReader, TronRef, TronStatus, TronUnsigned.
@integraledger/lcp/tvm
TON: the pairing x402/exact/tvm. The ATR hash rides in the scheme's extra.forwardPayload as a TEP-74 text comment holding its LCP string. The payer's W5 wallet signs a request whose one Jetton transfer carries that payload; settlement is read from the Jetton wallets' transactions through a bounded reader.
import { exactTvm, lcpComment, OP, … } from "@integraledger/lcp/tvm";Pairings: x402/exact/tvm.
Values (8): exactTvm, lcpComment, OP, pairingOf, tvmCarrier, tvmRecover, tvmStatus, tvmTxId.
Types (9): TonCell, TonTx, TvmChoice, TvmNetwork, TvmPayment, TvmReader, TvmRef, TvmStatus, TvmUnsigned.
@integraledger/lcp/ucp
UCP checkouts and bookings, and four pairings: the ATR hash and link as one links[] entry of type legal_context in the checkout response. The ap2-mandate pairings read the hash from the checkout inside the buyer's checkout mandate, after AP2's checkout_hash check; the unsigned pairings have nothing signed to read. Nothing here takes a key, signs or verifies a signature.
import { AGREEMENT_LINK_TYPE, ap2Mandate, bookingAp2Mandate, … } from "@integraledger/lcp/ucp";Pairings: ucp/booking/ap2-mandate, ucp/booking/unsigned, ucp/checkout/ap2-mandate, ucp/checkout/unsigned.
Values (9): AGREEMENT_LINK_TYPE, ap2Mandate, bookingAp2Mandate, bookingUnsigned, issuedDigest, legalContextLink, LINK_TYPE, tie, unsigned.
Types (7): BookingOption, Checkout, CheckoutOption, Link, UcpBinding, UcpOffer, Unsigned.
@integraledger/lcp/x402
x402 v2 documents and the x402/exact/eip155/eip3009 pairing: the ATR hash advertised in the challenge's extensions.legalContext, signed by the payer as the EIP-3009 nonce, read back from the payment, and read from the settlement.
import { advertiseFor, authCaptureEip3009, authCapturePermit2, … } from "@integraledger/lcp/x402";Pairings: x402/auth-capture/eip155/eip3009, x402/auth-capture/eip155/permit2, x402/exact/eip155/eip3009, x402/exact/eip155/erc7710, x402/exact/eip155/erc7710-salt, x402/exact/eip155/permit2, x402/upto/eip155/permit2.
Values (25): advertiseFor, authCaptureEip3009, authCapturePermit2, chosen, exactEip3009, exactErc7710, exactErc7710Salt, exactPermit2, filterOf, issuedDigest, LEGAL_CONTEXT, LEGAL_CONTEXT_SCHEMA, legalContextOf, offeredAt, optionPairingOf, pairingOfPayment, paymentWith, presentedWith, readFor, requestCommitment, tie, uptoPermit2, withExtra, withOption, withoutExtra.
Types (20): Eip3009Authorization, Eip3009Payment, Eip3009TypedData, HttpRequest, LcpPattern, OptionFilter, PaymentPayload, PaymentRequired, PaymentRequirements, Permit2Authorization, RequestCommitment, Unsigned, X402Advertise, X402Choice, X402Offer, X402PairingId, X402Payment, X402Read, X402SchemePayload, X402Unsigned.
@integraledger/lcp/x402-batch-settlement
x402 batch-settlement: one ATR per channel. On EVM the ATR hash is the channel configuration's salt, which the channel id commits to and every signature signs; on Solana it is the opening transaction's one memo; on Cloudflare it rides the echoed extensions.legalContext of each request, with no channel.
import { BATCH_SETTLEMENT, batchChannelCreated, batchChannelId, … } from "@integraledger/lcp/x402-batch-settlement";Pairings: x402/batch-settlement/cloudflare, x402/batch-settlement/eip155, x402/batch-settlement/solana.
Values (14): BATCH_SETTLEMENT, batchChannelCreated, batchChannelId, batchCloudflare, batchEvm, batchSvm, CHANNEL_CONFIG_TYPEHASH, CHANNEL_CREATED_TOPIC, DEPOSITED_TOPIC, ERC3009_DEPOSIT_COLLECTOR, erc3009DepositNonce, pairingOf, PERMIT2_DEPOSIT_COLLECTOR, VOUCHER_TYPEHASH.
Types (11): BatchEvmOpen, BatchPairingId, BatchPaymentPayload, BatchSvmOpen, BatchUnsigned, BatchWithin, ChannelConfig, ChannelMembers, CloudflarePaymentPayload, Eip712Request, SigningRequest.
@integraledger/lcp/x402-exact-solana
The x402/exact/solana pairing: the ATR hash placed as the option's extra.memo in LCP string form, written by the payer as the transaction's one Memo instruction, read back from the signed message, and read from the settlement.
import { exactSvm, pairingOf } from "@integraledger/lcp/x402-exact-solana";Pairings: x402/exact/solana.
Values (2): exactSvm, pairingOf.
Types (3): SvmChoice, SvmPaymentPayload, SvmUnsigned.
@integraledger/lcp/x402-exact-stellar
The x402/exact/stellar pairing: the ATR hash advertised in the challenge's extensions.legalContext, and its first 8 bytes carried as the muxed id of the option's payTo, which the payer signs as the Soroban transfer's to.
import { exactStellar, pairingOf } from "@integraledger/lcp/x402-exact-stellar";Pairings: x402/exact/stellar.
Values (2): exactStellar, pairingOf.
Types (2): StellarChoice, StellarPaymentPayload.
@integraledger/lcp/x402-exact-xrpl
The x402/exact/xrpl pairing: the ATR hash's LCP string placed as the option's extra.invoiceId, whose SHA-256 the payer signs as the Payment's InvoiceID, read back from the signed blob, and settlement read by the blob's hash.
import { exactXrpl, pairingOf } from "@integraledger/lcp/x402-exact-xrpl";Pairings: x402/exact/xrpl.
Values (2): exactXrpl, pairingOf.
Types (2): XrplChoice, XrplPaymentPayload.
@integraledger/lcp/x402-upto-solana
The x402/upto/solana pairing: the ATR hash placed as the option's extra.memo in LCP string form, written by the payer as the one Memo instruction of the transaction that opens a one-request payment channel escrowing the signed maximum; read back from that transaction, and settlement read from the opening.
import { pairingOf, uptoSvm } from "@integraledger/lcp/x402-upto-solana";Pairings: x402/upto/solana.
Values (2): pairingOf, uptoSvm.
Types (3): UptoSvmChoice, UptoSvmPayload, UptoSvmPaymentPayload.
@integraledger/lcp/xrpl
XRP Ledger rail pieces: the signed Payment blob, its InvoiceID carrying the ATR hash in each scheme's form, the transaction hash computed from the blob, and settlement read by that hash through a bounded reader.
import { cancelAfterOf, decodeBlob, mppInvoiceId, … } from "@integraledger/lcp/xrpl";Values (11): cancelAfterOf, decodeBlob, mppInvoiceId, x402InvoiceId, XRPL_MAX_DEPTH, XRPL_MAX_FIELDS, xrplChannelId, xrplClaim, xrplCloseStatus, xrplOpenStatus, xrplStatus.
Types (9): XrplCloseRef, XrplCloseStatus, XrplLanded, XrplNetwork, XrplReader, XrplRef, XrplStatus, XrplTxJson, XrplUnsigned.
Last updated on