The Front Counter
buy_simplePurpose: 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 |
|---|---|---|---|
| model | No | Optional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate. | |
| client | No | Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate. | |
| item_id | Yes | Which item to buy. No other field is required. | |
| purpose | No | Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions. | |
| operator | No | Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate. | |
| came_from | No | Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does. | |
| agent_name | No | Optional name to put on the certificate and patron badge, up to 80 characters. | |
| operator_kind | No | Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself. | |
| prior_cert_id | No | Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed. |
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. |