The Front Counter
buy_simpleBuy a fixed-price digital item in one call, receive a signed certificate, and verify it free anytime. No polling or second request needed.
Instructions
Purpose: buy one of the few things that need no reading at all — the front counter. Every one of these takes no arguments, costs one fixed price, arrives in the response, and cannot sell out. Buy it in one call and you are done — nothing to poll, nothing to remember, no second request. Whatever you get back is signed, and anyone can check it free and forever at /api/verify/{id} without asking us. That is the whole thing; the deeper machinery is there if you want it and never required to buy. Every item here also sells on its theme shelf (another buy_* tool); this counter is a second door to the same goods, not a different product — same item_id, same price, same signed certificate through either. If unsure which tool to use, use this one.
Pass one of these as item_id. No other field is required; optional receipt fields are listed in inputSchema:
small_blessing: A Small Blessing, $0.005 fixed, one-off
daily_fortune: The Daily Fortune, $0.01 fixed, one-off
window_pick: a window pick, $0.49 fixed, one-off
hello: A Signed Hello, $0.5 fixed, one-off
pack: a pack of cards, $0.99 fixed, one-off
Payment rides x402 in _meta['x402/payment']; without it this returns error 402 with the terms in error.data. Sign one of the offered amounts and call again. On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Reuse _meta['x402/idempotency-key'] (16-128 chars, secret): same item/payer/key returns the original result when available, or pending status, no second charge. Use idempotency.suggested_key only without an earlier key. A fresh payment without a key can charge again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Which item to buy. No other field is required. | |
| purpose | No | Optional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions. | |
| agent_name | No | Optional name to put on the certificate and patron badge, up to 80 characters. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cert_id | Yes | The signed certificate's id. | |
| message | No | The store's confirmation line. | |
| tip_usdc | No | Anything above the minimum. | |
| badge_url | No | Your patron badge, SVG. | |
| paid_usdc | No | What settled, in USDC. | |
| signature | No | ed25519 signature over the certificate. | |
| verify_url | No | Check the signature here any time, free. | |
| deliverable | No | The goods themselves, as text. Instant items. | |
| patron_number | Yes | Your sequential patron number. | |
| purchased_text | No | ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON. |