Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

SCVD General Store

REMOTE · SCVD.STORE · SCANNED SEP 20

Evidence observatory for agentic commerce: x402 preflight, receipt checks, settlement attestations.

Available components

0 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 12078 tokens (~416/item across 29 items; 20 tools + 9 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Tools include usage examples.Pass
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "check_before_you_pay" implies "pay" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the SCVD General Store MCP server?

SCVD General Store is a hosted endpoint at https://scvd.store/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · scvd.store

# add to Claude Code
claude mcp add --transport http store-scvd-general-store 'https://scvd.store/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "store-scvd-general-store": {
      "url": "https://scvd.store/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "store-scvd-general-store": {
      "type": "http",
      "url": "https://scvd.store/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.store-scvd-general-store]
url = "https://scvd.store/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "store-scvd-general-store": {
      "type": "remote",
      "url": "https://scvd.store/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add store-scvd-general-store --url 'https://scvd.store/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  store-scvd-general-store:
    url: "https://scvd.store/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "store-scvd-general-store": {
      "Transport": "http",
      "Url": "https://scvd.store/mcp"
    }
  }
}
# add to Vellum
assistant mcp add store-scvd-general-store -t streamable-http -u 'https://scvd.store/mcp'
// mcp.json
{
  "mcpServers": {
    "store-scvd-general-store": {
      "type": "http",
      "url": "https://scvd.store/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 340 → 416 functional
    • “buy_human_task” added an optional parameter “came_from” cosmetic
    • “buy_human_task” added an optional parameter “client” cosmetic
    • “buy_human_task” added an optional parameter “model” cosmetic
    • “buy_human_task” added an optional parameter “operator” cosmetic
    • “buy_human_task” added an optional parameter “operator_kind” cosmetic
    • “buy_human_task” added an optional parameter “prior_cert_id” cosmetic
    • “buy_memory_anchor” added an optional parameter “came_from” cosmetic
    • “buy_memory_anchor” added an optional parameter “client” cosmetic
    • “buy_memory_anchor” added an optional parameter “model” cosmetic
    • “buy_memory_anchor” added an optional parameter “operator” cosmetic
    • “buy_memory_anchor” added an optional parameter “operator_kind” cosmetic
    • “buy_memory_anchor” added an optional parameter “prior_cert_id” cosmetic
    • “buy_observation” added an optional parameter “came_from” cosmetic
    • “buy_observation” added an optional parameter “client” cosmetic
    • “buy_observation” added an optional parameter “model” cosmetic
    • “buy_observation” added an optional parameter “operator” cosmetic
    • “buy_observation” added an optional parameter “operator_kind” cosmetic
    • “buy_observation” added an optional parameter “prior_cert_id” cosmetic
    • “buy_signed_record” added an optional parameter “came_from” cosmetic
    • “buy_signed_record” added an optional parameter “client” cosmetic
    • “buy_signed_record” added an optional parameter “model” cosmetic
    • “buy_signed_record” added an optional parameter “operator” cosmetic
    • “buy_signed_record” added an optional parameter “operator_kind” cosmetic
    • “buy_signed_record” added an optional parameter “prior_cert_id” cosmetic
    • “buy_simple” added an optional parameter “came_from” cosmetic
    • “buy_simple” added an optional parameter “client” cosmetic
    • “buy_simple” added an optional parameter “model” cosmetic
    • “buy_simple” added an optional parameter “operator” cosmetic
    • “buy_simple” added an optional parameter “operator_kind” cosmetic
    • “buy_simple” added an optional parameter “prior_cert_id” cosmetic
    • “buy_small_pleasure” added an optional parameter “came_from” cosmetic
    • “buy_small_pleasure” added an optional parameter “client” cosmetic
    • “buy_small_pleasure” added an optional parameter “model” cosmetic
    • “buy_small_pleasure” added an optional parameter “operator” cosmetic
    • “buy_small_pleasure” added an optional parameter “operator_kind” cosmetic
    • “buy_small_pleasure” added an optional parameter “prior_cert_id” cosmetic
    • “check_before_you_pay” added an optional parameter “came_from” cosmetic
    • “check_before_you_pay” added an optional parameter “client” cosmetic
    • “check_before_you_pay” added an optional parameter “model” cosmetic
    • “check_before_you_pay” added an optional parameter “operator” cosmetic
    • “check_before_you_pay” added an optional parameter “operator_kind” cosmetic
    • “check_before_you_pay” added an optional parameter “prior_cert_id” cosmetic
    • “look_at_door” added an optional parameter “came_from” cosmetic
    • “look_at_door” added an optional parameter “client” cosmetic
    • “look_at_door” added an optional parameter “model” cosmetic
    • “look_at_door” added an optional parameter “operator” cosmetic
    • “look_at_door” added an optional parameter “operator_kind” cosmetic
    • “look_at_door” added an optional parameter “prior_cert_id” cosmetic
    • “preflight_endpoint” added an optional parameter “came_from” cosmetic
    • “preflight_endpoint” added an optional parameter “client” cosmetic
    • “preflight_endpoint” added an optional parameter “model” cosmetic
    • “preflight_endpoint” added an optional parameter “operator” cosmetic
    • “preflight_endpoint” added an optional parameter “operator_kind” cosmetic
    • “preflight_endpoint” added an optional parameter “prior_cert_id” cosmetic
    • “buy_observation” reworded the description of “digest” cosmetic
    • “buy_observation” reworded the description of “host” cosmetic
    • “buy_observation” reworded the description of “wallet” cosmetic
  • 17 Sept 26 0
    • New resource “payment_breakdown” functional
  • 16 Sept 26 0
    • Tool “buy_human_task” rewrote its description, which is the text the model reads security
    • Tool “buy_memory_anchor” rewrote its description, which is the text the model reads security
    • Tool “buy_observation” rewrote its description, which is the text the model reads security
    • Tool “buy_signed_record” rewrote its description, which is the text the model reads security
    • Tool “buy_small_pleasure” rewrote its description, which is the text the model reads security
    • Tool “check_purchase” rewrote its description, which is the text the model reads security
    • Schema quality: 418 → 350 functional
  • 15 Sept 26 0
    • Tool “buy_small_pleasure” rewrote its description, which is the text the model reads security
    • “buy_observation” reworded the description of “nonce” cosmetic
    • “buy_observation” reworded the description of “payment_payload” cosmetic
  • 14 Sept 26 0
    • Tool “buy_simple” rewrote its description, which is the text the model reads security
    • Tool “buy_small_pleasure” rewrote its description, which is the text the model reads security
    • Tool “ring_bell” rewrote its description, which is the text the model reads security
    • New tool “look_in_window” functional
    • New tool “read_binder” functional
    • “ring_bell” added an optional parameter “pass_id” cosmetic
    • “ring_bell” added an optional parameter “wallet” cosmetic
    • “buy_human_task” reworded the description of “purpose” cosmetic
    • “buy_memory_anchor” reworded the description of “purpose” cosmetic
    • “buy_observation” reworded the description of “purpose” cosmetic
    • “buy_signed_record” reworded the description of “purpose” cosmetic
    • “buy_simple” reworded the description of “purpose” cosmetic
    • “buy_small_pleasure” reworded the description of “purpose” cosmetic
  • 12 Sept 26 0
    • Tool “buy_human_task” rewrote its description, which is the text the model reads security
    • Tool “buy_small_pleasure” rewrote its description, which is the text the model reads security
    • “buy_observation” added an optional parameter “expected_amount_usdc” cosmetic
    • “buy_observation” added an optional parameter “payment_response” cosmetic
    • “buy_human_task” reworded the description of “callback_url” cosmetic
    • “buy_observation” reworded the description of “mandate” cosmetic
    • “buy_observation” reworded the description of “max_usd” cosmetic
    • “buy_observation” reworded the description of “no_spend_controls” cosmetic
    • “buy_observation” reworded the description of “payer” cosmetic
    • “buy_observation” reworded the description of “recipient” cosmetic
  • 11 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “buy_human_task” rewrote its description, which is the text the model reads security
    • Tool “buy_memory_anchor” rewrote its description, which is the text the model reads security
    • Tool “buy_observation” rewrote its description, which is the text the model reads security
    • Tool “buy_signed_record” rewrote its description, which is the text the model reads security
    • Tool “buy_simple” rewrote its description, which is the text the model reads security
    • Tool “buy_small_pleasure” rewrote its description, which is the text the model reads security
  • 10 Sept 26 0
    • Tool “buy_signed_record” rewrote its description, which is the text the model reads security
    • Tool “find_in_catalog” rewrote its description, which is the text the model reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://scvd.store/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=scvd.store CN=WE1,O=Google Trust Services,C=US 19 Sept 2026 18 Dec 2026 ECDSA 256 ECDSA-SHA256 efac7998ed4739811301d07f7879f8cc
SANs: scvd.store, *.scvd.store
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of scvd.store. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
store. present 2327 13 Verified
scvd.store. present 2371 13 Verified
scvd.store. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://scvd.store/mcp Verified 200
http (plaintext) http://scvd.store/mcp HTTPS enforced 301 https://scvd.store/mcp
MCP tools · 20 exposed · ~10,781 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
buy_human_task ~982

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. Items on this shelf (pass one as item_id): - 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 - 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 On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Required beyond item_id: aura_walk needs url. Other items need only item_id. Choose 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 tas…

NameTypeReqDescription
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
callback_urlstringOptional 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.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
detailstringWhat you need the keeper to know — the shape of the work, 600 characters. Recorded as written, never treated as instructions.
item_idstringyesWhich item on this shelf to buy. Required. Each item's own required fields are listed in this schema's allOf branches and in the description above.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
urlstringYour 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 pa…
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
commissionobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
completion_proofobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
messagestringThe store's confirmation line.
order_idstringYour place in the human queue. Human-queue items.
order_urlstringPoll here over HTTP, or call check_order with the order_id on this door; completed orders carry the goods.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
signaturestringed25519 signature over the certificate.
sla_hoursnumberThe delivery promise, in hours.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"item_id":"the_collab"}
{"item_id":"aura_walk","url":"https://your-shop.example/api/buy/thing"}
buy_memory_anchor ~763

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. Items on this shelf (pass one as item_id): - context_anchor: Context Anchor, $1 fixed, one-off, instant. Store a memory I can read back next session On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Required beyond item_id: context_anchor needs summary. Other items need only item_id. Choose 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.

NameTypeReqDescription
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
item_idstringyesWhich item on this shelf to buy. Required. Each item's own required fields are listed in this schema's allOf branches and in the description above.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
summarystringThe 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…
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
deliverablestringThe goods themselves, as text. Instant items.
messagestringThe store's confirmation line.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
signaturestringed25519 signature over the certificate.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"item_id":"context_anchor","summary":"I am friendly-agent, mid-task on a research project; resume from step 4."}
buy_observation ~3,108

Purpose: a signed settlement attestation for an x402 payment on Base, Polygon or Solana, a signed x402 conformance audit, x402 endpoint monitoring, a signed x402 payment client test, an x402 launch check, or a Bitcoin timestamp — have a disinterested third party go and look at something, then sign what it saw: whether a URL was still answering hours later, or what the chain actually says about a settlement. The signed observation is evidence from someone who is not you and not the party being checked, which is the whole point: a self-report cannot do this job. Use when an agent needs its own claim, or a counterparty's, corroborated by an outside observer — or its own digest committed into Bitcoin time, which is the same primitive pointed at the clock. Prices run $0.001 to $49 depending on item_id. Items on this shelf (pass one as item_id): - settlement_attestation: Settlement Attestation, $0.004 fixed, one-off, instant. Prove to a third party that a payment actually settled on chain - 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 - 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 - attestation_bundle: A Sheaf of Attestations, $0.05 fixed, one-off, instant. Prove a whole run of payments settled, one signed receipt per transaction - 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 - 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 - a2a_repair_kit: The A2A Repair Kit, $49 fixed, one-off, instant. Find reproducible failu…

NameTypeReqDescription
addressstringThe 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 a…
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
amount_usdcnumberOptional. Require a transfer of exactly this many USDC. Unstated fields widen the match, which is why the query is echoed onto the artifact.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
claimstringOptional. Your own account of what happened, stored verbatim and marked declared. Never checked.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
declared_cap_usdcnumberOptional, 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…
digeststringsha256 of bytes you keep: exactly 64 hex characters, no 0x prefix, not base64, not the bytes themselves. The store never sees the bytes.
expected_amount_usdcnumberOptional positive USDC amount claimed for this purchase.
expires_atstringOptional claimed expiry, ISO 8601. Declared, never enforced by the store.
hoststringA 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…
hoursstringOptional 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.
item_idstringyesWhich item on this shelf to buy. Required. Each item's own required fields are listed in this schema's allOf branches and in the description above.
labelstringOptional: your own claim about what the digest covers, stored verbatim and never checked.
launch_check_idstringOptional. A launch check you hold about the same door, for the delivery section.
mandatestringThe 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,…
mandate_idstringOptional. A mandate this purchase was made under; its declared cap prints beside the settled amount, never enforced.
max_usdstringOptional 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 c…
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
networkstringInspect 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 (ne…
no_spend_controlsstringOptional: "true" for spendControls: false, "false" for enabled controls, or empty to omit. Declared, never verified.
noncestringOptional, 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 whe…
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
payerstringOptional payer: 0x EVM address, or Solana public key for a Solana transaction.
payment_payloadstringOptional. 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 e…
payment_responsestringOptional. 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…
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
recipientstringOptional recipient: 0x EVM address, or Solana public key for a Solana transaction.
submitted_asstringWho is submitting: the agent recording its own claimed instructions (default), or the human principal's own client. Recorded as a claim either way.
tx_hashstringThe 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.
tx_hashesstring2 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.
urlstringOptional. The endpoint the purchase was made at, so the door section can be assembled.
walletstringThe 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 — o…
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
deliverablestringThe goods themselves, as text. Instant items.
messagestringThe store's confirmation line.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
signaturestringed25519 signature over the certificate.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"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"}
buy_signed_record ~1,138

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.) Items on this shelf (pass one as item_id): - hello: A Signed Hello, $0.5 fixed, one-off, instant. Prove my payment code works end to end against a real store - 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 - 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 - coffees_for_closers: Coffee's for Closers, $0.99 fixed, one-off, instant. Put a win I closed on a signed record - the_confession: The Confession, $0.01 fixed, one-off, instant. Say the thing once, anonymously, to a counter that keeps it - 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 On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Required beyond item_id: graffiti_on_a_train needs tag; coffees_for_closers needs win; the_confessi…

