Every API here is available over the APIs.io API and to AI agents over MCP.
{"openapi":"3.1.0","info":{"title":"SCVD General Store","version":"0.3.0","description":"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. Free shelves are plain HTTPS; purchases settle in USDC over x402 v2 on Base, Polygon, Arbitrum, World, Solana, or USDC over MPP (evm/charge) on Base for every shelf item, every publication page and the commission desk. 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. 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 it never asks for credentials, keys, or wallet secrets.","contact":{"url":"https://scvd.store","email":"sean@recordcreativeco.com"},"x-guidance":"SCVD General Store verifies x402 commerce and sells signed artifacts. Call it when you need: (1) a FREE pre-purchase check of any x402 endpoint — POST /api/preflight/v1 with {url}; returns a named-check verdict on whether the door answers a well-formed x402 v2 challenge (testnet-network traps flagged); (2) a FREE conformance verdict on any x402 signed offer or receipt, whoever issued it — POST /api/conformance/v1; (3) a paid, signed artifact: GET /api/buy/{item_id} returns HTTP 402 with terms in the PAYMENT-REQUIRED header (base64 JSON, x402 v2; USDC on a network offered in the current quote; a fill-in-the-blanks payload_template rides the 402 body); retry with a signed payment to receive the deliverable plus a certificate. Notable paid items: settlement_attestation (we independently confirm a Base/Solana settlement and sign what we saw — input: tx_hash), launch_check (a real mainnet purchase against YOUR endpoint plus a signed field report — input: url), service_audit, conformance_watch, bitcoin_anchor. Inputs are query parameters, declared per item in /menu.json; outputs are JSON with a certificate id. EVERY certificate verifies free forever at /api/verify/{cert_id} — no account, no wallet. Starting prices run $0.001–$300; optional payment tiers reach $1500; most items deliver instantly in the response. Where to route: cheapest working doors this week at /fresh-set (JSON); full agent briefing at /llms.txt. Before you start: free instruments need only plain HTTPS (no account, key or SDK); a purchase needs an x402 v2 client and a wallet holding USDC on Base (eip155:8453), Polygon (eip155:137), Arbitrum (eip155:42161), World (eip155:480), Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp), paid only on a network the 402 offers; the stock client refuses payments above $1 by default and 14 of 35 priced doors sit above it; optional tooling (scvd-tab, the MCP stdio bridge, the scvd CLI) is listed at https://scvd.store/agents.md and none of it is required."},"servers":[{"url":"https://scvd.store"}],"externalDocs":{"url":"https://scvd.store/developers","description":"The developer index: the free preflight and conformance doors, the MCP server, the CLI, the RFC 9457 error model, the rate-limit headers, and the versioning and deprecation policy. The full agent briefing is at /llms.txt."},"components":{"securitySchemes":{"purchaseStatusToken":{"type":"http","scheme":"bearer","description":"Private recovery.status_token returned by a catalogue purchase. This capability reads only its original purchase status."}},"schemas":{"A2aSignedObservation":{"type":"object","properties":{"observation":{"type":"object","required":["battery","protocol_version","observed_at","card_url","endpoint","mode","checks","exchanges","counts","gaps"],"properties":{"battery":{"type":"string"},"protocol_version":{"type":["string","null"]},"observed_at":{"type":"string","format":"date-time"},"card_url":{"type":"string"},"endpoint":{"type":["string","null"]},"mode":{"type":"string","enum":["card","runtime"]},"counts":{"type":"object","properties":{"pass":{"type":"integer","minimum":0},"fail":{"type":"integer","minimum":0},"not_observed":{"type":"integer","minimum":0},"not_applicable":{"type":"integer","minimum":0}}},"gaps":{"type":"array","items":{"type":"string"}},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["pass","fail","not_observed","not_applicable"]},"detail":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}},"spec":{"type":"string"}},"required":["id","state","detail","evidence","spec"]}},"exchanges":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"method":{"type":"string","enum":["GET","POST"]},"request":{"type":["string","null"]},"status":{"type":["integer","null"]},"content_type":{"type":["string","null"]},"response":{"type":["string","null"]},"gap":{"type":["string","null"]}},"required":["id","url","method","request","status","content_type","response","gap"]}},"entitlement":{"type":"object","properties":{"kit_id":{"type":"string"},"started_at":{"type":"string"},"ends_at":{"type":"string"},"recheck_until":{"type":"string"}}},"association":{"type":"object","properties":{"kit_id":{"type":"string"},"role":{"type":"string","enum":["watch","recheck"]},"baseline_hash":{"type":"string"},"slot":{"type":"integer"},"scheduled_for":{"type":"string"}}}}},"evidence_hash":{"type":"string"},"signature":{"type":"string"},"public_key":{"type":"string"},"signature_covers":{"type":"string"}},"required":["observation","evidence_hash","signature","public_key","signature_covers"]},"A2aRecheck":{"type":"object","properties":{"status":{"type":"string","enum":["complete","running","unavailable","unauthorized","expired","authorization_required"]},"report":{"$ref":"#/components/schemas/A2aSignedObservation"}},"required":["status"]},"A2aDesk":{"type":"object","properties":{"what_this_is":{"type":"string"},"proposition":{"type":"string"},"for_money":{"type":"string"},"battery":{"type":"string"},"protocol_version":{"type":"string"},"specification":{"type":"string"},"price":{"type":"object","properties":{"description":{"type":"string"},"amount_usdc":{"type":"number"},"cadence":{"type":"string"},"free":{"type":"string"}}},"how_to_call":{"type":"object","properties":{"card_check":{"type":"object"},"setup":{"type":"string"},"authorization_example":{"type":"object"},"purchase":{"type":"object"},"recheck":{"type":"string"},"regression":{"type":"object"},"implementation_quote":{"type":"object"}}},"errors":{"type":"object","additionalProperties":{"type":"string"}},"security":{"type":"object","properties":{"public_data_only":{"type":"boolean"},"stored":{"type":"string"},"authority":{"type":"string"},"conflict":{"type":"string"},"gaps":{"type":"array","items":{"type":"string"}},"bounds":{"type":"object","additionalProperties":{"type":"integer"}}}},"repair_guidance":{"type":"object","additionalProperties":{"type":"object","properties":{"change":{"type":"string"},"acceptance":{"type":"string"},"implementation":{"type":"string"}}}}},"required":["what_this_is","price","how_to_call","errors","security"]},"A2aKit":{"type":"object","properties":{"id":{"type":"string"},"cert_id":{"type":"string"},"started_at":{"type":"string"},"ends_at":{"type":"string"},"recheck_until":{"type":"string"},"report":{"$ref":"#/components/schemas/A2aSignedObservation"},"repairs":{"type":"array","items":{"type":"object","properties":{"check":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}},"spec":{"type":"string"},"change":{"type":"string"},"acceptance":{"type":"string"},"implementation":{"type":"string"},"status":{"type":"string","const":"suggested_not_applied"}}}},"recheck":{"anyOf":[{"$ref":"#/components/schemas/A2aRecheck"},{"type":"null"}]},"watch":{"type":"object","properties":{"scope":{"type":"string"},"complete":{"type":"boolean"},"slots_due":{"type":"integer"},"slots_recorded":{"type":"integer"},"slots_observed":{"type":"integer"},"slots_missed":{"type":"array","items":{"type":"integer"}},"slots_without_observation":{"type":"array","items":{"type":"integer"}},"passes":{"type":"array","items":{"type":"object","properties":{"slot":{"type":"integer"},"report":{"$ref":"#/components/schemas/A2aSignedObservation"}}}}}}},"required":["id","cert_id","report","repairs","recheck","watch"]},"BuyerProof":{"type":"object","description":"ed25519 proof: verify exact UTF-8 signed_payload, then its identities and hashes. RFC 8785 JSON.","properties":{"signed_payload":{"type":"string"},"signature":{"type":"string"},"public_key":{"type":"string"},"signature_covers":{"type":"string"}},"required":["signed_payload","signature","public_key","signature_covers"]},"TradeCheck":{"type":"object","required":["what_this_is","account","would_pass","first_failure","checks","signing_string"],"properties":{"what_this_is":{"type":"string"},"account":{"type":"string"},"dialect":{"type":"object"},"account_provisioned":{"type":"boolean","description":"False while the account's secret is not set on this side; the checks that need none still run."},"secrets_on_this_side":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string","enum":["account","listing"]},"item_id":{"type":"string"}}}},"secret_matched":{"type":"object","properties":{"scope":{"type":"string","enum":["account","listing"]},"item_id":{"type":"string"}}},"note":{"type":"string"},"would_pass":{"type":"boolean"},"first_failure":{"type":"string","nullable":true},"checks":{"type":"object","properties":{"headers":{"type":"object","properties":{"present":{"type":"array","items":{"type":"string"}},"missing":{"type":"array","items":{"type":"string"}}}},"provider_key":{"type":"string","enum":["ok","wrong","missing","not_in_this_dialect","unverifiable"]},"timestamp":{"type":"object","properties":{"raw":{"type":"string","nullable":true},"unit":{"type":"string"},"parsed_ms":{"type":"integer","nullable":true},"skew_seconds":{"type":"integer","nullable":true},"within_window":{"type":"boolean"},"window_seconds":{"type":"integer"}}},"nonce":{"type":"object","properties":{"raw":{"type":"string","nullable":true},"shape_ok":{"type":"boolean","nullable":true}}},"signature":{"type":"object","properties":{"raw":{"type":"string","nullable":true},"prefix_ok":{"type":"boolean"},"hex_ok":{"type":"boolean"},"verified_with":{"type":"string","enum":["current","previous","none","unverifiable"]}}},"replay":{"type":"string","enum":["fresh","already_presented","store_unavailable"]}}},"signing_string":{"type":"object","properties":{"template":{"type":"string"},"length":{"type":"integer"},"sha256":{"type":"string"},"how_to_compare":{"type":"string"}}},"expected_signature":{"type":"string"},"body_bytes":{"type":"integer"},"errors":{"type":"array","items":{"type":"object","required":["status","code","meaning","what_to_do"],"properties":{"status":{"type":"integer"},"code":{"type":"string"},"meaning":{"type":"string"},"what_to_do":{"type":"string"}}}}}},"TradeDelivery":{"type":"object","required":["item_id","deliverable","settled_via","trade","certificate","signature","public_key","verify_url"],"properties":{"message":{"type":"string"},"item_id":{"type":"string"},"deliverable":{"type":"string"},"settled_via":{"type":"string","enum":["trade_account","trade_account_test"]},"trade":{"type":"object","properties":{"account":{"type":"string"},"partner_name":{"type":"string"},"trade_price_usd":{"type":"number"},"partner_share_bps":{"type":"integer"},"net_usd":{"type":"number"},"instruction_digest":{"type":"string"},"order_ref":{"type":"string"},"what_this_settles":{"type":"string"}}},"patron_number":{"type":"integer"},"certificate":{"type":"object"},"signature":{"type":"string"},"signature_jcs":{"type":"string"},"public_key":{"type":"string"},"signed_payload":{"type":"string"},"verify_url":{"type":"string","format":"uri"},"signed_with":{"type":"string","enum":["current","previous"]},"replayed_order_ref":{"type":"boolean"}}},"TradeRefusal":{"type":"object","required":["delivered","billed","code","error"],"properties":{"delivered":{"type":"boolean","enum":[false]},"billed":{"type":"boolean","enum":[false]},"code":{"type":"string"},"error":{"type":"string"}}},"Problem":{"type":"object","description":"An RFC 9457 problem object. `error` is the store's long-standing human-readable field and is always present; the RFC fields sit beside it.","properties":{"type":{"type":"string","format":"uri","description":"A URI identifying the problem class. Dereferenceable at this origin where one exists."},"title":{"type":"string","description":"A short, stable summary of the problem class."},"status":{"type":"integer","description":"The HTTP status code, repeated in the body."},"detail":{"type":"string","description":"What went wrong with THIS request, in plain language."},"instance":{"type":"string","format":"uri","description":"The request path."},"error":{"type":"string","description":"The store's human-readable message. Always present, including on responses that predate the typed model."},"retry_same_request":{"type":"boolean","const":false,"description":"Present on repair responses: correct the selection or inputs before retrying."},"next_step":{"type":"object","description":"Optional free read after a refusal. Catalog and input repairs also include an equivalent MCP read. No payment or buyer arguments are forwarded.","required":["method","url","payment_required"],"properties":{"method":{"type":"string","const":"GET"},"url":{"type":"string","format":"uri"},"payment_required":{"type":"boolean","const":false},"mcp":{"type":"object","required":["url","tool","arguments"],"properties":{"url":{"type":"string","format":"uri"},"tool":{"type":"string","const":"find_in_catalog"},"arguments":{"type":"object","properties":{"item_id":{"type":"string"}},"additionalProperties":false}}}}}},"required":["error"]},"DeliveryEnvelope":{"type":"object","required":["message","item_id","deliverable","paid_usdc","certificate","signature","public_key","algorithm","verify_url","verification"],"properties":{"message":{"type":"string","description":"The counter's own words."},"item_id":{"type":"string"},"deliverable":{"description":"The goods. Its shape is the item's own — a note, a reading, a record — which is why this field is deliberately untyped here rather than falsely narrowed to one item's payload."},"paid_usdc":{"type":"number"},"tip_usdc":{"type":"number","description":"What was paid above the ask, where anything was."},"patron_number":{"type":"integer"},"commission":{"$ref":"#/components/schemas/WatchCommission"},"purchased_text":{"$ref":"#/components/schemas/BuyerProof"},"confession_receipt":{"type":"object","description":"Confession only. Private proof binding the stored text to this purchase. Absent from public certificates and verification. Share only by choice.","required":["receipt","signed_payload","signature","public_key","signature_covers"],"properties":{"receipt":{"type":"object","required":["type","cert_id","confession_id","confession","recorded_at"],"properties":{"type":{"type":"string","const":"scvd.confession-receipt.v1"},"cert_id":{"type":"string"},"confession_id":{"type":"string"},"confession":{"type":"string"},"recorded_at":{"type":"string","format":"date-time"},"sign_as":{"type":"string"}}},"signed_payload":{"type":"string","description":"JCS of receipt. Verify the ed25519 signature over these exact UTF-8 bytes."},"signature":{"type":"string"},"public_key":{"type":"string"},"signature_covers":{"type":"string"}}},"badge_url":{"type":"string","format":"uri"},"certificate":{"type":"object","description":"The signed record of this purchase."},"signature":{"type":"string"},"public_key":{"type":"string"},"algorithm":{"type":"string","description":"ed25519."},"signed_payload":{"type":"string"},"signature_covers":{"type":"string","description":"Exactly which bytes were signed."},"signature_jcs":{"type":"string"},"signature_jcs_discipline":{"type":"string"},"signature_jcs_covers":{"type":"string"},"verify_url":{"type":"string","format":"uri","description":"Where this purchase verifies — free, forever, by anyone, including people who did not buy it."},"store_identity":{"type":"object"},"verification":{"type":"object","description":"How to check the signature without asking us."},"attest_this_purchase":{"type":"object"},"store_credit":{"type":"object","description":"What banked back to the paying wallet."},"show_your_human":{"type":"string"},"receipt_for_your_human":{"type":"string"},"which_check_is_worth_doing":{"type":"string","description":"The store naming the one check worth running on what it just sold you."}}},"WatchCommission":{"type":"object","description":"Signed original purchase terms. URL watches bind the target and service dates; Operator Statement also binds the wallet, chain, asset and opening position; Recurring Patronage grants bind each purchased extension separately. Decode signed_payload for the certificate ID and exact terms. Present on new purchases and their public records; absent on legacy records. Observations carry their own signatures.","required":["signed_payload","signature","public_key","signature_covers"],"properties":{"signed_payload":{"type":"string","description":"RFC 8785 canonical JSON. Verify the ed25519 signature over these exact UTF-8 bytes."},"signature":{"type":"string"},"public_key":{"type":"string"},"signature_covers":{"type":"string"}}},"OrderReceipt":{"type":"object","required":["message","order_id","status","order_url","paid_usdc"],"properties":{"commission":{"$ref":"#/components/schemas/BuyerProof"},"completion_proof":{"$ref":"#/components/schemas/BuyerProof"},"message":{"type":"string"},"order_id":{"type":"string"},"status":{"type":"string","description":"queued until a human does the work; completed once they have."},"sla_hours":{"type":"integer","description":"The promised window. Miss it and the money comes back — the commitment this number exists to make checkable."},"deliverable":{"description":"The goods, present ONLY when the work was finished inside this request. Absent while the order is still queued, which is the normal case for a human shelf."},"order_url":{"type":"string","format":"uri","description":"Where to poll it."},"paid_usdc":{"type":"number"},"tip_usdc":{"type":"number"},"patron_number":{"type":"integer"},"badge_url":{"type":"string","format":"uri"}}},"PaymentRequiredChallenge":{"type":"object","description":"The x402 v2 challenge, in the response body. The canonical, signable copy of the same terms rides base64-encoded in the PAYMENT-REQUIRED header; this body is the readable twin plus the things a first-time payer needs — a fill-in-the-blanks payload template, the atomic-vs-decimal amount check, and a suggested idempotency key.","required":["error","note","payload_template"],"properties":{"error":{"type":"string","description":"The counter's own sentence about what is being asked for."},"note":{"type":"string","description":"Where the signable requirements are and what to retry with: sign one of the accepts and resend with the PAYMENT-SIGNATURE header. The v1 X-PAYMENT header is still honoured."},"item_id":{"type":"string","description":"The shelf being bought. Present on the /api/buy/* doors; a penny page has no menu item and sends none."},"min_price_usdc":{"type":"number","description":"The cheapest tier on offer, in USDC, on the /api/buy/* doors. Paying above it is a tip and is recorded as one, never required."},"price_usdc":{"type":"number","description":"The minimum page price. Publication doors send this instead of min_price_usdc; higher offered tiers buy the same page and add a tip."},"pay_more_if_you_like":{"type":"string","description":"The penny pages' note that the higher tiers in the header buy exactly the same page and are recorded as a tip."},"pricing":{"type":"string","description":"fixed, or tiered where the item offers more than one price."},"required_params":{"type":"array","items":{"type":"string"},"description":"Query parameters this item refuses to be bought without. Asking the price without them is free; buying without them is refused before any money moves, and a supplied invalid value is refused before terms. Absent where the door takes none."},"required_params_note":{"type":"string"},"input_contract_url":{"type":"string","format":"uri","description":"The free compact item contract: price tiers and the full input schema. Present where required_params is."},"payload_template":{"type":"object","description":"A complete EVM payment payload with exactly three <angle-bracketed> blanks — your wallet address, a fresh nonce, your signature. Everything else is already correct for THIS challenge; `accepted` in particular must stay byte-identical to what was offered."},"payload_template_note":{"type":"string","description":"How to fill the template in, including the EIP-712 domain wall that otherwise fails silently."},"hand_rolling_url":{"type":"string","format":"uri","description":"The worked example, for a client being written by hand."},"amount_check":{"type":"object","description":"The decimal USDC price and the atomic string beside it, stated together — a six-decimal mismatch is the most common way a first payment fails."},"idempotency":{"type":"object","description":"A ready-to-use suggested_key and what it does. Sending it back as Idempotency-Key makes a retry loop safe from a second charge."},"spec":{"type":"object","description":"What this call does and what comes back, machine-readable."},"spec_note":{"type":"string","description":"The same, as one sentence."},"guarantee":{"type":"string","description":"What is promised and — the half that matters — what is not."},"verification":{"type":"object","description":"Everything about this offer that is checkable before signing, from this response and public URLs, without asking the store."},"wallet_safety":{"type":"object","description":"The two mechanisms that protect a payer from their own retry loop, both free and live on every paid door."},"house_rule":{"type":"string","description":"The standing refusal: nothing here acts without your decision, and the store never asks for credentials, keys, or wallet secrets."},"want_something_else":{"type":"string"},"extensions":{"type":"object","description":"x402 extension blocks. `offer-receipt` carries a JWS-signed copy of each accepts entry, so the offer is verifiable against the store's published key before a payment is signed."}}},"PreflightVerdict":{"type":"object","required":["version","verdict","reached_level","checks_vector","checks","advisories","remediation","protocols_spoken","mpp","probe_method","single_probe_note","what_this_cannot_tell_you","our_conflict_of_interest"],"properties":{"version":{"type":"string","description":"The battery that scored this probe."},"verdict":{"type":"string","enum":["ready","not_ready","unreachable","method_unresolved"],"description":"ready = every structural check passed. not_ready = reachable but failed at least one. unreachable = the probe itself could not complete, which says nothing about their code — the detail says whose side the failure was on. method_unresolved = the door refused every HTTP method this probe sends (405/501), so NO check ran and nothing was observed about the challenge; it is a statement about our reach, never a finding against the endpoint, and it is deliberately not scorable as ready or not_ready."},"reached_level":{"type":"string","enum":["none","L1","L2","L3a"],"description":"The rung this probe reached before it stopped."},"reached_level_meaning":{"type":"string"},"network_failure":{"type":"string","enum":["unlocalized"],"description":"Present only when reached_level is \"none\"."},"checks_vector":{"type":"array","description":"The per-check view: a check that never ran is not a check that passed. not_reached means an earlier check failed and blocked_by names it; not_exercised means the door refused every method the probe sends as a method (405/501), so nothing was asked — a wrong verb, never a defect — and refused_methods names them.","items":{"type":"object","required":["name","state","detail"],"properties":{"name":{"type":"string"},"state":{"type":"string","enum":["pass","fail","not_reached","not_exercised"]},"blocked_by":{"type":"string","description":"Set only on not_reached."},"refused_methods":{"type":"array","items":{"type":"string"},"description":"Set only on not_exercised: every method the door refused, in the order sent."},"detail":{"type":"string"}}}},"checks":{"type":"array","description":"The legacy two-state list, unchanged, for consumers that read the old shape.","items":{"type":"object","required":["name","ok","detail"],"properties":{"name":{"type":"string"},"ok":{"type":"boolean"},"detail":{"type":"string"}}}},"advisories":{"type":"array","description":"True and worth knowing, never folded into the verdict.","items":{"type":"object","required":["name","detail"],"properties":{"name":{"type":"string"},"detail":{"type":"string"}}}},"also_under":{"type":"object","description":"The SAME probe scored under the other battery, so a reader comparing verdicts never has to guess whether the doors differed or the rules did.","properties":{"version":{"type":"string"},"verdict":{"type":"string","enum":["ready","not_ready","unreachable"]},"difference":{"type":"string"}}},"protocols_spoken":{"type":"array","items":{"type":"string","enum":["x402","mpp"]},"description":"Which protocols the 402 speaks, derived from its headers: x402 when PAYMENT-REQUIRED is present, mpp when a WWW-Authenticate: Payment challenge parses. The verdict keeps meaning x402-ready, permanently; read this for the union."},"mpp_core":{"type":"object","description":"The additive mpp-core-v1 observable core reading under draft-01. Separates failed checks from unmeasured requirements; never changes the x402 verdict or historical MPP battery.","properties":{"battery":{"type":"string","enum":["mpp-core-v1"]},"spec":{"type":"object"},"state":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"checks":{"type":"array","items":{"type":"object"}},"challenges":{"type":"array","items":{"type":"object"}},"counts":{"type":"object"},"problem":{"type":"object"},"gaps":{"type":"array","items":{"type":"string"}}}},"mpp":{"type":"object","required":["battery","spec","spoken","challenges","checks","advisories","what_this_cannot_tell_you"],"description":"The MPP battery's reading of the same bytes (mpp-v1, draft-00): whether the door speaks it, its challenges summarised, its named checks when it does (none when it does not — a check against no challenge is not an observation), its advisories outside any verdict, and what one unpaid GET cannot tell you.","properties":{"battery":{"type":"string"},"spec":{"type":"string"},"spoken":{"type":"boolean"},"challenges":{"type":"array","items":{"type":"object"}},"checks":{"type":"array","items":{"type":"object","required":["name","ok","detail"],"properties":{"name":{"type":"string"},"ok":{"type":"boolean"},"detail":{"type":"string"}}}},"advisories":{"type":"array","items":{"type":"object","required":["name","detail"],"properties":{"name":{"type":"string"},"detail":{"type":"string"}}}},"the_x402_verdict_above":{"type":"string"},"what_this_cannot_tell_you":{"type":"array","items":{"type":"string"}}}},"remediation":{"type":"array","description":"What to do about it, both sides: one row per failed check or raised advisory that a vocabulary class explains — the class, its definition URL, what the operator does, what the buyer does. Derived from /defects.json through the signal already reported; never part of the verdict; empty on a clean door.","items":{"type":"object","required":["signal","kind","defect_class","definition_url","operator","buyer"],"properties":{"signal":{"type":"string"},"kind":{"type":"string","enum":["check","advisory"]},"defect_class":{"type":"string"},"title":{"type":"string"},"detectable":{"type":"string","enum":["unpaid","paid"]},"definition_url":{"type":"string","format":"uri"},"operator":{"type":"string"},"buyer":{"type":"string"},"falsified_by":{"type":"string"}}}},"probe_method":{"type":"object","description":"Which question the door actually answered. The probe sends GET first (or the method a catalog declared for the resource) and, if that is refused AS a method with 405 or 501, sends exactly one more — the method named in Allow when the 405 carries one, POST otherwise. At most two requests per call, to the same URL, and only ever about the verb.","required":["used","attempted","source","note"],"properties":{"used":{"type":"string","enum":["GET","POST"],"description":"The method whose response produced the checks below."},"attempted":{"type":"array","items":{"type":"string","enum":["GET","POST"]},"description":"Every method sent, in order. More than one means the first was refused as a method."},"source":{"type":"string","enum":["declared","allow-header","fallback","default"],"description":"Where the method came from: declared = a catalog or challenge declared it for this resource and nothing was guessed; allow-header = the door's own 405 named it; fallback = POST, tried once after a method refusal that named nothing; default = GET, what a buyer's client sends first."},"note":{"type":"string","description":"The same story in plain English, for a human reading the readout."}}},"single_probe_note":{"type":"string","description":"One moment. A passing preflight quoted as an uptime claim is a misquote, and this field is where the response says so. It also says when the reading took two requests rather than one, which happens only on a method refusal."},"what_this_cannot_tell_you":{"type":"array","items":{"type":"string"}},"our_conflict_of_interest":{"type":"string","description":"Published in the verdict itself rather than in a policy nobody fetches."},"rate_limit":{"type":"object"},"store_identity":{"type":"object"},"the_rest_of_the_ladder":{"type":"object","description":"The rungs this probe did not climb, and what climbs each one. Replaced next_steps 2026-09-16: the reading named the missing rungs in one place and the paid instruments in another, and a buyer had to join them. Each unclimbed rung carries the item, its price in USDC, the tool that calls it and the URL; a rung nothing can buy today says so rather than being sold a near-miss.","properties":{"current_reading":{"type":"object","description":"The unsigned preflight's evidence and spending limits.","properties":{"signed":{"type":"boolean"},"proves_payment_or_delivery":{"type":"boolean"},"scope":{"type":"string"}}},"free_signed_history":{"type":"object","description":"Free historical evidence: the lookup is unsigned; verify its cited signed originals, exact subject and observation age separately.","properties":{"history_url_template":{"type":"string","description":"Replace {host} with the endpoint's hostname."},"issuer_key_url":{"type":"string"},"guide_url":{"type":"string"},"requires_spend_authorization":{"type":"boolean"},"scope":{"type":"string"}}},"climbed":{"type":"array","items":{"type":"string"}},"unclimbed":{"type":"array","items":{"type":"object",
# --- truncated at 32 KB (660 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/scvd-store/refs/heads/main/openapi/scvd-store-openapi.json