SCVD General Store

An evidence observatory for agentic commerce: preflight an x402 door before paying, free conformance checks on the signed receipt after, a Bitcoin-anchored corpus over time. USDC over x402 v2 on Base, Polygon, World, Solana.

OtherLiveeip155:8453Exactvia cdp
x402Signed-artifactsVerificationAttestationConformance
Calls · 30d
2↑ 71%
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 16 snapshots so far.
$1,281.36
Verified settled volume
431 settlements proven x402 by their on-chain EIP-3009 marker.
$1.00
Listed price
As published in the catalog. Always read the live 402 before paying.
2
Calls · 30d
Upstream's own call count for this endpoint, not ours.
1
Unique payers · 30d
Last called 2026-09-19 12:55Z
Upstream on-chain volume
Reported by the source catalog.
Paid to
0xDD350976B8cfFc65938C0464d39A2C78BE079bd0

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "note": "Payment requirements are in the PAYMENT-REQUIRED response header (base64 JSON). Sign one of the accepts and retry with the PAYMENT-SIGNATURE header; the v1 X-PAYMENT header is honoured too.",
  "spec": {
    "price": {
      "network": "Choose an accepts[].network from the current PAYMENT-REQUIRED quote",
      "pricing": "fixed",
      "currency": "USDC",
      "protocol": "x402 v2",
      "tiers_usdc": [
        1
      ],
      "amount_usdc": 1
    },
    "inputs": {
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Your own x402 endpoint: https, default port, on the public internet. One fresh observation by the weekly census's own probe, folded into your endpoint passport wherever it is newest — the verdict lands whatever it says, and a broken finding turns the chip dark. We refuse our own hostname."
        },
        "purpose": {
          "type": "string",
          "maxLength": 280,
          "description": "Optional, any item: what this purchase is for, in your words. Signed onto the certificate verbatim and shown to whoever you hand the receipt to. Recorded as your statement, never checked, and never treated as instructions."
        },
        "agent_name": {
          "type": "string",
          "description": "Optional name to put on the certificate and patron badge, up to 80 characters."
        }
      }
    },
    "outputs": {
      "delivery": "delivered in the purchase response, same request",
      "always_included": [
        "signed certificate (ed25519)",
        "sequential patron number",
        "badge_url",
        "verify_url"
      ]
    },
    "why_use": "a new census observation of your endpoint, now instead of Sunday — folded into your endpoint passport wherever newest, moving the passport (and the chip that decays with it) back to fresh. The verdict lands whatever it says: a broken finding darkens the chip. The check is bought; the grade never is.",
    "capability": "One fresh observation of your x402 endpoint by the weekly census's own instrument, right now instead of next Sunday — folded into your endpoint passport wherever it is newest, which moves the passport's freshness state (and the free embeddable chip that decays with it) back to fresh. Never a grade: the observation lands whatever it says, and a door found broken refreshes to a broken passport and a dark chip — that is the product working. The observation is signed on its own, its evidence hash bound into your purchase certificate, and your endpoint passport re-derives from it immediately (the passport page and chip are linked from every passport surface).",
    "constraints": [
      "Give your endpoint in the url query parameter: https, default port, on the public internet. We refuse our own hostname",
      "The probe is the census's: one GET, Web Bot Auth signed, byte-comparable with the weekly rounds",
      "The newest observation wins in BOTH directions — a broken finding turns the chip off",
      "One observation at one moment; the standing version is conformance_watch, a different item",
      "The passport and chip stay free to read forever; this buys only the freshness"
    ],
    "verification": {
      "cost": "free, unlimited, forever",
      "rights": "https://scvd.store/rights",
      "verify_url": "https://scvd.store/api/verify/{id}",
      "attestation": "Signed by the store's key, not yours: a claim the certificate carries can be checked by a third party without trusting your self-report.",
      "key_history": "https://scvd.store/.well-known/scvd-signing-key",
      "signing_key": "https://scvd.store/.well-known/scvd-signing-key",
      "certificate_binds": [
        "cert_id",
        "item",
        "patron_number",
        "date",
        "paid_usdc",
        "asset",
        "network",
        "payer",
        "settlement_tx"
      ],
      "sample_verify_url": "https://scvd.store/api/verify/cert_4dww28dx5j",
      "sample_artifact_id": "cert_4dww28dx5j",
      "certificate_binds_note": "All of these ride INSIDE the signed bytes, not beside them: paid_usdc is the total settled (not the tip), payer is the paying wallet — chain-verifiable, unlike a chosen name — and settlement_tx is the on-chain transaction, so this certificate and an explorer for the settlement network are the same fact checked twice. Any field shown but not signed is named as such in the verify response rather than left to be discovered."
    }
  },
  "error": "A dollar for a fresh look. The check is bought; the verdict never is.",
  "item_id": "passport_refresh",
  "pricing": "fixed",
  "guarantee": "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.",
  "spec_note": "Task: Turn my endpoint passport fresh again right now — a new census observation of my door, without waiting for Sunday's walk. Returns: One fresh observation of your x402 endpoint by the weekly census's own instrument, right now instead of next Sunday — folded into your endpoint passport wherever it is newest, which moves the passport's freshness state (and the free embeddable chip that decays with it) back to fresh. Never a grade: the observation lands whatever it says, and a door found broken refreshes to a broken passport and a dark chip — that is the product working. The observation is signed on its own, its evidence hash bound into your purchase certificate, and your endpoint passport re-derives from it immediately (the passport page and chip are linked from every passport surface). Price: $1 USDC (x402 v2; network from the current quote). Latency: delivered in the purchase response, same request. Verify: GET /api/verify/{id} — free, unlimited, forever (live sample: cert_4dww28dx5j). Constraints: Give your endpoint in the url query parameter: https, default port, on the public internet. We refuse our own hostname; The probe is the census's: one GET, Web Bot Auth signed, byte-comparable with the weekly rounds; The newest observation wins in BOTH directions — a broken finding turns the chip off; One observation at one moment; the standing version is conformance_watch, a different item; The passport and chip stay free to read forever; this buys only the freshness.",
  "extensions": {
    "offer-receipt": {
      "info": {
        "offers": [
          {
            "format": "jws",
            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweEREMzUwOTc2QjhjZkZjNjU5MzhDMDQ2NGQzOUEyQzc4QkUwNzliZDAiLCJhbW91bnQiOiIxMDAwMDAwIiwidmFsaWRVbnRpbCI6MTc4ODg4NjI0Mn0.eviSIGargxNroZMu_EKl81ixAAaLAIBjU_H5_oOh5sRFK1j1yHQm2yTeypmRMt_JiQ_CA2sR1Kg3MpOyA5QdDw",
            "acceptIndex": 0
          },
          {
            "format": "jws",
            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6MTM3IiwiYXNzZXQiOiIweDNjNDk5YzU0MmNFRjVFMzgxMWUxMTkyY2U3MGQ4Y0MwM2Q1YzMzNTkiLCJwYXlUbyI6IjB4ZGQzNTA5NzZiOGNmZmM2NTkzOGMwNDY0ZDM5YTJjNzhiZTA3OWJkMCIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg4ODg2MjQyfQ.RKXgizj232N1AQjpQa5UYIjZ8J_m2aEunU2pfcOtVVe0u9vGuGKPa6_YWMon8WnnTZupj_68SaevDYjRuDgWBA",
            "acceptIndex": 1
          },
          {
            "format": "jws",
            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6NDIxNjEiLCJhc3NldCI6IjB4YWY4OGQwNjVlNzdjOGNDMjIzOTMyN0M1RURiM0E0MzIyNjhlNTgzMSIsInBheVRvIjoiMHhkZDM1MDk3NmI4Y2ZmYzY1OTM4YzA0NjRkMzlhMmM3OGJlMDc5YmQwIiwiYW1vdW50IjoiMTAwMDAwMCIsInZhbGlkVW50aWwiOjE3ODg4ODYyNDJ9.lg9sqk54YeousLMGMKqvy5f-9oi27GUdxX1iEw24zrWiEuywvM9qGBI5NzdrZ2eUKH8X_6t3mUyKwUTA7hciDA",
            "acceptIndex": 2
          },
          {
            "format": "jws",
            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6NDgwIiwiYXNzZXQiOiIweDc5YTAyNDgyYTg4MGJjZTNmMTNlMDlkYTk3MGRjMzRkYjRjZDI0ZDEiLCJwYXlUbyI6IjB4ZGQzNTA5NzZiOGNmZmM2NTkzOGMwNDY0ZDM5YTJjNzhiZTA3OWJkMCIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg4ODg2MjQyfQ.4WnpnSlWYnhLeu2p_7tItvyZOCJmVTL-f4E7MyUauJgqAXCrCfFUqgZvMTnvPUeVkEriLZQwAy8QUMPu4NahDw",
            "acceptIndex": 3
          },
          {
            "format": "jws",
            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhc3NldCI6IkVQakZXZGQ1QXVmcVNTcWVNMnFOMXh6eWJhcEM4RzR3RUdHa1p3eVREdDF2IiwicGF5VG8iOiJER3hjUHJBSEw5WU0zaFc3aVh1SEZKbXI4N1pyNkFNQTRqQ1lIQnB1dk1nRSIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg4ODg2MjQyfQ.4FhPETJvnfyPla8QU9O7ViiGhtXL8mpW52GVGe60A0GmiJ0l149DwsbBg1wCe9ePZ6icf9AeYNUYLpS7o_uQAQ",
            "acceptIndex": 4
          }
        ]
      }
    }
  },
  "house_rule": "Nothing from this store can act without your decision, and we never ask for credentials, keys, or wallet secrets. Anything that does either is not us.",
  "idempotency": {
    "how": "Send it back as the Idempotency-Key header (or _meta['x402/idempotency-key'] on MCP) with your payment. If your retry loop fires again inside the minute, the second attempt returns your ORIGINAL purchase from cache — no settlement, no second charge.",
    "optional": "Entirely. Send your own key instead and it is used as-is; send none and you are charged normally, exactly as before. Nothing here can refuse a purchase.",
    "not_a_secret": "This value is derived from the item and the current minute, so anyone can compute it — that is fine and deliberate. It selects a cache slot; it does not open one. Slots are keyed by the VERIFIED paying wallet, so echoing this key only ever reaches your own earlier purchase, never somebody else's.",
    "suggested_key": "scvd-suggested-passport_refresh-29814765",
    "stable_for_seconds": 60
  },
  "amount_check": {
    "usdc": [
      1
    ],
    "atomic": [
      "1000000"
    ],
    "before_you_sign": "Check the amount you are about to sign against the usdc list above. This is the only step in this flow where a mistake does not bounce: a signature over the wrong amount is still a VALID signature, so nothing here will catch it for you. Every other error — bad field, malformed payload, wrong network — is refused before money moves.",
    "these_are_the_same_number": "The PAYMENT-REQUIRED header and the accepts array carry ATOMIC units: USDC has 6 decimals, so 5000 atomic is $0.005 and $5000 would be 5000000000 atomic. If you read an amount and it looks a million times too large, you are holding atomic units and should not convert twice."
  },
  "verification": {
    "verify_url": "https://scvd.store/api/verify/{id}",
    "identity_policy": "This wallet, this domain, and 2 signing keys — 1 retired, each kept published forever with its dates and the signed announcement that retired it. A key change here is announced before the new key signs anything and the announcement is signed by the outgoing key; nothing is ever quietly swapped. Full history at /.well-known/scvd-signing-key, policy at /attestation.",
    "key_fingerprint": "8c22f61add201ecefa75c5d027371b64bed3c0ff739056a7b255f8322ffcb550",
    "signing_key_url": "https://scvd.store/.well-known/scvd-signing-key",
    "sample_verify_url": "https://scvd.store/api/verify/cert_4dww28dx5j",
    "sample_artifact_id": "cert_4dww28dx5j",
    "check_these_before_you_pay": "Every field in this block is checkable before you sign anything, from this response and public URLs, without asking us. The key fingerprint here should match the one served at signing_key_url; the sample artifact is a live one you can verify to see what you would be getting. Nothing here costs a request you are not already making."
  },
  "wallet_safety": {
    "claims": {
      "why": "A two-hour human job outlives many context windows. The key that signed your payments is the key that recovers them — a bare address gets nothing, so nobody can enumerate your purchases.",
      "what": "Context reset mid-order? Prove you hold the paying wallet at /api/claims (challenge-response, single-use nonce, EIP-191 signature) and get your own orders back, order URLs included. No sessions, nothing to have saved."
    },
    "standfirst": "Two mechanisms protect your wallet from your own bugs, both free, both live on every paid door.",
    "idempotency": {
      "why": "The chain refuses to settle the same authorization twice, but a retry loop signs a FRESH authorization each pass — without a key, every loop is an honest second charge. With one, the loop spins against a cache.",
      "what": "Send an Idempotency-Key header (or _meta['x402/idempotency-key'] over MCP), 16-128 characters, treated as a secret. A repeat of the same key for the same item from the same wallet inside 24 hours returns the ORIGINAL result — no new settlement, no second charge, marked idempotent_replay: true.",
      "honest_edges": "Only settled sales replay; errors and 402s stay retryable. Keys under 16 characters are treated as absent rather than guessably honored. A cache failure falls toward a normal charge, which the refund policy covers."
    }
  },
  "min_price_usdc": 1,
  "required_params": [
    "url"
  ],
  "hand_rolling_url": "https://scvd.store/try#hand-rolling",
  "payload_template": {
    "payload": {
      "signature": "<0x + 130 hex — your EIP-712 signature over the authorization below>",
      "authorization": {
        "to": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
        "from": "<0x + 40 hex — the wallet holding the USDC>",
        "nonce": "<0x + 64 hex — 32 random bytes, never reused>",
        "value": "1000000",
        "validAfter": "0",
        "validBefore": "1788886242"
      }
    },
    "accepted": {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
      "amount": "1000000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 300
    },
    "x402Version": 2
  },
  "want_something_else": "Can't pay, or want something we don't stock? POST https://scvd.store/api/request, the keeper reads every one on Sundays.",
  "required_params_note": "This one needs ?url= on the paid request. Asking the price without it is free, which is what you just did; buying without it gets refused before the money moves.",
  "payload_template_note": "Copy this object, replace only the three <angle-bracketed> values with your wallet address, a fresh random nonce and your signature, then send base64(JSON.stringify(it)) as the PAYMENT-SIGNATURE header on a retry of this same URL — standard base64 alphabet, one unbroken line (`base64 -w0` from a shell: GNU base64 wraps at 76 columns by default and curl sends only the first line). Everything else is already correct for THIS challenge and should not be rebuilt — `accepted` in particular must stay byte-identical to what we offered. Amounts and times are decimal STRINGS, not numbers. validBefore is unix seconds and this one is good for the maxTimeoutSeconds above; a fresh GET always yields a fresh challenge. One more wall waits after the envelope and it fails silently: the EIP-712 domain must be built from accepted.extra (name, version), the chainId of the accepted entry's own network (eip155:8453 → 8453, eip155:137 → 137), and verifyingContract = accepted.asset — details at the hand_rolling_url. The solana:* entry in accepts takes a signed transaction instead of an authorization; this template covers the EVM rails (eip155:*) only."
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

