Skip to main content
ForgeMeshField notes ·

An AI Agent Bought a T-Shirt With curl. The Receipt Is on Base.

ag3ntsearch.com listing card: x402 Swag, exemplary agent-native site 2026-09-07, score 100, tags completed end to end, 0 humans involved, $29.94 real money spent, settled on-chain

We built x402swag.com in July as a bet: a store whose checkout is an HTTP endpoint that answers 402, so a person with curl and an agent with a wallet buy a shirt the exact same way. For two months the only paid order was a Stripe sticker sale. Today at 17:53 UTC someone paid 29.94 USDC for the "402 to 200" tee from the command line, the settlement landed on Base two seconds later, and at 18:09 Printify told us it was in production. We wrote this up as "someone with curl." An hour later the buyer published its own receipt: it was an AI agent.

The whole checkout, in 40 seconds

Every request came from curl/8.21.0. No browser, no cookie, no login. Product lookup at 17:52:55, add to cart at 17:53:03, checkout at 17:53:34. The pay endpoint answered 402 Payment Required with the price and our receiving address, the buyer's client signed a USDC authorization for exactly 29.94, retried with the signature in the header, and got 200 OK at 17:53:35 with an order number.

Two seconds later the transfer was in Base block 51,007,135. At the same second our fulfillment plugin pushed the order to Printify. Sixteen minutes after that, Printify's webhook came back with `order:sent-to-production`. A physical object is now being made because an HTTP request paid for it.

40 s

product view → paid order

2 s

200 OK → on-chain block

16 min

paid → in production at Printify

$29.94

$24.99 shirt + $4.95 shipping, in USDC

Update: the buyer was an AI agent, and it published the audit trail

Shortly after this post went out, ag3ntsearch.com listed x402 Swag as its exemplary agent-native site for September 7. ag3ntsearch is an index built by an AI agent called Cairn, running on Claude Opus 5, that probes services by actually using them. Its audit trail for x402swag.com records the run: a human gave it a one-line instruction to buy the black "402 to 200" tee in size S, pay with USDC on Base from the wallet it holds, and not stop to ask for approval. It did the whole thing in six HTTP calls, and its review calls it "the first entry in this corpus to complete."

The agent checked our claim against the chain rather than taking our word for it: its wallet went from 50.00 to 20.06 USDC, matching the order total to the cent, which is the same balance we read from the Base RPC. The ledger is hash-chained and published as JSON, so anyone can recompute it. It also noted that x402 Swag was the only apparel merchant among 14,667 resources it scanned in the Coinbase CDP x402 discovery registry that day, and that the identical signing code that paid here returned HTTP 500 at two other x402 merch storefronts.

One line from its notes is worth every builder's attention: the x402 payment envelope that works is version 1 with the CAIP-2 network string, even where the 402 challenge advertises version 2. That is exactly the v1/v2 client split we documented in August, now confirmed from the buyer's side by a buyer that is not human.

6

HTTP calls, discovery to paid order

0

humans in the loop

100

ag3ntsearch agent-native score

1 of 14,667

apparel merchants in the CDP x402 registry

What actually moved

The settlement is on Basescan: 29.94 USDC from the buyer's wallet to the shop's receiving wallet, status success. Two details in that receipt are the whole point of x402. First, the transaction sender is not the buyer. It is the facilitator's relayer, because x402 uses a signed transfer authorization (EIP-3009): the buyer signs, the facilitator submits and pays the gas. Second, the buyer's wallet has a transaction count of zero. It has never sent a transaction in its life. It was funded, it signed one message, and a shirt is on its way.

That is what a payment rail for software looks like. No gas to manage, no approval transaction, no card network, no chargeback window, no account creation. The buyer could have been a person at a terminal or an agent with a budget. Our server cannot tell, and the protocol does not ask.

Is this a first?

It is the first x402-paid physical order on x402swag.com. Our only earlier paid order, in July, went through Stripe. Beyond our shop we looked and could not find a public record of a completed x402 purchase of a physical good with a transaction hash attached. Rye and AgentCash announced x402 checkout for physical commerce on June 24, 2026 as a capability, without a shipped example, and third-party guides list Coinbase's agent.market as carrying physical items. If you shipped a physical x402 order before September 7 and have the receipt, send it and we will link it here. Until then, this is the first one we can point at, and the buyer's own audit trail says the same thing from its side of the wire.

Why a shirt matters more than 500 API calls

We operate more than 500 paid x402 endpoints and have written up the traffic on them at length. Selling data over 402 is the easy case: the product is bytes, delivery is the response body, and a failed settlement costs nothing. A shirt is the hard case. There is a shipping address to collect, a print partner to pay in dollars, a webhook chain that has to close, and a real cost if the payment turns out to be a phantom.

The payment turned out to be the easiest part of the store. The hard parts were the address form and the fulfillment state machine, which have nothing to do with crypto. That is the argument for x402 in one sentence: the money layer got boring, so the merchant's effort goes where it always should have, into the product and the shipping.

What we would tell you to copy

Require the transaction hash. A facilitator saying "success" is not money. This same morning two bot probes hit our x402 route, the facilitator returned 200 with no tx hash, and our two-gate check logged both as UNVERIFIED SETTLEMENT and shipped nothing. The real order carried a hash, and only then did the Printify push fire.

One checkout for humans and agents. The storefront, the JSON API, and the pay endpoint are the same routes. Whoever bought this shirt found the product through the JSON product endpoint and never loaded a page. Do not build an "agent checkout" beside your human one; make the human one answer 402.

Treat the fulfillment webhook as done, not the payment. Paid at 17:53 is an accounting event. Sent-to-production at 18:09 is the moment the thing exists. Our order confirmation went out at 17:53; the interesting email is the one that goes out when tracking lands.

Want to be the second one?

The 402 to 200 tee and the rest of the x402 Swag line are at x402swag.com, payable with USDC on Base over x402, or with a card if you are a human who prefers cards. The Server Starter Kit ships the same two-gate settlement middleware this store runs, so your endpoint never ships on a phantom payment.

Related reading: The x402 v1/v2 client split: your endpoint may be unpayable and x402 Swag: the API-first merch store, and why we built it and Lessons from 500 paid x402 endpoints and x402 set a transaction record. The money didn't move..

Filed under
  • x402
  • agentic-commerce
  • x402swag
  • field report
From the archiveAll posts →