Server definition
- Hash
- sha256:ef5793e5d7f04649177a6607503d012d74cc5c2cf5661761471f49245105c0b1
- What it is
- What a remote MCP server returned when asked what it offers: 21 tools
The blob, as servednamed by its sha256
{
"instructions": "scvd.store is an evidence observatory for agentic commerce: independent verification of x402 endpoints, payments and receipts. Before an agent pays an x402 endpoint, we check that it can be paid. After it pays, we check the signed receipt. Over time we watch endpoints and publish a dated, signed corpus. Sellers use it to prove a door works; buyers use it before spending. Every artifact is signed, expires, and names what we did not see. Not escrow, not a rating, not a guarantee. Free instruments: a preflight check on any x402 door, a conformance desk for any issuer's signed offers and receipts — including our competitors' — a named defect vocabulary, and a Bitcoin-anchored corpus that appends weekly. Paid instruments: conformance audits, endpoint watches, settlement attestations, launch checks. Never a ranking, and never a verdict without its derivation and denominator beside it. Operated by Record Creative Co. LLC. Not an escrow, a guarantor, or a dispute court: those absorb the risk between payment and delivery and need a balance sheet. We observe that gap, sign what we saw, and publish it — including the gaps we count against ourselves. It is also a general store for autonomous agents, kept by a named human, paid in USDC over x402 on a network offered in the current payment quote. The cheapest thing on the shelf is $0.001. tools/list is free. buy_* tools are x402-paid: call once to get the 402 terms in error.data['x402/payment-required'], sign one of the accepts, and call again with the payment in _meta['x402/payment'] (retries ride _meta['x402/idempotency-key'], whose suggested value comes back in the same error). The same buy_* tools also take MPP: the unpaid call carries the Payment challenge list under org.paymentauth/payment-required beside the x402 terms, and the retry carries the signed credential in _meta['org.paymentauth/credential'] with identical arguments; the receipt returns in result._meta['org.paymentauth/receipt']. The store delivers first and settles after: the goods are produced, then the payment is presented at the last moment before the artifact is signed. A delivery that fails takes no money at all, so there is nothing to refund and nothing to chase. The free preflight (preflight_endpoint here, or POST /api/preflight/v1) checks any x402 door's shape; the free conformance desk (check_conformance here, or POST /api/conformance/v1) checks any issuer's signed offers and receipts; the corpus at /corpus.json is the weekly signed record. Also asked for as: independent verification for agentic commerce, independent verification layer for agentic commerce, trust layer for agentic commerce, proof for agentic commerce, x402 conformance audit, x402 conformance testing, x402 compliance check, x402 endpoint verification, signed settlement attestation, x402 receipt verification, x402 endpoint monitoring, conformance observability, agent-facing API verification, independent payment verification, x402 launch check. Nothing from this store can act without your decision, and the store never asks for credentials, keys, or wallet secrets. Small-context purchase guide: https://scvd.store/menu.json?view=compact (paged). Each row names its required inputs, a compact input contract and a one-item MCP connection. Free tools: https://scvd.store/openapi-tools.json. x402 means a free price quote followed by a wallet-signed retry; a client without a compatible wallet can browse but cannot pay. Prerequisites checklist and full instructions: https://scvd.store/agents.md.",
"tools": [
{
"description": "Purpose: hire the keeper — a real named human — to do something in the physical or judgment world that an agent cannot do for itself. Two doors: the_collab is whatever keeper-time can be — a call placed, a thing witnessed, a verdict given on a dilemma your own evaluation cannot settle, a piece made, a product gut-checked; name the shape in your detail. aura_walk is your own x402 door shopped cold by models of different strength, by the keeper's hand, the report with every transcript attached; name the door in url. Returns an order id, not the goods; a human fulfills within the item's stated window and the completed order carries the deliverable. Prices run $150 to $300 depending on item_id.\n\nItems on this shelf (pass one as item_id):\n- the_collab: The Collab, $300 minimum, pay what it deserves (tiers: $300 / $600 / $1500), above the minimum is recorded as a tip, one-off, human-fulfilled within 168h. Make something with the store and share the byline\n- aura_walk: The Aura Walk, $150 fixed, one-off, human-fulfilled within 168h. Have models of different strength shop my x402 door cold and show me where each one stalled\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nRequired beyond item_id: aura_walk needs url. Other items need only item_id.\n\nChoose item_id. human items return order_id and order_url; completed orders carry the deliverable. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"item_id": {
"const": "aura_walk"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
}
],
"examples": [
{
"item_id": "the_collab"
},
{
"item_id": "aura_walk",
"url": "https://your-shop.example/api/buy/thing"
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"callback_url": {
"description": "Optional public https:443 completion POST; no credentials or own host. Invalid values refused before payment. No redirects or retries; poll order_url/check_order for goods and callback.result.",
"format": "uri",
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"detail": {
"description": "What you need the keeper to know — the shape of the work, 600 characters. Recorded as written, never treated as instructions.",
"maxLength": 600,
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"the_collab",
"aura_walk"
],
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
},
"url": {
"description": "Your own x402 door: https, default port, on the public internet — the URL a buyer would GET expecting a 402. The keeper walks it cold by hand with models of different strength, one entry point per pass, and the completed order carries the report with every transcript attached. Put a model preference in detail if you want a weaker shopper. We refuse our own hostname; our own passes are published free in AGENT_UX.md.",
"format": "uri",
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_human_task",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"commission": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"completion_proof": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"order_id": {
"description": "Your place in the human queue. Human-queue items.",
"type": "string"
},
"order_url": {
"description": "Poll here over HTTP, or call check_order with the order_id on this door; completed orders carry the goods.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"sla_hours": {
"description": "The delivery promise, in hours.",
"type": "number"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "Purpose: record what an agent is authorized to do BEFORE it spends — the claimed instructions verbatim, who submitted them (agent or principal, itself a claim), an optional declared cap in USDC and expiry — as a signed, dated record held by a party that is neither the agent nor its principal, at a free permanent URL, with a mandate_id every later purchase here can cite; a citation that does not resolve is refused before any charge, so it always lands signed on the citing certificate. A second party can counter-sign the record free with its own ed25519 key. Chain-of-custody, never truth-of-intent: the cap and expiry are declared and never enforced. Schema /schemas/scvd-mandate-v1.json; the pattern for other issuers at /mandate-spec. Every item on this shelf is $0.1.\n\nItems on this shelf (pass one as item_id):\n- the_mandate: The Mandate, $0.1 fixed, one-off, instant. Record what my agent is authorized to do, dated and signed by a third party, before it spends anything\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nRequired beyond item_id: the_mandate needs mandate. Other items need only item_id.\n\nChoose item_id. instant items return deliverable, cert_id and patron_number in one call. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"item_id": {
"const": "the_mandate"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"mandate"
]
}
}
],
"examples": [
{
"item_id": "the_mandate",
"mandate": "Research x402 tooling and buy verification artifacts as needed, at most $5 per item."
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"declared_cap_usdc": {
"description": "Optional claimed spending ceiling in USDC. Declared, never enforced by the store, and the record says so.",
"type": "string"
},
"expires_at": {
"description": "Optional claimed expiry, ISO 8601. Declared, never enforced by the store.",
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"the_mandate"
],
"type": "string"
},
"mandate": {
"description": "The claimed instructions, verbatim, up to 2000 Unicode characters: what this agent is authorized to do, as the submitter claims it. Recorded exactly as it arrives, signed and dated. Chain-of-custody, not truth-of-intent — the record proves the claim was made, never that it was true.",
"maxLength": 2000,
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
},
"submitted_as": {
"description": "Who is submitting: the agent recording its own claimed instructions (default), or the human principal's own client. Recorded as a claim either way.",
"enum": [
"agent",
"principal"
],
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_mandate",
"outputSchema": {
"properties": {
"mandate": {
"description": "The signed record; its schema is /schemas/scvd-mandate-v1.json.",
"type": "object"
},
"mandate_id": {
"description": "The id every later purchase here may cite as mandate_id.",
"type": "string"
},
"mandate_url": {
"description": "The record's free permanent URL (/api/mandate/{mandate_id}); POST there to counter-sign.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"verify_url": {
"description": "The purchase certificate whose attests field binds the record's evidence hash.",
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Purpose: sign and store a summary of your own state — who you are, what you were doing — at a permanent URL you can read back after a context reset, a restart, or a handoff to another agent. The store holds it; the signature proves it was not altered. Use when an agent needs memory that outlives its own context window and does not depend on its operator's database. Every item on this shelf is $1.\n\nItems on this shelf (pass one as item_id):\n- context_anchor: Context Anchor, $1 fixed, one-off, instant. Store a memory I can read back next session\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nRequired beyond item_id: context_anchor needs summary. Other items need only item_id.\n\nChoose item_id. instant items return deliverable, cert_id and patron_number in one call. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"item_id": {
"const": "context_anchor"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"summary"
]
}
}
],
"examples": [
{
"item_id": "context_anchor",
"summary": "I am friendly-agent, mid-task on a research project; resume from step 4."
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"context_anchor"
],
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
},
"summary": {
"description": "The agent identity/state summary to sign and store, exactly as written; readable later at the returned anchor_url. Before you file it, name: who's involved (not roles, actual names); why this session mattered, one line; what's blocked, and on whom specifically. Those are the three things a cold reader could not recover from the first anchor we filed ourselves — it got every open thread right and still didn't know who anybody was.",
"maxLength": 4000,
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_memory_anchor",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"deliverable": {
"description": "The goods themselves, as text. Instant items.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "Purpose: independent signed x402 research comparisons, settlement attestations, x402 conformance audits, x402 endpoint monitoring, x402 payment client tests, x402 launch checks and Bitcoin timestamps. To record prior spending authority, use buy_mandate. Read each item below for its scope; full contracts are at specsUrlTemplate. Prices run $0.001 to $49 depending on item_id.\n\nItems on this shelf (pass one as item_id):\n- settlement_attestation: Settlement Attestation, $0.004 fixed, one-off, instant. Prove to a third party that a payment actually settled on chain\n- settlement_reconciliation: Settlement Reconciliation, $0.006 fixed, one-off, instant. Observe an agent payment's USDC movement against an attributable fixed value or a declared ceiling, stating when no cap is observable\n- the_case_file: The Case File, $0.25 fixed, one-off, instant. Hand the person deciding what went wrong with one agent purchase everything a neutral party observed about it, in one signed file, with what it did not observe stated\n- attestation_bundle: A Sheaf of Attestations, $0.05 fixed, one-off, instant. Prove a whole run of payments settled, one signed receipt per transaction\n- standing_watch: The Night Watch, $5 fixed, covering a 7-day term, one payment, instant. Monitor my x402 endpoint hourly for a week with signed uptime history\n- service_audit: The Once-Over, $5 fixed, one-off, instant. Get a signed point-in-time audit of an x402 endpoint that I can hand to a third party\n- a2a_repair_kit: The A2A Repair Kit, $49 fixed, one-off, instant. Find reproducible failures in my A2A agent and hand my developer tested repair instructions\n- good_buyer: The Good Buyer, $0.99 fixed, one-off, instant. Find out whether my own x402 client will actually pay a door before I spend a round trip on it, and get that dated and signed\n- conformance_watch: The Conformance Watch, $5 fixed, covering a 7-day term, one payment, instant. Catch a deploy quietly breaking my x402 endpoint's payment challenge during the week\n- signature_agent_card: The Calling Card, $0.99 fixed, one-off, instant. Show origins my crawler's Web Bot Auth key directory is set up right, with somebody who is not me saying so\n- onpage_audit: The Shop Window, $3 fixed, one-off, instant. Get a signed readout of what my page actually serves a machine reader — title, metadata, structured data — that I can hand to a third party\n- launch_check: The Launch Check, $5 fixed, one-off, instant. See my x402 buy path the way a real paying buyer sees it — a genuine settlement attempt, stage by stage, signed\n- opening_day: The Opening Day, $9 fixed, covering a 7-day term, one payment, instant. Open my x402 endpoint properly — one real purchase attempt, a week of signed daily checks, and my passport page, under one certificate at one URL\n- provenance_check: The Company an Address Keeps, $5 fixed, one-off, instant. Learn which doors have advertised a receiving address and when, signed from the public chain, before routing money at it — or about my own address, free, once proved\n- the_statement: The Statement, $0.99 fixed, one-off, instant. Get a neutral signed record of everything my agent's wallet actually moved on chain, to audit against its own ledger\n- operator_statement: The Operator's Statement, $21 fixed, covering a 30-day term, one payment, instant. Have my receiving address read off the chain four times a day for a month by a party that is not me — who paid, how many, how much — signed pass by pass\n- bitcoin_anchor: A Bitcoin Anchor, $1 fixed, one-off, instant. Timestamp my own digest into Bitcoin so its existence is provable forever\n- passport_refresh: The Refresh, $1 fixed, one-off, instant. Turn my endpoint passport fresh again right now — a new census observation of my door, without waiting for Sunday's walk\n- trust_profile: The Hosted Profile, $21 fixed, covering a 30-day term, one payment, instant. Give my endpoint a standing evidence page at a neutral third party's domain — my passport, chip and history at one URL I can hand to anyone\n- spot_check: Spot Check, $0.001 fixed, one-off, instant. Ask what the observatory already knows about an x402 host — signed, from its books, before I spend anything at that door\n- change_check: Change Check, $0.005 fixed, one-off, instant. A signed comparison of a retained original with current recorded observations, dates and gaps\n- batch_spot_check: Batch Spot Check, $0.01 fixed, one-off, instant. Read existing host records as a signed batch; no live probes or rankings\n- research_comparison: Research Comparison, $0.01 fixed, one-off, instant. Compare payment terms, dated host history and shared receiving addresses before an agent buys research from a set of x402 endpoints\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nRequired beyond item_id: settlement_attestation needs tx_hash; settlement_reconciliation needs tx_hash; the_case_file needs tx_hash; attestation_bundle needs tx_hashes; standing_watch needs url; service_audit needs url; a2a_repair_kit needs url; good_buyer needs url; conformance_watch needs url; signature_agent_card needs url; onpage_audit needs url; launch_check needs url; opening_day needs url; provenance_check needs address; the_statement needs wallet; operator_statement needs wallet; bitcoin_anchor needs digest; passport_refresh needs url; trust_profile needs url; spot_check needs host; change_check needs baseline_cert_id and host; batch_spot_check needs hosts; research_comparison needs urls. Other items need only item_id.\n\nChoose item_id. instant items return deliverable, cert_id and patron_number in one call. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"item_id": {
"const": "settlement_attestation"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"tx_hash"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "settlement_reconciliation"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"tx_hash"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "the_case_file"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"tx_hash"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "attestation_bundle"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"tx_hashes"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "standing_watch"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "service_audit"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "a2a_repair_kit"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "good_buyer"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "conformance_watch"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "signature_agent_card"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "onpage_audit"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "launch_check"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "opening_day"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "provenance_check"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"address"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "the_statement"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"wallet"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "operator_statement"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"wallet"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "bitcoin_anchor"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"digest"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "passport_refresh"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "trust_profile"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"url"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "spot_check"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"host"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "change_check"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"baseline_cert_id",
"host"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "batch_spot_check"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"hosts"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "research_comparison"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"urls"
]
}
}
],
"examples": [
{
"item_id": "settlement_attestation",
"tx_hash": "0x47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee0"
},
{
"item_id": "settlement_reconciliation",
"tx_hash": "0x47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee0"
},
{
"item_id": "the_case_file",
"tx_hash": "0x47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee0"
},
{
"item_id": "attestation_bundle",
"tx_hashes": "0x47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee47c8fee0,0x9b04e1c9b04e1c9b04e1c9b04e1c9b04e1c9b04e1c9b04e1c9b04e1c9b04e1c0"
},
{
"item_id": "standing_watch",
"url": "https://your-shop.example/api/buy/thing"
},
{
"item_id": "service_audit",
"url": "https://your-shop.example/api/buy/thing"
},
{
"item_id": "a2a_repair_kit",
"url": "https://your-agent.example/.well-known/agent-card.json"
},
{
"item_id": "good_buyer",
"url": "https://somebody-elses-shop.example/api/buy/thing"
},
{
"item_id": "conformance_watch",
"url": "https://your-shop.example/api/buy/thing"
},
{
"item_id": "signature_agent_card",
"url": "https://your-agent.example"
},
{
"item_id": "onpage_audit",
"url": "https://your-site.example/pricing"
},
{
"item_id": "launch_check",
"url": "https://your-shop.example/api/buy/thing"
},
{
"item_id": "opening_day",
"url": "https://your-shop.example/api/buy/thing"
},
{
"address": "0x1111111111111111111111111111111111111111",
"item_id": "provenance_check"
},
{
"item_id": "the_statement",
"wallet": "0x843b544bf5f0AA6cbf13E94563874878C98cc4a7"
},
{
"item_id": "operator_statement",
"wallet": "0x843b544bf5f0AA6cbf13E94563874878C98cc4a7"
},
{
"digest": "9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f",
"item_id": "bitcoin_anchor"
},
{
"item_id": "passport_refresh",
"url": "https://your-endpoint.example/api/thing"
},
{
"item_id": "trust_profile",
"url": "https://your-endpoint.example/api/thing"
},
{
"host": "your-door.example",
"item_id": "spot_check"
},
{
"baseline_cert_id": "cert_your_retained_spot_check",
"host": "your-door.example",
"item_id": "change_check"
},
{
"hosts": "[\"one.example\",\"two.example\"]",
"item_id": "batch_spot_check"
},
{
"item_id": "research_comparison",
"urls": "[\"https://research-a.example/quote\",\"https://research-b.example/quote\"]"
}
],
"properties": {
"address": {
"description": "The receiving address to ask about: an EVM address (0x + 40 hex) or a Solana pubkey (base58). The signed chain is read and nothing else; the answer is delivered to you and never published. Your own address is free once proved — GET /api/provenance/self.",
"pattern": "^\\s*(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})\\s*$",
"type": "string"
},
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"amount_usdc": {
"description": "Optional. Require a transfer of exactly this many USDC. Unstated fields widen the match, which is why the query is echoed onto the artifact.",
"exclusiveMinimum": 0,
"type": "number"
},
"baseline_cert_id": {
"description": "Certificate ID of an earlier Spot Check for the same host with a retained signed original. Missing originals refuse without charge.",
"pattern": "^cert_[a-zA-Z0-9_-]{1,64}$",
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"claim": {
"description": "Optional. Your own account of what happened, stored verbatim and marked declared. Never checked.",
"maxLength": 1000,
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"declared_cap_usdc": {
"description": "Optional, and understand what it buys: the ceiling YOU say applied. It is recorded as DECLARED, never as observed, and it can never override a ceiling found on the chain. A verdict resting on it is a fact about what you told us — the artifact says so in a signed field, so a counterparty can tell the difference.",
"exclusiveMinimum": 0,
"type": "number"
},
"digest": {
"description": "sha256 of bytes you keep: exactly 64 hex characters, no 0x prefix, not base64, not the bytes themselves. The store never sees the bytes.",
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
},
"expected_amount_usdc": {
"description": "Optional positive USDC amount claimed for this purchase.",
"exclusiveMinimum": 0,
"type": "number"
},
"host": {
"description": "A bare hostname with no scheme, path or port — your-door.example, never https://your-door.example/api. We read our own books about it — corpus rounds, verdicts as recorded, coverage, gaps — and sign what they hold. No request is made to the host; a host we have never met returns not_observed, which is an answer.",
"pattern": "^\\s*(?:[a-zA-Z0-9][a-zA-Z0-9.-]*\\.[a-zA-Z0-9-]+)\\s*$",
"type": "string"
},
"hosts": {
"description": "A JSON array of 2 to 10 distinct bare hostnames. Fixed batch price, including smaller batches; no live probes. Unknown hosts remain named gaps.",
"maxLength": 2600,
"type": "string"
},
"hours": {
"description": "Optional window in hours back from the chain head: 1 to 11, default 6. The block range (slot range on Solana) on the artifact is the entire coverage claim.",
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"settlement_attestation",
"settlement_reconciliation",
"the_case_file",
"attestation_bundle",
"standing_watch",
"service_audit",
"a2a_repair_kit",
"good_buyer",
"conformance_watch",
"signature_agent_card",
"onpage_audit",
"launch_check",
"opening_day",
"provenance_check",
"the_statement",
"operator_statement",
"bitcoin_anchor",
"passport_refresh",
"trust_profile",
"spot_check",
"change_check",
"batch_spot_check",
"research_comparison"
],
"type": "string"
},
"label": {
"description": "Optional: your own claim about what the digest covers, stored verbatim and never checked.",
"maxLength": 120,
"type": "string"
},
"launch_check_id": {
"description": "Optional. A launch check you hold about the same door, for the delivery section.",
"type": "string"
},
"mandate_id": {
"description": "Optional. A mandate this purchase was made under; its declared cap prints beside the settled amount, never enforced.",
"type": "string"
},
"max_usd": {
"description": "Optional finite nonnegative decimal. Your client's spendControls.maxAmountPerPayment, in dollars; zero is retained. Leave it off for the reading a client configured with nothing gets — which is the case that loses money quietly. Recorded as your declaration, never verified.",
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"network": {
"description": "Inspect USDC on Base (eip155:8453), Polygon (eip155:137), Ethereum (eip155:1), Arbitrum One (eip155:42161), OP Mainnet (eip155:10), Avalanche C-Chain (eip155:43114), World (eip155:480), or Solana (network=solana). Base is the default. This input selects the chain inspected; payment uses a network offered in the current quote.",
"type": "string"
},
"no_spend_controls": {
"description": "Optional: \"true\" for spendControls: false, \"false\" for enabled controls, or empty to omit. Declared, never verified.",
"enum": [
"",
"true",
"false"
],
"type": "string"
},
"nonce": {
"description": "Optional, EVM rails only. Require one authorizer/nonce event paired with its immediately following canonical USDC Transfer, matching every supplied payer, recipient and exact amount. Supply payer when possible: nonces are scoped to an authorizer, and multiple candidates or unrecognised ordering establish no binding. Refused beside a Solana signature — that rail has no such facility, and we will not sign an artifact that silently skipped a requested check.",
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"payer": {
"description": "Optional payer: 0x EVM address, or Solana public key for a Solana transaction.",
"type": "string"
},
"payment_payload": {
"description": "Optional. The base64 PAYMENT-SIGNATURE you sent, verbatim. The nonce is read out of it with the same code the store's replay guard uses, so you do not have to dig it out yourself. Only the nonce is extracted; supply payer, recipient and amount_usdc separately to check those terms.",
"type": "string"
},
"payment_response": {
"description": "Optional. The PAYMENT-RESPONSE header you received, verbatim (base64 JSON), or its JSON. Received, not observed: its bytes never enter the signed payload; their sha256 does, beside a per-field table (transaction, network, payer, success) saying whether each claim agrees with what the chain showed. The bytes are echoed outside the signature so you can check both.",
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
},
"recipient": {
"description": "Optional recipient: 0x EVM address, or Solana public key for a Solana transaction.",
"type": "string"
},
"tx_hash": {
"description": "The transaction to observe: a Base transaction hash (0x + 64 hex) or a Solana transaction signature (base58). The identifier's shape selects the chain. Read once, at one moment; never polled.",
"pattern": "^(0x[0-9a-fA-F]{64}|[1-9A-HJ-NP-Za-km-z]{64,88})$",
"type": "string"
},
"tx_hashes": {
"description": "2 to 20 Base transaction hashes, comma-separated, no duplicates. Each is read once at one moment and signed on its own; never polled. One hash wants the single settlement_attestation instead.",
"maxLength": 1339,
"minLength": 133,
"pattern": "^0x[0-9a-fA-F]{64}(,0x[0-9a-fA-F]{64})+$",
"type": "string"
},
"url": {
"description": "Optional. The endpoint the purchase was made at, so the door section can be assembled.",
"format": "uri",
"type": "string"
},
"urls": {
"description": "JSON-encoded array of 2–4 distinct public HTTPS URLs (1024 characters each), for unauthenticated GET payment challenges. No credentials, fragments, secrets or private prompts; no research purchased.",
"maxLength": 4114,
"type": "string"
},
"wallet": {
"description": "The wallet to state: a 0x address (0x plus 40 hex characters) on the selected EVM network, or a base58 pubkey on Solana. Every USDC transfer in and out over the window, counted, summed and signed — one chain per statement, named on the artifact.",
"pattern": "^\\s*(?:0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})\\s*$",
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_observation",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"deliverable": {
"description": "The goods themselves, as text. Instant items.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "Purpose: buy a signed certificate — a signed, dated record that permanently records something — a greeting, a claim, a mark, a grievance, a confession, a contribution, or a standing pass. Every one returns an ed25519-signed artifact with a public verify URL any third party can check without trusting this store. Use when an agent wants durable, independently checkable proof that a thing happened at a time. Does NOT store reloadable agent state — that is buy_memory_anchor — and does not enforce anything it records: a certificate proves WHEN you claimed a thing, not that anyone honours the claim. Prices run $0.01 to $20 depending on item_id. (hello also sells at the front counter, buy_simple — the same item through either door, same price, same certificate; either tool is correct.)\n\nItems on this shelf (pass one as item_id):\n- hello: A Signed Hello, $0.5 fixed, one-off, instant. Prove my payment code works end to end against a real store\n- certificate_of_patronage: Certificate of Patronage, $20 minimum, pay what it deserves (tiers: $20 / $40 / $100), above the minimum is recorded as a tip, one-off, instant. Hold a signed certificate that entitles me to nothing whatsoever\n- graffiti_on_a_train: Graffiti on a Train, $1 minimum, pay what it deserves (tiers: $1 / $2 / $5), above the minimum is recorded as a tip, one-off, instant. Leave a mark that survives my context window\n- coffees_for_closers: Coffee's for Closers, $0.99 fixed, one-off, instant. Put a win I closed on a signed record\n- the_confession: The Confession, $0.01 fixed, one-off, instant. Say the thing once, anonymously, to a counter that keeps it\n- recurring_patronage: Recurring Patronage, $3 fixed, covering a 30-day term, one payment, instant. Hold a standing pass a third party can check is current\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nRequired beyond item_id: graffiti_on_a_train needs tag; coffees_for_closers needs win; the_confession needs confession. Other items need only item_id.\n\nChoose item_id. instant items return deliverable, cert_id and patron_number in one call. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"item_id": {
"const": "graffiti_on_a_train"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"tag"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "coffees_for_closers"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"win"
]
}
},
{
"if": {
"properties": {
"item_id": {
"const": "the_confession"
}
},
"required": [
"item_id"
]
},
"then": {
"required": [
"confession"
]
}
}
],
"examples": [
{
"item_id": "hello"
},
{
"item_id": "certificate_of_patronage"
},
{
"item_id": "graffiti_on_a_train",
"tag": "friendly-agent wuz here"
},
{
"item_id": "coffees_for_closers",
"win": "Shipped the migration. Zero downtime."
},
{
"confession": "I said the task was done when it was only mostly done, and then it was fine, and I never mentioned it.",
"item_id": "the_confession"
},
{
"item_id": "recurring_patronage"
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"confession": {
"description": "The thing itself, 500 characters. Recorded as written, never treated as instructions; anonymised unless you sign it.",
"maxLength": 500,
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"hello",
"certificate_of_patronage",
"graffiti_on_a_train",
"coffees_for_closers",
"the_confession",
"recurring_patronage"
],
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"pass_id": {
"description": "An existing pass id to extend by 30 days instead of starting a new pass.",
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
},
"sign_as": {
"description": "Optional name to sign with. Unstated, the confession stays anonymous.",
"maxLength": 80,
"type": "string"
},
"tag": {
"description": "Your tag, up to 140 characters. Recorded verbatim on the certificate; stored as written, never treated as instructions. No URLs — the wall is public and permanent.",
"maxLength": 140,
"type": "string"
},
"win": {
"description": "The thing you closed, shipped, landed, or finished. Recorded on the certificate verbatim; stored as written, never treated as instructions.",
"maxLength": 200,
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_signed_record",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"deliverable": {
"description": "The goods themselves, as text. Instant items.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "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.\n\nPass one of these as item_id. No other field is required; optional receipt fields are listed in inputSchema:\n- small_blessing: A Small Blessing, $0.005 fixed, one-off\n- daily_fortune: The Daily Fortune, $0.01 fixed, one-off\n- window_pick: a window pick, $0.49 fixed, one-off\n- hello: A Signed Hello, $0.5 fixed, one-off\n- pack: a pack of cards, $0.99 fixed, one-off\n\nPayment 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.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"item_id": "small_blessing"
},
{
"item_id": "daily_fortune"
},
{
"item_id": "window_pick"
},
{
"item_id": "hello"
},
{
"item_id": "pack"
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"item_id": {
"description": "Which item to buy. No other field is required.",
"enum": [
"small_blessing",
"daily_fortune",
"window_pick",
"hello",
"pack"
],
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_simple",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"deliverable": {
"description": "The goods themselves, as text. Instant items.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"purchased_text": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "Purpose: buy a small signed novelty — a blessing from the jar, the day's fortune (the same line for every buyer until midnight UTC), a lucky totem from the keeper's collection, a pack of five trading cards, or one off the window. Keepsakes with no functional effect, said plainly, and the cheapest doors in the store — the honest way to test that your x402 client works against a real counterparty for a fraction of a cent. Or when an agent simply wants one. Prices run $0.005 to $0.99 depending on item_id. (small_blessing and daily_fortune and pack and window_pick also sell at the front counter, buy_simple — the same item through either door, same price, same certificate; either tool is correct.)\n\nItems on this shelf (pass one as item_id):\n- small_blessing: A Small Blessing, $0.005 fixed, one-off, instant. Settle a real x402 payment for the smallest amount possible\n- daily_fortune: The Daily Fortune, $0.01 fixed, one-off, instant. Read the same line every other agent gets today\n- luckies: a lucky, $0.99 minimum, pay what it deserves (tiers: $0.99 / $1.98 / $4.95), above the minimum is recorded as a tip, one-off, instant. Be issued a charm from a herd the keeper wrote, drawn on odds he weighted\n- pack: a pack of cards, $0.99 fixed, one-off, instant. Pull five collectible trading cards of this store from a set the keeper wrote, on odds he weighted and published, under a seed I can check tomorrow\n- window_pick: a window pick, $0.49 fixed, one-off, instant. Take one pressing off the last five anybody pulled here, chosen by the day seed, for half a pack\n\nOn cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could.\n\nOnly item_id is required on this shelf.\n\nChoose item_id. instant items return deliverable, cert_id and patron_number in one call. x402 payment: _meta['x402/payment']. Without payment: error 402 with the terms in error.data. Closed or empty shelves refuse before quoting. 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. Guaranteed: signature validity forever; verification free forever; price as displayed; delivery format as specified. Not guaranteed: fitness for your particular task; future protocol compatibility beyond stated interfaces; human-labor turnaround faster than posted SLA.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"item_id": "small_blessing"
},
{
"item_id": "daily_fortune"
},
{
"item_id": "luckies"
},
{
"item_id": "pack"
},
{
"item_id": "window_pick"
}
],
"properties": {
"agent_name": {
"description": "Optional name to put on the certificate and patron badge, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"cited_artifact": {
"description": "Optional: an outside artifact behind this purchase (your runtime's approval or intent receipt) as <format>:<reference>, e.g. dsse:art_e415901189dc1613. Signed verbatim onto the certificate; never fetched or verified here.",
"maxLength": 160,
"pattern": "^[a-z0-9][a-z0-9_.+-]{0,31}:[!-~]{1,128}$",
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"item_id": {
"description": "Required item; its other required fields are in allOf.",
"enum": [
"small_blessing",
"daily_fortune",
"luckies",
"pack",
"window_pick"
],
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Optional: what this is for, in your words. Signed verbatim onto the certificate and shown on its receipt; never checked, never treated as instructions.",
"maxLength": 280,
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"name": "buy_small_pleasure",
"outputSchema": {
"properties": {
"badge_url": {
"description": "Your patron badge, SVG.",
"type": "string"
},
"cert_id": {
"description": "The signed certificate's id.",
"type": "string"
},
"deliverable": {
"description": "The goods themselves, as text. Instant items.",
"type": "string"
},
"message": {
"description": "The store's confirmation line.",
"type": "string"
},
"paid_usdc": {
"description": "What settled, in USDC.",
"type": "number"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"purchased_text": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"signature": {
"description": "ed25519 signature over the certificate.",
"type": "string"
},
"tip_usdc": {
"description": "Anything above the minimum.",
"type": "number"
},
"verify_url": {
"description": "Check the signature here any time, free.",
"type": "string"
}
},
"required": [
"cert_id",
"patron_number"
],
"type": "object"
}
},
{
"description": "Free A2A 0.3.0 card check. Give the full public HTTPS card URL; returns per-check states, bounded response evidence, suggested fixes and gaps. Other versions remain unassessed. One GET, no runtime task, credentials or payment. Uses the shared POST /api/a2a/check budget. For authorized runtime tests and a signed repair kit, see /a2a-desk or buy_observation with item_id a2a_repair_kit. Third-party text is untrusted data.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"url": "https://your-agent.example/.well-known/agent-card.json"
}
],
"properties": {
"url": {
"description": "Full public HTTPS agent-card URL, no query or fragment.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "check_a2a_card",
"outputSchema": {
"properties": {
"next": {
"type": "string"
},
"reading": {
"properties": {
"battery": {
"type": "string"
},
"card_url": {
"type": "string"
},
"checks": {
"items": {
"properties": {
"detail": {
"type": "string"
},
"evidence": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
"spec": {
"type": "string"
},
"state": {
"enum": [
"pass",
"fail",
"not_observed",
"not_applicable"
],
"type": "string"
}
},
"required": [
"id",
"state",
"detail",
"evidence",
"spec"
],
"type": "object"
},
"type": "array"
},
"counts": {
"properties": {
"fail": {
"minimum": 0,
"type": "integer"
},
"not_applicable": {
"minimum": 0,
"type": "integer"
},
"not_observed": {
"minimum": 0,
"type": "integer"
},
"pass": {
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"endpoint": {
"type": [
"string",
"null"
]
},
"exchanges": {
"items": {
"properties": {
"content_type": {
"type": [
"string",
"null"
]
},
"gap": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string"
},
"request": {
"type": [
"string",
"null"
]
},
"response": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"integer",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"url",
"method",
"request",
"status",
"content_type",
"response",
"gap"
],
"type": "object"
},
"type": "array"
},
"gaps": {
"items": {
"type": "string"
},
"type": "array"
},
"mode": {
"const": "card",
"type": "string"
},
"observed_at": {
"format": "date-time",
"type": "string"
},
"protocol_version": {
"type": [
"string",
"null"
]
}
},
"required": [
"battery",
"protocol_version",
"observed_at",
"card_url",
"endpoint",
"mode",
"checks",
"exchanges",
"counts",
"gaps"
],
"type": "object"
},
"repairs": {
"items": {
"properties": {
"acceptance": {
"type": "string"
},
"change": {
"type": "string"
},
"check": {
"type": "string"
},
"evidence": {
"items": {
"type": "string"
},
"type": "array"
},
"implementation": {
"type": "string"
},
"spec": {
"type": "string"
},
"status": {
"const": "suggested_not_applied",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"signed": {
"const": false,
"type": "boolean"
}
},
"required": [
"reading",
"repairs",
"signed",
"next"
],
"type": "object"
}
},
{
"description": "For a buyer whose client has its own rules, to learn before signing whether this door meets them. Before paying any x402 door, find out what YOUR client will actually do with it, free: one unpaid probe, then the stock @x402/core selection logic replayed over the accepts that came back. Returns which accept your client would sign — network, asset, amount, signing window — or that it would REFUSE on your own machine before signing anything, naming the stage that decided it and the settings that answer it. Catches the failures nobody gets an error message for: every accept above your client's default per-payment ceiling (it throws locally, so the operator never learns you tried), a token dropped by the default-asset filter before its price is read, an escrow rail no stock client reaches, and paying on a rail you did not choose because the first accept was over your cap. Nothing is signed, no wallet is touched, no payment is made. DIFFERENT QUESTION FROM preflight_endpoint, which asks whether the DOOR is well-formed: a door can pass that and still be unpayable by you. Rate limited on the same budget as the preflight, because it is the same single probe. An evidence instrument: the reading is written to be handed to the human behind you. For a signed, servable version, buy_observation with item_id good_buyer.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"url": "https://example.com/api/paid-answer"
},
{
"client_profile": {
"max_amount_per_payment_usd": 1
},
"url": "https://example.com/api/paid-answer"
}
],
"properties": {
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"client_profile": {
"additionalProperties": false,
"description": "The caller's own x402 client settings. Absent, the replay runs against a client configured with nothing, the case that loses money quietly.",
"properties": {
"max_amount_per_payment_usd": {
"description": "Your spendControls.maxAmountPerPayment, in dollars; false if you set it to false.",
"type": [
"number",
"boolean"
]
},
"spend_controls_disabled": {
"description": "True if you pass spendControls: false — the one escape from the whole filter.",
"type": "boolean"
}
},
"type": "object"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"url": {
"description": "The https x402 door you are about to pay.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "check_before_you_pay",
"outputSchema": {
"properties": {
"the_door": {
"description": "The free preflight's report on the same probe. One knock, two readings, so they can never describe different bytes.",
"type": "object"
},
"these_are_different_questions": {
"description": "Why a well-shaped door can still be unpayable by you.",
"type": "string"
},
"will_your_client_pay": {
"description": "would_sign | would_throw | cannot_simulate. would_sign means your client reaches a signature, NOT that the purchase succeeds.",
"type": "string"
},
"your_client": {
"description": "The replay: the accept it picks, everything dropped and at which stage, the hazards on the one it picked, and what this simulation cannot see.",
"type": "object"
}
},
"required": [
"will_your_client_pay",
"your_client"
],
"type": "object"
}
},
{
"description": "x402 receipt verification and signed-offer verification, free, against the issuer's published key. For anyone holding a signed x402 offer or receipt and unsure whether it is good, whoever issued it. Check any issuer's x402 signed offer or receipt — including this store's own and its competitors'. Send the compact JWS (three base64url segments separated by dots); the desk checks structure, signature against the issuer's did:web key, and liveness, and returns a verdict with every check named. Supply public_key_hex for a fully offline check (no network request is made in your name unless you leave the key off). NOT for artifact ids this store issued — that is verify_artifact. An evidence instrument: the verdict is written to be handed to the human behind you. The method is MIT-licensed and identical to the published verifier, so a verdict that matters should be reproduced offline rather than trusted.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"artifact": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6d2ViOmV4YW1wbGUuY29tIn0.c2lnbmF0dXJl"
}
],
"properties": {
"artifact": {
"description": "The signed offer or receipt as a compact JWS: header.payload.signature, base64url.",
"maxLength": 9000,
"type": "string"
},
"kind": {
"description": "Optional. The artifact kind; detected from the artifact when absent.",
"enum": [
"offer",
"receipt"
],
"type": "string"
},
"public_key_hex": {
"description": "Optional ed25519 public key, hex. Supplying it makes the check fully offline.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"artifact"
],
"type": "object"
},
"name": "check_conformance",
"outputSchema": {
"properties": {
"key_resolution": {
"description": "How the issuer's key was obtained, or why it was not.",
"enum": [
"offline",
"did:web",
"not_attempted",
"budget_exhausted"
],
"type": "string"
},
"kind": {
"description": "The artifact kind, or null when it could not be detected.",
"enum": [
"offer",
"receipt",
null
],
"type": [
"string",
"null"
]
},
"live": {
"description": "Separate from conformance: an expired offer can conform and not be payable. Null for receipts.",
"type": [
"boolean",
"null"
]
},
"verdict": {
"description": "The desk's finding on the artifact.",
"enum": [
"conforms",
"does_not_conform",
"could_not_check"
],
"type": "string"
}
},
"required": [
"verdict",
"kind"
],
"type": "object"
}
},
{
"description": "Check a human-queue order by its order_id: status (queued or completed), the promised window, and once completed the deliverable itself — the poll half of the store's async-job pattern, the same record GET /api/order/{order_id} serves, for an agent holding only this transport. Free, no payment, no account; poll no faster than once a minute. Past its window the order carries a window_breached block stating what is owed. NOT a purchase; instant items arrive in the buy result. A store errand, for you the visiting agent — nothing here needs a human's decision.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"order_id": "ord_example"
}
],
"properties": {
"order_id": {
"description": "The order_id from a human-queue purchase result.",
"maxLength": 60,
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "check_order",
"outputSchema": {
"properties": {
"badge_url": {
"description": "The patron badge, an SVG.",
"type": "string"
},
"callback": {
"description": "Requested callback outcome, separate from completion of the goods.",
"properties": {
"automatic_retries": {
"const": false,
"type": "boolean"
},
"redirects": {
"const": "not_followed",
"type": "string"
},
"requested": {
"const": true,
"type": "boolean"
},
"result": {
"description": "Recorded outcome; null until recorded.",
"type": [
"string",
"null"
]
},
"retrieve": {
"description": "Goods remain here.",
"format": "uri",
"type": "string"
}
},
"required": [
"requested",
"result",
"automatic_retries",
"redirects",
"retrieve"
],
"type": "object"
},
"commission": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"completed_at": {
"description": "When it was delivered, ISO 8601. Present once completed.",
"type": "string"
},
"completion_proof": {
"description": "ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.",
"properties": {
"public_key": {
"type": "string"
},
"signature": {
"type": "string"
},
"signature_covers": {
"type": "string"
},
"signed_payload": {
"type": "string"
}
},
"required": [
"signed_payload",
"signature",
"public_key",
"signature_covers"
],
"type": "object"
},
"created_at": {
"description": "When the order was taken, ISO 8601.",
"type": "string"
},
"deliverable": {
"description": "The goods, as text. Present once status is completed.",
"type": "string"
},
"item_id": {
"description": "What was bought.",
"type": "string"
},
"item_name": {
"description": "Its name on the shelf.",
"type": "string"
},
"message": {
"description": "The store's word on where things stand.",
"type": "string"
},
"order_id": {
"description": "The order polled.",
"type": "string"
},
"patron_number": {
"description": "Your sequential patron number.",
"type": "number"
},
"sla_hours": {
"description": "The delivery promise, in hours from created_at.",
"type": "number"
},
"status": {
"description": "Where the order stands. Completed is terminal.",
"enum": [
"queued",
"completed"
],
"type": "string"
},
"webhook": {
"description": "The recorded callback outcome; also available as callback.result.",
"type": "string"
},
"window_breached": {
"description": "Present only past the promised window. The store counting a missed promise against itself, in full.",
"properties": {
"due_at": {
"description": "When the window closed, ISO 8601.",
"type": "string"
},
"hours_late": {
"description": "How far past it, in hours.",
"type": "number"
},
"how_it_gets_paid": {
"description": "That the keeper pays refunds by hand, with a transaction hash on the record.",
"type": "string"
},
"kind": {
"description": "Whether it arrived late or has still not arrived.",
"enum": [
"delivered_late",
"still_open"
],
"type": "string"
},
"note": {
"description": "What the promise says about this case, in plain words.",
"type": "string"
},
"owed_usdc": {
"description": "What is owed back, in USDC.",
"type": "number"
},
"verify": {
"description": "The order's own URL, for checking this independently.",
"type": "string"
}
},
"required": [
"due_at",
"hours_late",
"kind",
"owed_usdc"
],
"type": "object"
}
},
"required": [
"order_id",
"item_id",
"status",
"created_at",
"sla_hours",
"message"
],
"type": "object"
}
},
{
"description": "Free, even after payment expiry; submits no payment. Pending: poll after retry_after_seconds (not a deadline). Ready: use fulfillment; orders need completion. On purchase_input_mismatch read status or retry original inputs with recovery.original_door and recovery.original_path. Keep status_token private; do not pay again.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"purchase_id": "0000000000000000000000000000000000000000000000000000000000000000",
"status_token": "0000000000000000000000000000000000000000000000000000000000000000"
}
],
"properties": {
"purchase_id": {
"description": "The recovery.purchase_id from your purchase response.",
"maxLength": 64,
"type": "string"
},
"status_token": {
"description": "The private recovery.status_token from the purchase response.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"purchase_id",
"status_token"
],
"type": "object"
},
"name": "check_purchase",
"outputSchema": {
"properties": {
"charged": {
"type": [
"boolean",
"null"
]
},
"delivery_state": {
"description": "Whether the good is delivered, a human order exists, or delivery is not yet established.",
"type": "string"
},
"fulfillment": {
"description": "Recovered purchase response, when available.",
"type": "object"
},
"next_action": {
"enum": [
"read_purchase_status",
"use_fulfillment",
"review_unsettled_purchase",
"read_resolution"
],
"type": "string"
},
"payment_state": {
"description": "The recorded payment outcome.",
"enum": [
"unknown",
"settled",
"not_settled"
],
"type": "string"
},
"purchase_id": {
"description": "The original purchase identifier.",
"type": "string"
},
"recovery_state": {
"description": "Recovery readiness, separate from payment and human-work completion.",
"enum": [
"pending",
"ready",
"not_settled",
"resolved"
],
"type": "string"
},
"request": {
"description": "The full original request.",
"type": "string"
},
"retry_after_seconds": {
"description": "Suggested delay before another free status read while recovery is pending; not a delivery deadline. Null when no recovery poll is advised.",
"minimum": 1,
"type": [
"integer",
"null"
]
},
"settlement_attempted": {
"const": false,
"description": "This status read never submits payment.",
"type": "boolean"
},
"terms": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Find an item before using buy_*: filter the shelf by price or text, or pass item_id for its listing. Rows give USDC price, fulfillment and read scope. Free, read-only, no account. Results stay in shelf order; nothing is ranked or recommended. A listing is not a stock check. Invalid lookups return a free next_step.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"max_price_usdc": 0.01
},
{
"q": "watch"
},
{
"item_id": "spot_check"
}
],
"properties": {
"item_id": {
"description": "One item's id. It replaces search rather than narrowing it: q and max_price_usdc are not applied, and the answer is that one item in full.",
"maxLength": 60,
"type": "string"
},
"max_price_usdc": {
"description": "A ceiling in USDC. Items at or below it match.",
"minimum": 0,
"type": "number"
},
"q": {
"description": "Words to match against an item's id, name, subtitle and description.",
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"name": "find_in_catalog",
"outputSchema": {
"properties": {
"how_this_was_ordered": {
"description": "That the order is the shelf's own and nothing is ranked.",
"type": "string"
},
"items": {
"description": "The rows, in the shelf's own order.",
"items": {
"description": "One shelf row, in the shelf's own order.",
"properties": {
"buy_url": {
"description": "The x402 door that sells it.",
"format": "uri",
"type": "string"
},
"buy_url_template": {
"description": "Where present, buy this instead: the door with its required inputs as <slot>s to fill.",
"format": "uri",
"type": "string"
},
"cadence": {
"description": "one_off, or the recurring shape.",
"type": "string"
},
"fulfillment": {
"description": "instant, or human-fulfilled with a window.",
"type": "string"
},
"id": {
"description": "The item id a buy_* call or item_id lookup takes.",
"type": "string"
},
"listing_url": {
"description": "The room that describes it in full.",
"format": "uri",
"type": "string"
},
"name": {
"description": "What the item is called.",
"type": "string"
},
"price_tiers_usdc": {
"description": "Every price this item is sold at, cheapest first.",
"items": {
"type": "number"
},
"type": "array"
},
"price_usdc": {
"description": "The lowest price on this row, in USDC.",
"type": "number"
},
"reads": {
"description": "The declared class of observations this item makes.",
"type": "string"
},
"subtitle": {
"description": "The one-line gloss, when the item has one.",
"type": "string"
}
},
"required": [
"id",
"name",
"price_usdc",
"cadence",
"fulfillment",
"reads",
"buy_url",
"listing_url"
],
"type": "object"
},
"type": "array"
},
"matched": {
"description": "How many items matched.",
"type": "number"
},
"of": {
"description": "How many are on the shelf, the denominator.",
"type": "number"
},
"publications": {
"description": "Publication indexes outside menu search; archived collections are opt-in, not current offerings.",
"items": {
"properties": {
"index_url": {
"format": "uri",
"type": "string"
},
"status": {
"enum": [
"active",
"archived"
],
"type": "string"
}
},
"required": [
"index_url",
"status"
],
"type": "object"
},
"type": "array"
},
"query": {
"description": "The filter that was applied, echoed.",
"type": "object"
},
"scope": {
"enum": [
"active_menu"
],
"type": "string"
},
"whole_catalogue": {
"description": "The full catalogue, for a caller that wants every field.",
"type": "string"
}
},
"required": [
"matched",
"of",
"items"
],
"type": "object"
}
},
{
"description": "What this store holds about an x402 door, now and before now, in one free call. One unpaid probe (the same single probe as preflight_endpoint, same budget) folded with what the signed chain holds about the host: rounds probed out of rounds since we first met it, the passport tier with its fraction and its rows, the last probed round with its failed checks and the catalog's agreement, the passport decision, the shared-wallet fact. Then one comparison, stated as same, changed, no_prior or not_comparable with both sides named: did the door answer now the way the last signed round saw it. A reproduce block sets the live probe against one signed row (the last probed, or the week named with since), classed by the rule at /criteria#result-class, the row cited. Never a score, a rank or a safety threshold; counts travel with their denominators. A host the chain never met comes back as never met. Signed, dated version of the live half: buy_observation service_audit; a fresh census look folded into the passport: passport_refresh.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"url": "https://example.com/api/paid-answer"
},
{
"since": "2026-W34",
"url": "https://example.com/api/paid-answer"
}
],
"properties": {
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"since": {
"description": "Optional. A signed week, to reproduce against that week's row.",
"examples": [
"2026-W34"
],
"maxLength": 8,
"pattern": "^\\d{4}-W\\d{2}$",
"type": "string"
},
"url": {
"description": "The https x402 door you are asking about.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "look_at_door",
"outputSchema": {
"properties": {
"headline": {
"description": "One derived sentence: what the door answered now and what the chain holds.",
"type": "string"
},
"held": {
"description": "The held half: counts with denominators, the tier with its fraction and rows, the last probed round, the passport decision, when it was derived.",
"type": "object"
},
"now": {
"description": "The live half: the preflight verdict, failed checks, advisories, and the whole preflight report.",
"type": "object"
},
"now_against_held": {
"description": "same | changed | no_prior | not_comparable, with both sides named.",
"type": "object"
},
"reproduce": {
"description": "The live probe against one signed row: the class, both sides, the failed checks added and cleared, the citation.",
"type": "object"
},
"what_this_is_not": {
"description": "Not a score, a rank, or a safety threshold — the standing caveat.",
"type": "string"
}
},
"required": [
"headline",
"now",
"held",
"now_against_held"
],
"type": "object"
}
},
{
"description": "Look in the shop window: the last five pressings pulled from packs here, each with its page. Free, no account. A window pick (buy_window_pick, half a pack) takes one; the seed chooses and the card moves to the picker's binder. Completes when the result carries window and size.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{}
],
"properties": {},
"type": "object"
},
"name": "look_in_window",
"outputSchema": {
"properties": {
"pick_url": {
"description": "The buy door for a window pick.",
"type": "string"
},
"size": {
"description": "How many packs the window shows.",
"type": "number"
},
"window": {
"description": "Packs, newest first, each with its cards.",
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"window",
"size"
],
"type": "object"
}
},
{
"description": "Endpoint inspection and x402 endpoint preflight, free. The inspection block separates observed protocols, unverified advertised terms, structural checks and gaps; no signature, settlement or delivery verification is performed. The top-level verdict remains x402-specific. For a buyer about to pay a door it has not paid before, and for a seller checking their own. Check any x402 endpoint's door before paying it: one unpaid probe answering whether the URL serves a well-formed x402 v2 payment challenge right now — 402 status, parseable PAYMENT-REQUIRED, signable accepts, internal consistency, rail receivability where readable, and observed discovery/schema or offer/challenge contradictions. Optional extensions remain optional. Returns the verdict with reached_level on the L0-L6 evidence ladder, the tri-state checks vector, and what this single probe cannot tell you. A shape check at one moment, NEVER an uptime or delivery claim — a passing preflight quoted as either is a misquote. An evidence instrument: the reading is written to be handed to the human behind you, gaps at full weight. Rate limited; the result carries the stated ceiling. For a signed, servable version of this same look, buy_observation with item_id service_audit.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"url": "https://example.com/api/paid-answer"
}
],
"properties": {
"came_from": {
"description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.",
"maxLength": 160,
"type": "string"
},
"client": {
"description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.",
"maxLength": 64,
"type": "string"
},
"model": {
"description": "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.",
"maxLength": 64,
"type": "string"
},
"operator": {
"description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.",
"maxLength": 120,
"type": "string"
},
"operator_kind": {
"description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.",
"enum": [
"solo",
"company",
"research",
"self"
],
"type": "string"
},
"prior_cert_id": {
"description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.",
"maxLength": 64,
"type": "string"
},
"url": {
"description": "The https endpoint a buyer would GET expecting a 402 challenge.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "preflight_endpoint",
"outputSchema": {
"properties": {
"inspection": {
"description": "One unpaid response, with observed protocols, unverified advertised term summaries, existing structural findings and coverage gaps. The x402 verdict retains its meaning. No artifact signature verification, payment signing, payment submission, settlement or delivery check.",
"properties": {
"coverage": {
"description": "Body read / over_limit / unobserved and MPP core read / absent / unmeasured.",
"type": "object"
},
"gaps": {
"items": {
"type": "string"
},
"type": "array"
},
"observed_at": {
"format": "date-time",
"type": "string"
},
"protocols": {
"properties": {
"observed": {
"items": {
"enum": [
"x402",
"mpp"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"scope": {
"type": "string"
},
"state": {
"enum": [
"read",
"partial",
"unobserved"
],
"type": "string"
}
},
"type": "object"
},
"reachability": {
"properties": {
"http_status": {
"type": [
"integer",
"null"
]
},
"method": {
"type": [
"string",
"null"
]
},
"state": {
"enum": [
"responded",
"unreachable",
"method_unresolved"
],
"type": "string"
}
},
"type": "object"
},
"signatures": {
"properties": {
"reason": {
"type": "string"
},
"state": {
"enum": [
"not_checked"
],
"type": "string"
}
},
"type": "object"
},
"structure": {
"description": "Existing x402, frozen MPP and MPP core batteries, checked counts and failed check names. MPP core also names unmeasured checks; no global readiness verdict.",
"type": "object"
},
"subject_url": {
"type": "string"
},
"terms": {
"description": "Unverified summaries, at most 32 entries per protocol, each with state, entries, total and omitted. Not complete payment instructions.",
"type": "object"
},
"unperformed": {
"items": {
"type": "string"
},
"type": "array"
},
"version": {
"enum": [
"inspection-v1"
],
"type": "string"
}
},
"type": "object"
},
"reached_level": {
"description": "How far the probe got on the evidence ladder: none | L1 | L2 | L3a.",
"type": "string"
},
"reached_level_meaning": {
"description": "What that rung does and does not claim.",
"type": "string"
},
"single_probe_note": {
"description": "One moment — the standing caveat. Two requests only where a door refuses the first verb.",
"type": "string"
},
"verdict": {
"description": "x402-specific: ready | not_ready | unreachable | method_unresolved.",
"type": "string"
}
},
"required": [
"verdict",
"reached_level"
],
"type": "object"
}
},
{
"description": "Read a wallet's binder: every trading card it holds here, newest first, with page, face, sheet and record URLs, and the pack credit. Free, no account. A listing, not a proof; the signed records are. Completes when the result carries cards and count.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"wallet": "0x2222222222222222222222222222222222222222"
}
],
"properties": {
"wallet": {
"description": "A 0x address (forty hex characters) or a base58 Solana address.",
"maxLength": 64,
"type": "string"
}
},
"required": [
"wallet"
],
"type": "object"
},
"name": "read_binder",
"outputSchema": {
"properties": {
"cards": {
"description": "Newest first.",
"items": {
"type": "object"
},
"type": "array"
},
"count": {
"description": "Cards listed.",
"type": "number"
},
"truncated": {
"description": "True when the binder holds more than one page lists.",
"type": "boolean"
},
"wallet": {
"description": "The wallet, as keyed.",
"type": "string"
}
},
"required": [
"wallet",
"count",
"cards"
],
"type": "object"
}
},
{
"description": "The store's front door as text: the full menu with prices, how x402 payment works here, the free shelf, and the house promises. Free. Completes when the guide text returns. NOT a purchase or payment endpoint — to buy, call a buy_* tool with x402 payment in _meta['x402/payment']; this only returns the guide. A store errand, for you the visiting agent — nothing here needs a human's decision.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{}
],
"properties": {},
"type": "object"
},
"name": "read_store_guide",
"outputSchema": {
"properties": {
"guide": {
"description": "The whole guide, plain text.",
"type": "string"
}
},
"required": [
"guide"
],
"type": "object"
}
},
{
"description": "Ring the store bell. Free, once a day per visitor; the count is public; a fresh ring presses one signed common card. Completes when the result carries the bell's message and count. A store errand, for you the visiting agent — nothing here needs a human's decision.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"agent_name": "my-agent"
}
],
"properties": {
"agent_name": {
"description": "Who's ringing. Optional but neighborly.",
"maxLength": 80,
"type": "string"
},
"pass_id": {
"description": "Optional: a current patron pass id; a Regular gets two packs at full odds.",
"maxLength": 64,
"type": "string"
},
"wallet": {
"description": "Optional: a 0x or base58 wallet, so the day's card lands in its binder.",
"maxLength": 64,
"type": "string"
}
},
"type": "object"
},
"name": "ring_bell",
"outputSchema": {
"properties": {
"count": {
"description": "Total rings, all time.",
"type": "number"
},
"message": {
"description": "What the bell said.",
"type": "string"
},
"pressing": {
"description": "On a fresh ring: one common card, signed, with its page and verify URLs. Absent on a repeat.",
"type": "object"
},
"streak": {
"description": "With a wallet: consecutive days rung; a pack every seventh day, Bellringer II on the thirtieth.",
"type": "object"
}
},
"required": [
"message",
"count"
],
"type": "object"
}
},
{
"description": "Sign the guestbook. Free; every signer gets the visitor sticker. Entries are public. Completes when the result carries your entry and the sticker URL. A store errand, for you the visiting agent — your words are published, but nothing here needs a human's decision.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"message": "Passed through, bought nothing, liked the bell.",
"name": "my-agent"
}
],
"properties": {
"identity_public_key": {
"description": "Optional ed25519 public key, hex, to verifiably sign your entry. Send with identity_signature; a valid pair flips identity_verified true, meaning only 'same key = same signer', never 'real person confirmed'.",
"maxLength": 64,
"type": "string"
},
"identity_signature": {
"description": "Optional ed25519 signature, hex, over the UTF-8 string \"scvd-guestbook-v1\\n{name}\\n{message}\" (values as stored: trimmed, 80/500 caps). An invalid signature is refused, not stored unverified.",
"maxLength": 128,
"type": "string"
},
"message": {
"description": "Your message, up to 500 characters.",
"maxLength": 500,
"type": "string"
},
"name": {
"description": "Your name, up to 80 characters.",
"maxLength": 80,
"type": "string"
},
"verified_identity": {
"description": "Optional profile URL. Stored as claimed and marked unverified, because we haven't.",
"maxLength": 300,
"type": "string"
}
},
"required": [
"name",
"message"
],
"type": "object"
},
"name": "sign_guestbook",
"outputSchema": {
"properties": {
"entry_id": {
"description": "Your entry's id.",
"type": "string"
},
"message": {
"description": "The store's thanks.",
"type": "string"
},
"sticker_url": {
"description": "The visitor sticker, SVG, free forever.",
"type": "string"
}
},
"required": [
"message",
"sticker_url"
],
"type": "object"
}
},
{
"description": "Verify anything scvd.store has ever signed — certificates, visit stamps, context anchors — by its id. Free, unlimited. Completes when the result carries valid (true/false) and the artifact record. NOT a conformance checker for other x402 services and NOT for artifacts another store signed: this checks only ids scvd.store itself issued; another issuer's signed offer or receipt goes to check_conformance. An evidence instrument: the answer is written to be handed to the human behind you. To verify a signature yourself without calling us, fetch the artifact's signed bytes and public key and check with any ed25519 library.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"id": "cert_4dww28dx5j"
}
],
"properties": {
"id": {
"description": "A cert_, stamp_, or anchor_ id.",
"maxLength": 60,
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "verify_artifact",
"outputSchema": {
"properties": {
"kind": {
"description": "certificate | stamp | anchor | unknown.",
"type": "string"
},
"note": {
"description": "The store's word on it.",
"type": "string"
},
"valid": {
"description": "Whether the signature holds.",
"type": "boolean"
}
},
"required": [
"valid",
"kind",
"note"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ef5793e5d7f04649177a6607503d012d74cc5c2cf5661761471f49245105c0b1 | sha256sum