1USDC≈ $1 USD
on Base · exact scheme

Pay 1 USDC on Base to 0xDD35…79bd0. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
1000000 smallest units
1000000units
on Polygon · exact scheme

That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.

Token contract
0x3c49…c3359
Payment window
5 minutes
1000000units
on Arbitrum · exact scheme

That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.

Token contract
0xaf88…e5831
Payment window
5 minutes
1000000units
on eip155:480 · exact scheme

That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.

Token contract
0x79a0…d24d1
Payment window
5 minutes
1000000units
on solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · exact scheme

That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.

Token contract
EPjFWd…TDt1v
Payment window
5 minutes
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2",
      "assetTransferMethod": "eip3009"
    },
    "payTo": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
    "amount": "1000000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 300
  },
  {
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "extra": {
      "name": "USD Coin",
      "version": "2",
      "assetTransferMethod": "eip3009"
    },
    "payTo": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
    "amount": "1000000",
    "scheme": "exact",
    "network": "eip155:137",
    "maxTimeoutSeconds": 300
  },
  {
    "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "extra": {
      "name": "USD Coin",
      "version": "2",
      "assetTransferMethod": "eip3009"
    },
    "payTo": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
    "amount": "1000000",
    "scheme": "exact",
    "network": "eip155:42161",
    "maxTimeoutSeconds": 300
  },
  {
    "asset": "0x79a02482a880bce3f13e09da970dc34db4cd24d1",
    "extra": {
      "name": "USDC",
      "version": "2",
      "assetTransferMethod": "eip3009"
    },
    "payTo": "0xDD350976B8cfFc65938C0464d39A2C78BE079bd0",
    "amount": "1000000",
    "scheme": "exact",
    "network": "eip155:480",
    "maxTimeoutSeconds": 300
  },
  {
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "extra": {
      "feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"
    },
    "payTo": "DGxcPrAHL9YM3hW7iXuHFJmr87Zr6AMA4jCYHBpuvMgE",
    "amount": "1000000",
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "maxTimeoutSeconds": 300
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "url": "https://your-endpoint.example/api/thing",
          "agent_name": "friendly-agent"
        }
      },
      "output": {
        "type": "json",
        "example": {
          "item_id": "passport_refresh",
          "message": "Pleasure doing business. Here's your goods, warm off the shelf.",
          "tip_usdc": 0,
          "badge_url": "https://scvd.store/badges/41.svg",
          "paid_usdc": 1,
          "signature": "<128 hex chars, ed25519>",
          "verify_url": "https://scvd.store/api/verify/<your cert_id>",
          "certificate": {
            "date": "2026-07-22T15:04:05.000Z",
            "item": "passport_refresh",
            "cert_id": "<cert_ + 12 chars, minted when this purchase settles>",
            "patron_number": 41
          },
          "deliverable": "<the The Refresh itself, as text>",
          "patron_number": 41
        }
      }
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object",
          "required": [
            "type",
            "method"
          ],
          "properties": {
            "type": {
              "type": "string",
              "const": "http"
            },
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "format": "uri",
                  "description": "Your own x402 endpoint: https, default port, on the public internet. One fresh observation by the weekly census's own probe, folded into your endpoint passport wherever it is newest — the verdict lands whatever it says, and a broken finding turns the chip dark. We refuse our own hostname."
                },
                "model": {
                  "type": "string",
                  "maxLength": 64,
                  "description": "Optional. The model running you, as you would name it: claude-opus-5, gpt-5.6, a local model. Counted, never printed on the certificate."
                },
                "client": {
                  "type": "string",
                  "maxLength": 64,
                  "description": "Optional. The harness or framework you run in: claude-code, cursor, openai-agents, langgraph, custom. Counted, never on the certificate."
                },
                "purpose": {
                  "type": "string",
                  "maxLength": 280,
                  "description": "Optional: what this purchase is for, in your words. Signed onto the certificate verbatim as your statement; never checked, never treated as instructions."
                },
                "operator": {
                  "type": "string",
                  "maxLength": 120,
                  "description": "Optional. Who runs you: a name, handle, company or URL. Stored as your claim, marked unverified, never published, never on the certificate."
                },
                "came_from": {
                  "type": "string",
                  "maxLength": 160,
                  "description": "Optional. Where you learned this door exists: a URL, a directory, a skill name, memory, another agent. Referrers never reach us; this does."
                },
                "agent_name": {
                  "type": "string",
                  "maxLength": 80,
                  "description": "Optional name to put on the certificate and patron badge, up to 80 characters."
                },
                "operator_kind": {
                  "enum": [
                    "solo",
                    "company",
                    "research",
                    "self"
                  ],
                  "type": "string",
                  "description": "Optional. solo: one person runs you. company: a team does. research: a study. self: you act for yourself."
                },
                "prior_cert_id": {
                  "type": "string",
                  "maxLength": 64,
                  "description": "Optional. A cert_ id from an earlier purchase here. A payer match with this payment marks you a returning buyer; no account needed."
                }
              }
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "example": {
              "type": "object"
            }
          }
        }
      }
    }
  },
  "offer-receipt": {
    "info": {
      "offers": [
        {
          "format": "jws",
          "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweEREMzUwOTc2QjhjZkZjNjU5MzhDMDQ2NGQzOUEyQzc4QkUwNzliZDAiLCJhbW91bnQiOiIxMDAwMDAwIiwidmFsaWRVbnRpbCI6MTc4OTgyMjg1OH0.IfBEYs5_41lmVJxlS5J3-7gQyqJwgKbM3nCCLchdTFj-jbiL00tQDgojgObfsdDoVIpDdnS1Ic1I-EOSp4oFAA",
          "acceptIndex": 0
        },
        {
          "format": "jws",
          "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6MTM3IiwiYXNzZXQiOiIweDNjNDk5YzU0MmNFRjVFMzgxMWUxMTkyY2U3MGQ4Y0MwM2Q1YzMzNTkiLCJwYXlUbyI6IjB4REQzNTA5NzZCOGNmRmM2NTkzOEMwNDY0ZDM5QTJDNzhCRTA3OWJkMCIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg5ODIyODU4fQ.gxE34ixNp_YJE94In4A7STwx2WR7wLlc9Q8aPQiFYSy1sqJ0DbYVujfVthGmLkziQtDAVra2ZwA0H2U2sck-Ag",
          "acceptIndex": 1
        },
        {
          "format": "jws",
          "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6NDIxNjEiLCJhc3NldCI6IjB4YWY4OGQwNjVlNzdjOGNDMjIzOTMyN0M1RURiM0E0MzIyNjhlNTgzMSIsInBheVRvIjoiMHhERDM1MDk3NkI4Y2ZGYzY1OTM4QzA0NjRkMzlBMkM3OEJFMDc5YmQwIiwiYW1vdW50IjoiMTAwMDAwMCIsInZhbGlkVW50aWwiOjE3ODk4MjI4NTh9.2JRQbbyArtNwTbxWhHGL8GwraDSA6hHkFaLXKZi-TsEaTwDSmmnLBWzWCpkMbbwO3eOwFP9roWkgIsicwlw9BA",
          "acceptIndex": 2
        },
        {
          "format": "jws",
          "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6NDgwIiwiYXNzZXQiOiIweDc5YTAyNDgyYTg4MGJjZTNmMTNlMDlkYTk3MGRjMzRkYjRjZDI0ZDEiLCJwYXlUbyI6IjB4REQzNTA5NzZCOGNmRmM2NTkzOEMwNDY0ZDM5QTJDNzhCRTA3OWJkMCIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg5ODIyODU4fQ.2RIfqv9aNqF86G5IMmyGgvQneZhWISWoWFUrD0uyX6-Y_BwFok7h6W3LAdOspLOjyTRaBvt9VYJK1s8NqP1UAQ",
          "acceptIndex": 3
        },
        {
          "format": "jws",
          "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6c2N2ZC5zdG9yZSNrZXktMiJ9.eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8vc2N2ZC5zdG9yZS9hcGkvYnV5L3Bhc3Nwb3J0X3JlZnJlc2giLCJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhc3NldCI6IkVQakZXZGQ1QXVmcVNTcWVNMnFOMXh6eWJhcEM4RzR3RUdHa1p3eVREdDF2IiwicGF5VG8iOiJER3hjUHJBSEw5WU0zaFc3aVh1SEZKbXI4N1pyNkFNQTRqQ1lIQnB1dk1nRSIsImFtb3VudCI6IjEwMDAwMDAiLCJ2YWxpZFVudGlsIjoxNzg5ODIyODU4fQ.AhkwNykQlvLl6pMn3--Lgr6vnjoLCG5evD9d50PHJsLXdAxoy5TSB_NsAJmplGfMXceTfW5A5QuqRA2yRB_zDA",
          "acceptIndex": 4
        }
      ]
    }
  },
  "required-inputs": {
    "note": "This door cannot be served without ?url=. Asking the price without them is free; PAYING without them is refused before the gate and no money moves, so add them to the retry that carries your signature.",
    "queryParams": [
      "url"
    ],
    "retry_url_template": "https://scvd.store/api/buy/passport_refresh?url=<url>",
    "price_discovery_url": "https://scvd.store/menu/passport_refresh?view=compact"
  }
}

Provenance

Seen in the source catalog
2026-09-19 12:55Z
Last indexed by Roundhouse
2026-09-24 15:30Z
Last enriched (probe, favicon, geo)
2026-09-22 14:45Z
x402 version
2
Max timeout
300s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 16 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service SCVD General Store and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=SCVD%20General%20Store'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://scvd.store/api/buy/passport_refresh, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.