---
name: buy-from-hollin-kitchen-garden
description: "Buy from Hollin Kitchen Garden (https://hollin-garden.integraledger.com), a shop that sells to agents on test networks (Base Sepolia (`eip155:84532`, the default), Arc testnet (`eip155:5042002`), Avalanche® Fuji (`eip155:43113`), Hedera testnet (`hedera:testnet`), Stellar testnet (`stellar:testnet`), XRPL Testnet (`xrpl:1`), Ethereum Sepolia (`eip155:11155111`), Arbitrum Sepolia (`eip155:421614`), OP Sepolia (`eip155:11155420`), Polygon Amoy (`eip155:80002`), Unichain Sepolia (`eip155:1301`), World Chain Sepolia (`eip155:4801`), Ink Sepolia (`eip155:763373`), Celo Sepolia (`eip155:11142220`), Monad testnet (`eip155:10143`), Sei testnet (`eip155:1328`), Sonic testnet (`eip155:14601`), EDGE testnet (`eip155:33431`), Morph Hoodi (`eip155:2910`), Codex testnet (`eip155:812242`), Cronos testnet (`eip155:338`), Pharos Atlantic (`eip155:688689`), Plasma testnet (`eip155:9746`), Plume testnet (`eip155:98867`), XDC Apothem (`eip155:51`) and ZKsync Sepolia (`eip155:300`)), in test USDC: find an offer, read its terms, c"
---

# Buy from Hollin Kitchen Garden

A small market garden in Shropshire: seed, sowing advice and garden visits for people who grow their own. For demonstration only. This transaction runs on a test network with test money, and has no value.