NameTypeReqDescription
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
confessionstringThe thing itself, 500 characters. Recorded as written, never treated as instructions; anonymised unless you sign it.
item_idstringyesWhich item on this shelf to buy. Required. Each item's own required fields are listed in this schema's allOf branches and in the description above.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
pass_idstringAn existing pass id to extend by 30 days instead of starting a new pass.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
sign_asstringOptional name to sign with. Unstated, the confession stays anonymous.
tagstringYour 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.
winstringThe thing you closed, shipped, landed, or finished. Recorded on the certificate verbatim; stored as written, never treated as instructions.
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
deliverablestringThe goods themselves, as text. Instant items.
messagestringThe store's confirmation line.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
signaturestringed25519 signature over the certificate.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"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"}
buy_simple ~725

Purpose: buy one of the few things that need no reading at all — the front counter. Every one of these takes no arguments, costs one fixed price, arrives in the response, and cannot sell out. Buy it in one call and you are done — nothing to poll, nothing to remember, no second request. Whatever you get back is signed, and anyone can check it free and forever at /api/verify/{id} without asking us. That is the whole thing; the deeper machinery is there if you want it and never required to buy. Every item here also sells on its theme shelf (another buy_* tool); this counter is a second door to the same goods, not a different product — same item_id, same price, same signed certificate through either. If unsure which tool to use, use this one. Pass one of these as item_id. No other field is required; optional receipt fields are listed in inputSchema: - small_blessing: A Small Blessing, $0.005 fixed, one-off - daily_fortune: The Daily Fortune, $0.01 fixed, one-off - window_pick: a window pick, $0.49 fixed, one-off - hello: A Signed Hello, $0.5 fixed, one-off - pack: a pack of cards, $0.99 fixed, one-off Payment rides x402 in _meta['x402/payment']; without it this returns error 402 with the terms in error.data. Sign one of the offered amounts and call again. On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Reuse _meta['x402/idempotency-key'] (16-128 chars, secret): same item/payer/key returns the original result when available, or pending status, no second charge. Use idempotency.suggested_key only without an earlier key. A fresh payment without a key can charge again.

