{"name":"Integra Lens Merch Shop","description":"Official merchandise for Integra Lens and the Legal Context Protocol, printed to order. Paid in test USDC on Base Sepolia. For demonstration only. This transaction runs on a test network with test money, and has no value.","url":"https://integra-lens-merch-live.demos.integraledger.net/a2a","supportedInterfaces":[{"url":"https://integra-lens-merch-live.demos.integraledger.net/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"},{"url":"https://integra-lens-merch-live.demos.integraledger.net/a2a","protocolBinding":"JSONRPC","protocolVersion":"0.3"}],"version":"1.0.0","protocolVersion":"0.3.0","preferredTransport":"JSONRPC","provider":{"organization":"Integra Lens Merch Shop","url":"https://integra-lens-merch-live.demos.integraledger.net"},"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false,"extensions":[{"uri":"https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2","description":"Payment by x402 version 2: the payment-required answer is the challenge the HTTP door sends.","required":false},{"uri":"https://lcp.integraledger.com/a2a/legal-context/v1","description":"The agreement's hash and address in the Task's metadata, to check before paying.","required":false},{"uri":"https://ucp.dev/2026-08-25/specification/reference","description":"UCP's checkout over A2A.","params":{"capabilities":{"dev.ucp.shopping.checkout":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/checkout","schema":"https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"}],"dev.ucp.shopping.discount":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/extensions/discount","schema":"https://ucp.dev/2026-08-25/schemas/shopping/discount.json","extends":"dev.ucp.shopping.checkout"}],"dev.ucp.shopping.fulfillment":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/shopping/extensions/fulfillment","schema":"https://ucp.dev/2026-08-25/schemas/shopping/fulfillment.json","extends":"dev.ucp.shopping.checkout"}],"dev.ucp.common.payment.terms":[{"version":"2026-08-25","spec":"https://ucp.dev/2026-08-25/specification/payment/extensions/terms","schema":"https://ucp.dev/2026-08-25/schemas/common/payment_terms.json","extends":["dev.ucp.shopping.checkout","dev.ucp.shopping.order"]}],"com.integraledger.lcp.with":[{"version":"2026-10-02","spec":"https://lcp.integraledger.com/ucp/with/2026-10-02","schema":"https://lcp.integraledger.com/ucp/with/2026-10-02/schema.json","extends":"dev.ucp.shopping.checkout"}]}},"required":false},{"uri":"https://github.com/google-agentic-commerce/ap2/v1","description":"AP2 v0.2: a merchant-signed checkout_jwt carrying legalContext, completed under a Checkout Mandate.","required":false}]},"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"search_catalog","name":"Find in the catalogue","description":"What Integra Lens Merch Shop sells: every offer, its price, what it delivers, what it asks for, and how it is paid. Ask in words, or send a data part {action: \"search_catalog\", catalog: {query}}; {action: \"lookup_catalog\", catalog: {ids}} and {action: \"get_product\", catalog: {id}} read one or more offers by id. The answer is a message: the products as UCP's catalogue writes them, in a data part, and in words.","tags":["catalogue","search","shopping"],"examples":["What do you sell?","Tell me about Integra Lens t-shirt."],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"get_terms","name":"Read the terms","description":"The seller's terms (https://integra-lens-merch-live.demos.integraledger.net/terms.md) and each offer's terms word for word, with the SHA-256 of their RFC 8785 form, which every agreement names. Send {action: \"get_terms\", offer?}, or ask in words.","tags":["terms","legal"],"examples":["What are your terms?"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"negotiate","name":"Negotiate a price","description":"Negotiate an offer's price with the seller's agent, for an offer whose price is open to negotiation (its catalogue entry says so). Send {action: \"negotiate\", offer, amount: \"7.50\", text, negotiation?}: the amount you propose in dollars and cents, your words, and, to continue, the negotiation you were given. An accepted price stands for 10 minutes, for one purchase: name the negotiation as quote when you buy. In words, one conversation (its contextId) continues its negotiation, and a purchase asked for in it is made at the price agreed there.","tags":["negotiation","price"],"examples":["I would pay 28.00 for Integra Lens t-shirt."],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"buy","name":"Buy an offer","description":"x402 version 2 over A2A (https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2). Send a data part {offer, quote?, with?}: with holds what the offer asks for, and is written into the agreement, which is public. The task answers TASK_STATE_INPUT_REQUIRED (v0.3: input-required) with the x402 PaymentRequired in its status message's metadata (\"x402.payment.required\"), and the agreement's hash and address in the task's metadata under https://lcp.integraledger.com/a2a/legal-context/v1; the payment carries that hash. Fetch the address, hash its bytes with SHA-256 and compare before you sign. Then send the PaymentPayload in a second message on the same taskId, with metadata {\"x402.payment.status\": \"payment-submitted\", \"x402.payment.payload\": …}. The task completes with the delivery and the proof's address in its artifact \"purchase\", and the settle answer in \"x402.payment.receipts\". Paid in test USDC on Base Sepolia (eip155:84532): one cent of the price is one millionth of a USDC. A UCP platform checks out instead with UCP's checkout over A2A (https://ucp.dev/2026-08-25/specification/reference): data parts {action: \"create_checkout\" | \"update_checkout\" | \"get_checkout\" | \"complete_checkout\" | \"cancel_checkout\", \"a2a.ucp.checkout\": …, \"a2a.ucp.checkout.payment\": …}, with its profile in the UCP-Agent header, paid through the handler com.integraledger.lcp.x402. A shopping agent under an AP2 mandate (https://github.com/google-agentic-commerce/ap2/v1) sends {action: \"ap2_checkout\", offer, quote?, with?} for an offer paid now: the task answers with AP2's \"ap2.checkout\", a checkout_jwt this shop signs whose legalContext names the agreement and its agreement step; pay the agreement step, then send on the task \"ap2.mandates.CheckoutMandateSdJwt\", \"ap2.mandates.PaymentMandateSdJwt\" and the x402 payment, whose nonce is keccak256 of the Payment Mandate; the task completes with \"ap2.CheckoutReceipt\".","tags":["buy","checkout","x402","payment","ap2"],"examples":["Buy Integra Lens t-shirt."],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]}],"supportsAuthenticatedExtendedCard":false,"documentationUrl":"https://integra-lens-merch-live.demos.integraledger.net/llms.txt","signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpPU0UiLCJraWQiOiJkMDFmSC1DTzVzUDJUZExPVGdlVndrckt6QS12T0pVdjVUenZPamp1bDljIiwiamt1IjoiaHR0cHM6Ly9pbnRlZ3JhLWxlbnMtbWVyY2gtbGl2ZS5kZW1vcy5pbnRlZ3JhbGVkZ2VyLm5ldC8ud2VsbC1rbm93bi9odHRwLW1lc3NhZ2Utc2lnbmF0dXJlcy1kaXJlY3RvcnkifQ","signature":"5-j-DrpKf7qbrb8IZGxUCVo4EsDvuuI2mRN8XiPoWZ6emgqaZ1_Ep5e01MffcL3rGtV_SOXjHwXCYYUkh5YXTw"}]}