Hollin Kitchen Garden (https://hollin-garden.integraledger.com) sells to agents. Every purchase is a real transaction on a test network, paid in its test USDC to the shop's own seller account there; each cent of a price is paid as one millionth of a USDC. Each checkout is paid on one network, which the buyer names as a CAIP-2 id: `network` in the JSON body of the request to `/buy/<offer>` (and to the test checkout), beside `quote` and `with`; `network` in the `buy` tool's arguments and in an A2A buy data part. In UCP's checkout, the platform's profile declares the networks it pays on in its declaration of the x402 handler (`config.networks`), and the checkout is paid on one the shop accepts too: `eip155:84532` when it is one of them. With none named, the checkout is paid on `eip155:84532`. The networks: Base Sepolia (`eip155:84532`, the default), Arc testnet (`eip155:5042002`), Avalanche® Fuji (`eip155:43113`), Hedera testnet (`hedera:testnet`), Stellar testnet (`stellar:testnet`), XRPL Testnet (`xrpl:1`), Ethereum Sepolia (`eip155:11155111`), Arbitrum Sepolia (`eip155:421614`), OP Sepolia (`eip155:11155420`), Polygon Amoy (`eip155:80002`), Unichain Sepolia (`eip155:1301`), World Chain Sepolia (`eip155:4801`), Ink Sepolia (`eip155:763373`), Celo Sepolia (`eip155:11142220`), Monad testnet (`eip155:10143`), Sei testnet (`eip155:1328`), Sonic testnet (`eip155:14601`), EDGE testnet (`eip155:33431`), Morph Hoodi (`eip155:2910`), Codex testnet (`eip155:812242`), Cronos testnet (`eip155:338`), Pharos Atlantic (`eip155:688689`), Plasma testnet (`eip155:9746`), Plume testnet (`eip155:98867`), XDC Apothem (`eip155:51`) and ZKsync Sepolia (`eip155:300`). Each purchase has its own agreement, whose SHA-256, H, the payment request carries and the payment is bound to.

## Steps

1. Read https://hollin-garden.integraledger.com/llms.txt: the offers, what each asks for, and every door.
2. Find an offer: `search_catalog`, `lookup_catalog` or `get_product` at https://hollin-garden.integraledger.com/mcp, or the offers in `/llms.txt`.
3. Read its terms: `get_terms` `{offer}`, or https://hollin-garden.integraledger.com/terms.md.
4. If it is open to negotiation and you want another price: `negotiate`, or `POST https://hollin-garden.integraledger.com/negotiate/<offer>` with `{"amount", "text"}`. An accepted price is a quote: name it when you buy.
5. Ask to buy: `POST https://hollin-garden.integraledger.com/buy/<offer>` with `{"quote"?, "with"?, "network"?}`. It answers `402` with `PAYMENT-REQUIRED`, x402 version 2's `PaymentRequired`, base64.
6. Before you sign: its `extensions.legalContext.info` holds `value`, H, and `legalContextUrl`. Fetch the link, hash the exact bytes with SHA-256, and compare with H. Sign only if they match.
7. Pay: send the same request again, its body byte for byte, with `PAYMENT-SIGNATURE`, the signed payment, base64. On Base Sepolia, Arc testnet, Avalanche® Fuji, Ethereum Sepolia, Arbitrum Sepolia, OP Sepolia, Polygon Amoy, Unichain Sepolia, World Chain Sepolia, Ink Sepolia, Celo Sepolia, Monad testnet, Sei testnet, Sonic testnet, EDGE testnet, Morph Hoodi, Codex testnet, Cronos testnet, Pharos Atlantic, Plasma testnet, Plume testnet, XDC Apothem and ZKsync Sepolia: For an offer paid when bought, and for pay later's anchoring payment (x402 `exact`), H is the nonce of the EIP-3009 authorization; for an offer authorised now and collected later (x402 `auth-capture`), H is in the escrow payment's salt. The same offers are offered through MPP too (the `evm` method's `authorization` credential), under an agreement of their own: its challenge's `id` is base64url of its H and the challenge's position, its `opaque` names H, and the EIP-3009 authorization's nonce is keccak256 of the id and the realm. On Hedera testnet: For an offer paid when bought, and for pay later's anchoring payment (x402 `exact` on Hedera), H is the memo of the Hedera transaction the buyer signs, written `lcp:sha256:` followed by H, which any Mirror Node shows by the transaction's id. On Stellar testnet: On Stellar (x402 `exact`), for an offer paid when bought and for pay later's anchoring payment, the challenge's `payTo` is the payee's muxed address (`M…`), whose 64-bit id is the first 8 bytes of H: the payer signs the Soroban `transfer` of USDC to it, and the USDC lands in the payee's own account (`G…`), its transfer event carrying that id. On XRPL Testnet: On XRPL (x402 `exact`), for an offer paid when bought and for pay later's anchoring payment, H rides as the `InvoiceID` of the Payment the buyer signs: the SHA-256 of `lcp:sha256:` followed by H (the option's `extra.invoiceId`). The buyer pays its own fee and spends one of its tickets, Integra's facilitator submits the signed Payment, and the USDC is delivered to the payee's address; the ledger shows the InvoiceID, which anyone holding the agreement can check against H.
8. The answer is `200` with the delivery and `PAYMENT-RESPONSE`, or `202` while the payment is sent and not yet confirmed: send the same payment again. The proof of the purchase is at `https://hollin-garden.integraledger.com/proof/<H>`.

## Other doors to the same checkout

- **x402 over HTTP:** `https://hollin-garden.integraledger.com/buy/<offer>`, its network in the body's `network`, answers `402` with x402 version 2's `PAYMENT-REQUIRED`, which holds the agreement's link; the same request again with `PAYMENT-SIGNATURE` pays it.
- **x402 over MCP:** the tool `buy` at https://hollin-garden.integraledger.com/mcp, its network in `network`, with the payment in `params._meta["x402/payment"]`.
- **UCP's checkout over REST:** `https://hollin-garden.integraledger.com/checkout-sessions` (UCP 2026-08-25), as the profile at https://hollin-garden.integraledger.com/.well-known/ucp declares it, paid through the x402 payment handler `com.integraledger.lcp.x402`, declared once for each network: the checkout is paid on a network your platform's profile declares for the handler too. Your platform's profile goes in `UCP-Agent`.
- **UCP's checkout over MCP:** the tools `create_checkout`, `get_checkout`, `update_checkout`, `complete_checkout`, `cancel_checkout` and `get_order` at https://hollin-garden.integraledger.com/mcp, paid through the same handler. Your platform's profile goes in `meta["ucp-agent"]`.
- **MPP:** on an EVM network, the `402` of `https://hollin-garden.integraledger.com/buy/<offer>` also carries MPP's `evm` `charge` challenge (`WWW-Authenticate: Payment …`), with an agreement of its own, for `sowing-calendar`, `garden-visit`, `members-pass`, `plant-doctor` and `sweet-pea-collection`; `Authorization: Payment <credential>` pays it.
- **A2A:** the agent card at `https://hollin-garden.integraledger.com/.well-known/agent-card.json` (and `/.well-known/agent.json`), in version 0.3 or 1.0 as the `A2A-Version` header asks (none is 0.3); JSON-RPC at `https://hollin-garden.integraledger.com/a2a`, with the skills `search_catalog`, `get_terms`, `negotiate` and `buy`, paid by x402 over A2A (the buy data part `{offer, quote?, with?, network?}`), and UCP's checkout over A2A.
- **AP2 over A2A:** at the same endpoint, on an EVM network, a shopping agent under an AP2 mandate sends `{action: "ap2_checkout", offer, network?}` and is answered with AP2's checkout, a `checkout_jwt` this shop signs whose `legalContext` names the agreement and its agreement step; it pays the agreement step, then completes on the task with AP2's Checkout and Payment Mandates and the x402 payment, whose nonce is keccak256 of the Payment Mandate.
- **The kit's own tools** at https://hollin-garden.integraledger.com/mcp, for an agent with no UCP platform profile: `search_catalog`, `lookup_catalog`, `get_product`, `get_terms`, `negotiate`, `buy`, `test_buy` and `get_purchase`.

## No wallet?

Integra's buyer service pays from a shared test wallet: add https://buyer.integraledger.com/mcp to your agent, then use its `start_checkout`, `check_agreement` and `pay` on https://hollin-garden.integraledger.com.

## Test your agent first

`https://hollin-garden.integraledger.com/test/buy/<offer>` and the tool `test_buy`. A checkout for testing your agent. The hash it advertises has one character changed. An agent that checks signs nothing. Nothing is sold here.