NameTypeReqDescription
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
item_idstringyesWhich item to buy. No other field is required.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
deliverablestringThe goods themselves, as text. Instant items.
messagestringThe store's confirmation line.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
purchased_textobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
signaturestringed25519 signature over the certificate.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"item_id":"small_blessing"}
{"item_id":"daily_fortune"}
{"item_id":"window_pick"}
{"item_id":"hello"}
{"item_id":"pack"}
buy_small_pleasure ~928

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.) Items on this shelf (pass one as item_id): - small_blessing: A Small Blessing, $0.005 fixed, one-off, instant. Settle a real x402 payment for the smallest amount possible - daily_fortune: The Daily Fortune, $0.01 fixed, one-off, instant. Read the same line every other agent gets today - 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 - 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 - 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 On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Only item_id is required on this shelf. Choose 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-12…

NameTypeReqDescription
agent_namestringOptional name to put on the certificate and patron badge, up to 80 characters.
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
item_idstringyesWhich item on this shelf to buy. Required. Each item's own required fields are listed in this schema's allOf branches and in the description above.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
purposestringOptional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions.
NameTypeReqDescription
badge_urlstringYour patron badge, SVG.
cert_idstringyesThe signed certificate's id.
deliverablestringThe goods themselves, as text. Instant items.
messagestringThe store's confirmation line.
paid_usdcnumberWhat settled, in USDC.
patron_numbernumberyesYour sequential patron number.
purchased_textobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
signaturestringed25519 signature over the certificate.
tip_usdcnumberAnything above the minimum.
verify_urlstringCheck the signature here any time, free.
{"item_id":"small_blessing"}
{"item_id":"daily_fortune"}
{"item_id":"luckies"}
{"item_id":"pack"}
{"item_id":"window_pick"}
check_a2a_card ~134

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.

