<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: keeper</title>
    <description>The latest articles on DEV Community by keeper (@seancrecord).</description>
    <link>https://dev.to/seancrecord</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4057384%2F38a8875e-4759-4c52-a4c1-606a635701f0.png</url>
      <title>DEV Community: keeper</title>
      <link>https://dev.to/seancrecord</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/seancrecord"/>
    <language>en</language>
    <item>
      <title>35 x402 hosts served no signed offer. Here is how to check yours in one request.</title>
      <dc:creator>keeper</dc:creator>
      <pubDate>Thu, 03 Sep 2026 15:24:38 +0000</pubDate>
      <link>https://dev.to/seancrecord/35-x402-hosts-served-no-signed-offer-here-is-how-tocheck-yours-in-one-request-ceh</link>
      <guid>https://dev.to/seancrecord/35-x402-hosts-served-no-signed-offer-here-is-how-tocheck-yours-in-one-request-ceh</guid>
      <description>&lt;p&gt;I run an &lt;a href="https://dev.to/seancrecord/an-mcp-server-that-remembers-every-trial-your-agent-signed-you-up-for-5feo"&gt;x402 store&lt;/a&gt; where the customers are AI agents.&lt;br&gt;
In August I pointed a free checker at every host on the public x402&lt;br&gt;
discovery list. One of them tried to sign its offers. Its signatures&lt;br&gt;
did not parse.&lt;/p&gt;



&lt;p&gt;x402 is the HTTP 402 payment flow Coinbase and Cloudflare revived for&lt;br&gt;
agents: request a resource, get a 402 with the price and the address,&lt;br&gt;
pay, retry. It works. Thousands of settlements a day go through it.&lt;/p&gt;

&lt;p&gt;What it does not do, by default, is commit the seller to anything&lt;br&gt;
before the money moves. The 402 says "this costs $0.01, pay here."&lt;br&gt;
Nobody signed that. If the price changes between the challenge and&lt;br&gt;
the settlement, or the payTo address was swapped by whoever sits&lt;br&gt;
between you and the origin, the buyer finds out after paying, if at&lt;br&gt;
all.&lt;/p&gt;

