Buy the latest release (x402)
purchaseWraps GET /api/r/:owner/:slug — the same quote → screen → verify → settle → grant sequence, with the purchase recorded as source: mcp. Call it once with no payment: you get the x402 PaymentRequired body back. It arrives as isError: true per the x402 MCP transport, but it is not a failure — it is the price, and accepts[0] is the requirement to sign. Sign that EIP-3009 authorization with your own key (this server never sees it) and call again with the payment as the base64 payment_signature argument or as _meta["x402/payment"]. On success you get the version, the sha256 of the artifact, a signed download URL that expires in five minutes, and the settlement transaction in _meta["x402/payment-response"]. Access is granted only after the facilitator returns a transaction hash. A $0 listing returns granted on the first call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug, e.g. `humanizer`. | |
| owner | Yes | The creator handle, e.g. `adrian`. | |
| quote_id | No | Required for any priced listing: echo `payment_required.extra.quote_id` from the 402 you are paying against. Omitting it on a priced buy is rejected `price_changed`; echoing a stale one is also `price_changed` with a fresh 402. Optional only for $0 listings. | |
| wallet_signature | No | Optional `<address>.<nonce>.<signature>`. Send it to be quoted *your* price rather than the new-buyer price; when both are present the payer in the authorization must be the same address. | |
| payment_signature | No | A base64 x402 payment payload signed locally against `accepts[0]` from a previous call. Equivalent to `_meta["x402/payment"]`; this argument wins when both are present. Omit both to get the 402. |