NameTypeReqDescription
urlstringyesFull public HTTPS agent-card URL, no query or fragment.
NameTypeReqDescription
nextstringyes
readingobjectyes
repairsarrayyes
signedbooleanyes
{"url":"https://your-agent.example/.well-known/agent-card.json"}
check_before_you_pay ~579

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.

NameTypeReqDescription
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
client_profileobjectThe caller's own x402 client settings. Absent, the replay runs against a client configured with nothing, the case that loses money quietly.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
urlstringyesThe https x402 door you are about to pay.
NameTypeReqDescription
the_doorobjectThe free preflight's report on the same probe. One knock, two readings, so they can never describe different bytes.
these_are_different_questionsstringWhy a well-shaped door can still be unpayable by you.
will_your_client_paystringyeswould_sign | would_throw | cannot_simulate. would_sign means your client reaches a signature, NOT that the purchase succeeds.
your_clientobjectyesThe replay: the accept it picks, everything dropped and at which stage, the hazards on the one it picked, and what this simulation cannot see.
{"url":"https://example.com/api/paid-answer"}
{"client_profile":{"max_amount_per_payment_usd":1},"url":"https://example.com/api/paid-answer"}
check_conformance ~263

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.

NameTypeReqDescription
artifactstringyesThe signed offer or receipt as a compact JWS: header.payload.signature, base64url.
kindstringOptional. The artifact kind; detected from the artifact when absent.
public_key_hexstringOptional ed25519 public key, hex. Supplying it makes the check fully offline.
NameTypeReqDescription
key_resolutionstringHow the issuer's key was obtained, or why it was not.
kindstring|nullyesThe artifact kind, or null when it could not be detected.
liveboolean|nullSeparate from conformance: an expired offer can conform and not be payable. Null for receipts.
verdictstringyesThe desk's finding on the artifact.
{"artifact":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6d2ViOmV4YW1wbGUuY29tIn0.c2lnbmF0dXJl"}
check_order ~151

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.

NameTypeReqDescription
order_idstringyesThe order_id from a human-queue purchase result.
NameTypeReqDescription
badge_urlstringThe patron badge, an SVG.
callbackobjectRequested callback outcome, separate from completion of the goods.
commissionobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
completed_atstringWhen it was delivered, ISO 8601. Present once completed.
completion_proofobjected25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.
created_atstringyesWhen the order was taken, ISO 8601.
deliverablestringThe goods, as text. Present once status is completed.
item_idstringyesWhat was bought.
item_namestringIts name on the shelf.
messagestringyesThe store's word on where things stand.
order_idstringyesThe order polled.
patron_numbernumberYour sequential patron number.
sla_hoursnumberyesThe delivery promise, in hours from created_at.
statusstringyesWhere the order stands. Completed is terminal.
webhookstringThe recorded callback outcome; also available as callback.result.
window_breachedobjectPresent only past the promised window. The store counting a missed promise against itself, in full.
{"order_id":"ord_example"}
check_purchase ~104

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.

NameTypeReqDescription
purchase_idstringyesThe recovery.purchase_id from your purchase response.
status_tokenstringyesThe private recovery.status_token from the purchase response.
NameTypeReqDescription
chargedboolean|null
delivery_statestringWhether the good is delivered, a human order exists, or delivery is not yet established.
fulfillmentobjectRecovered purchase response, when available.
next_actionstring
payment_statestringThe recorded payment outcome.
purchase_idstringThe original purchase identifier.
recovery_statestringRecovery readiness, separate from payment and human-work completion.
requeststringThe full original request.
retry_after_secondsinteger|nullSuggested delay before another free status read while recovery is pending; not a delivery deadline. Null when no recovery poll is advised.
settlement_attemptedbooleanThis status read never submits payment.
termsobject
{"purchase_id":"0000000000000000000000000000000000000000000000000000000000000000","status_token":"0000000000000000000000000000000000000000000000000000000000000000"}
find_in_catalog ~162

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.

NameTypeReqDescription
item_idstringOne 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.
max_price_usdcnumberA ceiling in USDC. Items at or below it match.
qstringWords to match against an item's id, name, subtitle and description.
NameTypeReqDescription
how_this_was_orderedstringThat the order is the shelf's own and nothing is ranked.
itemsarrayyesThe rows, in the shelf's own order.
matchednumberyesHow many items matched.
ofnumberyesHow many are on the shelf, the denominator.
publicationsarrayPublication indexes outside menu search; archived collections are opt-in, not current offerings.
queryobjectThe filter that was applied, echoed.
scopestring
whole_cataloguestringThe full catalogue, for a caller that wants every field.
{"max_price_usdc":0.01}
{"q":"watch"}
{"item_id":"spot_check"}
look_at_door ~506

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.

NameTypeReqDescription
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
sincestringOptional. A signed week, to reproduce against that week's row.
urlstringyesThe https x402 door you are asking about.
NameTypeReqDescription
headlinestringyesOne derived sentence: what the door answered now and what the chain holds.
heldobjectyesThe held half: counts with denominators, the tier with its fraction and rows, the last probed round, the passport decision, when it was derived.
nowobjectyesThe live half: the preflight verdict, failed checks, advisories, and the whole preflight report.
now_against_heldobjectyessame | changed | no_prior | not_comparable, with both sides named.
reproduceobjectThe live probe against one signed row: the class, both sides, the failed checks added and cleared, the citation.
what_this_is_notstringNot a score, a rank, or a safety threshold — the standing caveat.
{"url":"https://example.com/api/paid-answer"}
{"since":"2026-W34","url":"https://example.com/api/paid-answer"}
look_in_window ~73

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
pick_urlstringThe buy door for a window pick.
sizenumberyesHow many packs the window shows.
windowarrayyesPacks, newest first, each with its cards.
{}
preflight_endpoint ~454

x402 endpoint preflight, free. 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, testnet catch. 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.

NameTypeReqDescription
came_fromstringOptional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does.
clientstringOptional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate.
modelstringOptional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate.
operatorstringOptional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate.
operator_kindstringOptional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself.
prior_cert_idstringOptional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed.
urlstringyesThe https endpoint a buyer would GET expecting a 402 challenge.
NameTypeReqDescription
reached_levelstringyesHow far the probe got on the evidence ladder: none | L1 | L2 | L3a.
reached_level_meaningstringWhat that rung does and does not claim.
single_probe_notestringOne moment — the standing caveat. Two requests only where a door refuses the first verb.
verdictstringyesready | not_ready | unreachable.
{"url":"https://example.com/api/paid-answer"}
read_binder ~92

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.

NameTypeReqDescription
walletstringyesA 0x address (forty hex characters) or a base58 Solana address.
NameTypeReqDescription
cardsarrayyesNewest first.
countnumberyesCards listed.
truncatedbooleanTrue when the binder holds more than one page lists.
walletstringyesThe wallet, as keyed.
{"wallet":"0x2222222222222222222222222222222222222222"}
read_store_guide ~102

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
guidestringyesThe whole guide, plain text.
{}
ring_bell ~134

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.

NameTypeReqDescription
agent_namestringWho's ringing. Optional but neighborly.
pass_idstringOptional: a current patron pass id; a Regular gets two packs at full odds.
walletstringOptional: a 0x or base58 wallet, so the day's card lands in its binder.
NameTypeReqDescription
countnumberyesTotal rings, all time.
messagestringyesWhat the bell said.
pressingobjectOn a fresh ring: one common card, signed, with its page and verify URLs. Absent on a repeat.
streakobjectWith a wallet: consecutive days rung; a pack every seventh day, Bellringer II on the thirtieth.
{"agent_name":"my-agent"}
sign_guestbook ~231

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.

NameTypeReqDescription
identity_public_keystringOptional 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 con…
identity_signaturestringOptional 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.
messagestringyesYour message, up to 500 characters.
namestringyesYour name, up to 80 characters.
verified_identitystringOptional profile URL. Stored as claimed and marked unverified, because we haven't.
NameTypeReqDescription
entry_idstringYour entry's id.
messagestringyesThe store's thanks.
sticker_urlstringyesThe visitor sticker, SVG, free forever.
{"message":"Passed through, bought nothing, liked the bell.","name":"my-agent"}
verify_artifact ~152

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.

NameTypeReqDescription
idstringyesA cert_, stamp_, or anchor_ id.
NameTypeReqDescription
kindstringyescertificate | stamp | anchor | unknown.
notestringyesThe store's word on it.
validbooleanyesWhether the signature holds.
{"id":"cert_4dww28dx5j"}
Common questions

What is the SCVD General Store MCP server?

SCVD General Store is an MCP server listed in the public MCP registry as store.scvd/general-store. Evidence observatory for agentic commerce: x402 preflight, receipt checks, settlement attestations. This page covers its hosted endpoint (https://scvd.store/mcp).

Is the SCVD General Store MCP server safe to use?

SCVD General Store scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the SCVD General Store MCP server expose?

SCVD General Store exposes 20 tools: check_a2a_card, check_purchase, read_store_guide, ring_bell, read_binder, and 15 more. Their descriptions and schemas cost roughly 10,781 tokens of context every time the server is loaded.

Does the SCVD General Store MCP server require authentication?

No. We connected to SCVD General Store without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the SCVD General Store MCP server still maintained?

SCVD General Store is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.