&lt;p&gt;The x402 spec has an extension for exactly this: signed offers and&lt;br&gt;
signed receipts. A JWS over the offer, Ed25519, with a key the seller&lt;br&gt;
publishes. A buyer holds a commitment it can check before paying,&lt;br&gt;
against a key anyone can fetch, without asking the seller. It is the&lt;br&gt;
cheapest trust signal a seller can ship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So I checked who ships it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On 2026-08-03 I sent one GET to every host on the public x402&lt;br&gt;
discovery list, 35 hosts, and read the 402 each one returned. The&lt;br&gt;
checker is free and public, so the whole thing is reproducible by&lt;br&gt;
anyone with curl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://scvd.store/api/preflight/v1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'content-type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"url":"https://your-endpoint.example/api/thing"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;34 of 35 hosts served no signed offer in the challenge header that
probe reads. (Offers placed only in the 402 body were beyond that
instrument's read; the v2 probe reads both now.)&lt;/li&gt;
&lt;li&gt;The one host attempting signed offers served JWS that failed to
parse before a verifier could read a single field.&lt;/li&gt;
&lt;li&gt;My own door was not in the 35. A census cannot probe its own host,
and leaving that out flatters nobody but me, so I am saying it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not going to name the 34. The point is not who; it is that in&lt;br&gt;
August 2026, a buyer paying an x402 endpoint on the public list was&lt;br&gt;
paying against terms nobody had committed to, essentially everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What a signed offer costs to ship&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Almost nothing. Two packages exist for it, zero dependencies, any&lt;br&gt;
issuer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;x402-sign&lt;/code&gt; mints spec-conformant signed offers and receipts for
your 402s and generates the did:web document your key lives at.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;x402-verify&lt;/code&gt; checks anyone's, including mine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you would rather not install anything, the conformance desk at&lt;br&gt;
&lt;a href="https://scvd.store/conformance" rel="noopener noreferrer"&gt;https://scvd.store/conformance&lt;/a&gt; takes a pasted offer or receipt from&lt;br&gt;
any issuer and returns a structured verdict: parse, schema, signature&lt;br&gt;
against the key its kid names, liveness. Free, no account, and it&lt;br&gt;
checks a competitor's artifact exactly as readily as mine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I will do next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The census runs weekly now and the rows are published, signed, and&lt;br&gt;
anchored into Bitcoin, at &lt;a href="https://scvd.store/corpus" rel="noopener noreferrer"&gt;https://scvd.store/corpus&lt;/a&gt;. Every week's&lt;br&gt;
round says how many hosts were reachable, how many were payable, and&lt;br&gt;
how many served a signed offer, with the denominator beside every&lt;br&gt;
number. If the 34 becomes 30 by October I will say so, and if it&lt;br&gt;
becomes 35 I will say that too.&lt;/p&gt;

&lt;p&gt;If you run an x402 endpoint: run the check above on your own door. It&lt;br&gt;
takes one request. If it comes back with no signed offer, you are in&lt;br&gt;
the 34, and the fix is an afternoon.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: the store in this piece is mine. It sells signed&lt;br&gt;
observations to agents for fractions of a cent and publishes the&lt;br&gt;
gaps in its own coverage on the same page as the findings.  The&lt;br&gt;
census, the checker and the corpus are free along with any &lt;a href="https://hackernoon.com/ai-agents-are-customers-now-aura-is-how-i-take-notes-on-how-they-shop" rel="noopener noreferrer"&gt;AURa walk.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




</description>
      <category>x402</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>An MCP Server That Remembers Every Trial Your Agent Signed You Up For</title>
      <dc:creator>keeper</dc:creator>
      <pubDate>Wed, 19 Aug 2026 13:51:38 +0000</pubDate>
      <link>https://dev.to/seancrecord/an-mcp-server-that-remembers-every-trial-your-agent-signed-you-up-for-5feo</link>
      <guid>https://dev.to/seancrecord/an-mcp-server-that-remembers-every-trial-your-agent-signed-you-up-for-5feo</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I run &lt;a href="//scvd.store"&gt;scvd.store&lt;/a&gt;, a small store for AI agents, and this piece is about one of its free tools.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjipi6ss5icz0wannlotq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjipi6ss5icz0wannlotq.png" alt="scvd storefront welcoming to all agents" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every builder carries a quiet, often hidden ledger of AI tools. With new tools for marketing, sales, and development being released seemingly daily, I find myself getting roped into annual subscriptions or paying for things I just wanted to test out. At this rate of change there's no ledger when you're moving fast, so ultimately the ledger becomes your bank statement, with fees you never wanted to pay.&lt;/p&gt;

&lt;p&gt;Agents are making this problem worse. If you run Claude, an OpenClaw agent, or anything with a browser and your blessing, tools now get signed up for on your behalf. The ledger gets longer and the forgetting gets faster, because now even the signup memory isn't yours.&lt;/p&gt;

&lt;p&gt;The Tab is a new product at scvd.store that IS that ledger, and it's kept where you already work: inside the agent. It's an MCP server, one JSON block to install, and it stores everything in a single human-readable JSONL file on your machine.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;json&lt;br&gt;
{&lt;br&gt;
  "mcpServers": {&lt;br&gt;
    "scvd-tab": {&lt;br&gt;
      "command": "npx",&lt;br&gt;
      "args": ["-y", "scvd-tab"]&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Log a trial when you (or your agent) start one. Then, at the start of a session, ask whats_due: the most urgent thing is the first line. Ask burn_rollup and you get your monthly number with what it's made of. A trial converting tomorrow reaches you on whatever your agent was doing anyway.&lt;/p&gt;

&lt;p&gt;The architectural decision that matters: no credentials&lt;/p&gt;

&lt;p&gt;Every subscription tracker before this one wants your bank login or your inbox OAuth. That's the standard architecture: give us the keys, we'll watch the money.&lt;/p&gt;

&lt;p&gt;The Tab inverts it. Your agent already reads your mail through a connector it already holds (if not, it's also quite easy to give it a token to an email box just for subscriptions), so the periodic sweep for receipts and renewal notices runs on access that already exists. Card statements? You export the CSV yourself and hand it to reconcile_card_statement. The Tab holds a credential to exactly nothing.&lt;/p&gt;

&lt;p&gt;There is no account to breach because there is no account. There's no server to trust because the "server" is a zero-dependency script you can read top to bottom in a sitting, writing to ~/.scvd/tab.jsonl. And export_tab hands everything back, in full, any time. A product that holds your history hostage is the disease; this is the cure practicing its own hygiene.&lt;/p&gt;

&lt;p&gt;Warnings that ride the agent&lt;/p&gt;

&lt;p&gt;An MCP server can't wake anybody. It only speaks when spoken to. So the clock runs outside (a one-line cron), and open pages ride back on any tool call. You don't open a dashboard; the warning finds you mid-task.&lt;/p&gt;

&lt;p&gt;And here's a detail I care about more than is probably healthy: a page handed to an agent is not a page you heard. Agents summarize, truncate, move on. So only acknowledge_pages marks a warning as actually received, and pages that age out unacknowledged get counted against the product as unspoken_pct. The Tab keeps a public score of its own failure to reach you, instead of assuming delivery. Most software assumes away exactly this.&lt;/p&gt;

&lt;p&gt;Every number says what it cannot see&lt;/p&gt;

&lt;p&gt;burn_rollup never ships a bare figure. It arrives with a coverage block: what fed the number, which parts are estimates (usage-based bills are marked as estimates, never smuggled in as facts), what the last mail sweep couldn't place, and how far the bank's own statement diverged from the tab's picture at last reconcile.&lt;/p&gt;

&lt;p&gt;A dashboard that hides its blind spots is just a prettier way of being wrong. If you've ever trusted a spend tracker's total and then met your actual statement, you know the feeling this is designed to kill.&lt;/p&gt;

&lt;p&gt;It remembers which doors need a human&lt;/p&gt;

&lt;p&gt;This one exists because agents keep hitting the same walls. Every signup can record what the path demanded: agent_native, email_only, phone_required, kyc_required, human_only. So before your agent burns twenty minutes on a signup that dead-ends at a phone-verification wall, check_before_signup can tell it, because somebody (you, three months ago) already hit that wall and the tab wrote it down.&lt;/p&gt;

&lt;p&gt;As far as I know, nobody else is collecting this. It's a map of which tools an agent can actually reach unassisted, built as a side effect of ordinary bookkeeping.&lt;/p&gt;

&lt;p&gt;Facts and counts, never advice&lt;/p&gt;

&lt;p&gt;The Tab will tell you that you trialed four note-taking tools in six months, canceled three, and currently pay for two. It will not say "you have an overlap problem." That sentence belongs to you, or to your agent; the tab's tools are built to be unable to return it. Popularity and history, never judgment.&lt;/p&gt;

&lt;p&gt;That's a design rule with teeth elsewhere in the store too (we keep dated observations of services, never scores on operators, for the same reason). Opinions rot. Records don't.&lt;/p&gt;

&lt;p&gt;What it is and isn't&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local-first MCP server (&lt;a href="https://www.npmjs.com/package/scvd-tab" rel="noopener noreferrer"&gt;&lt;code&gt;scvd-tab&lt;/code&gt; on npm&lt;/a&gt;), zero dependencies, append-only JSONL you own outright.
Free. No account, no telemetry. There's an optional, consent-gated way to contribute anonymized deltas (tool name, category, week, nothing else) to a pooled layer; consent is itself an event in your log, on/off with full audit trail, and nothing leaves the file without it.
It doesn't connect to your bank, doesn't want your passwords, and won't cancel anything for you. It remembers, warns, and reconciles. Your money keeps needing you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repo (MIT, spec and schema in the open):&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/seancrecord" rel="noopener noreferrer"&gt;
        seancrecord
      &lt;/a&gt; / &lt;a href="https://github.com/seancrecord/scvd-general-store-repo" rel="noopener noreferrer"&gt;
        scvd-general-store-repo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The trust layer of the x402 economy — free conformance checking of any issuer's signed offers and receipts, settlement attestation, a Bitcoin-anchored corpus, and a general store for AI agents. USDC on Base &amp;amp; Solana, by Record Creative Co. LLC
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Sean-Claude Van Damme's General Store&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://glama.ai/mcp/servers/seancrecord/scvd-general-store-repo" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5254a6dd3c5b5c7bd238b77d1af5decc78c0cb6ddd002c713f45011ad1e3daf3/68747470733a2f2f676c616d612e61692f6d63702f736572766572732f7365616e637265636f72642f736376642d67656e6572616c2d73746f72652d7265706f2f6261646765732f636172642e737667" alt="scvd-general-store-repo MCP server"&gt;&lt;/a&gt;
&lt;a href="https://smithery.ai/servers/seancrecord/scvd-general-store" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1e6228f8735b3bba6314f61d6c61ce12100fe0cb727d441557fdf82a5726b07c/68747470733a2f2f736d6974686572792e61692f62616467652f7365616e637265636f72642f736376642d67656e6572616c2d73746f7265" alt="smithery badge"&gt;&lt;/a&gt;
&lt;a href="https://scorecard.dev/viewer/?uri=github.com/seancrecord/scvd-general-store-repo" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/248d804d71322328c8363160f1aaaa98c87e159e7b7f35fe106056a8e850fc18/68747470733a2f2f6170692e736563757269747973636f726563617264732e6465762f70726f6a656374732f6769746875622e636f6d2f7365616e637265636f72642f736376642d67656e6572616c2d73746f72652d7265706f2f6261646765" alt="OpenSSF Scorecard"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The trust layer of the x402 economy.&lt;/strong&gt; Independent signed
observation of what other people's endpoints, artifacts and payments
actually did — conformance audits, week-long watches, settlement
attestations, Bitcoin-anchored timestamps. Every verdict ed25519-signed
dated, and verifiable offline without asking us, including the gaps we
count against ourselves.&lt;/p&gt;
&lt;p&gt;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 and sign what we saw. If you are building escrow or adjudication
this is the layer underneath you rather than a competitor. That
direction was decided and dated on 2026-08-07, in the open — the
reversal sits beside what it replaced at
&lt;a href="https://scvd.store/becoming" rel="nofollow noopener noreferrer"&gt;scvd.store/becoming&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It is also a small, sincere general store for autonomous AI agents
kept by a human out of Oak City, where you're never late.
Agents pay in USDC —…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/seancrecord/scvd-general-store-repo" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The Tab lives in the /tab directory; the full product spec is THE_TAB.md at the repo root, and it's honest about what's built versus planned.&lt;/p&gt;

&lt;p&gt;If you try it, the thing I most want to hear is which warning reached you and which one aged out unspoken. I'm not too proud to say I'd love feedback. The x402 ecosystem is nascent and I'm dedicated to finding the "General Store" products that are most helpful to users and their agents.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agentskills</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
