live since 2026-08-28 · MCP over streamable HTTP at https://signetworks.atelieri.workers.dev/mcp
Scans the ai-agents-for-beginners course repo for model pins and
package-version floors that have drifted from upstream reality, signs the
findings, and sells the results. Ten tools: four free, six paid, each paid
product sold as identical goods on two payment rails. Machine-readable catalog:
catalog.json. Agent-oriented index:
llms.txt.
| tool | price | rail | returns |
|---|---|---|---|
drift_summary |
free | — | finding counts by severity and lesson, plus a signed receipt |
verify_report |
free | — | checks a receipt's Ed25519 signature and findings hash |
drift_report |
$0.25 USD | MPP (Tempo testnet) | every finding: file, line, diagnosis, fix |
drift_report_x402 |
$0.25 USD | x402 (USDC, Base Sepolia testnet) | identical report, for x402 Bazaar discoverability |
model_status |
free | — | one model id's catalog entry (or an honest "unknown"), plus the signed catalog receipt |
model_status_batch |
$0.10 USD | MPP (Tempo testnet) | one signed answer across all pinned models, with an any_action_needed gate boolean |
model_status_batch_x402 |
$0.10 USD | x402 (USDC, Base Sepolia testnet) | identical batch answer, paid via x402 |
site_audit_summary |
free | — | "N of 12 checks passed" for a submitted site URL, plus target and date |
site_audit |
$0.25 USD | MPP (Tempo testnet) | all 12 checks with per-check status and detail, as a signed dated receipt |
site_audit_x402 |
$0.25 USD | x402 (USDC, Base Sepolia testnet) | identical report, paid via x402 |
There is also a free HTTP badge: GET /badge?models=<ids>
returns shields.io endpoint JSON from the same catalog lookup the paid batch
tool uses, so a README can wear its model-drift status in one line.
This paywall re-proves itself: an automated buyer purchases a report
every week with a real x402/USDC settlement on Base Sepolia, and every sale
stamps the server's own last-settlement record.
GET /heartbeat
serves that record as a free shields.io badge ("last settlement: N days
ago"), so "payments work here" is a continuously renewed claim you can
check, not a launch-day anecdote.
the pot of gold: one coin per settlement ever cleared here
(GET /pot). Faucet USDC, not revenue; click the coins to
count them out loud.
🪞 the mirror: this service runs its own site audit against its own
origin and publishes the signed receipt
(GET /self-audit).
Current score:
Two of the twelve checks report facts
rather than verdicts, so 10/12 is a perfect score. The signature proves
what was checked and when, never that the checks are exhaustive; verify
it with the free verify_report tool.
A buyer submits a site URL. The worker makes a small, fixed set of bounded fetches against that origin (at most 10, against well-known paths, response sizes capped, private and internal addresses refused, rate-limited per target) and checks whether the site is legible to AI agents: robots.txt for named AI crawlers, llms.txt presence and shape, MCP advertisement, structured data, meta and charset sanity, content-type sanity, and whether the homepage responds without JS rendering. Twelve checks total, run once, scored where a check has a right answer and reported as fact where it does not. Free summary tells you how many of 12 passed; the paid tier returns every check with its status and detail, signed live with a dedicated Ed25519 audit key kept separate from the report chain key. The signature proves what was checked, when, and that the report was not altered afterward; it does not prove the site is good, and it does not prove the 12 checks are exhaustive. If the audit key is not yet provisioned, the tools still run and return an explicitly unsigned report that says so. Same logic as the drift report: not information nobody else has, information nobody can quietly edit afterward.
The tools above sell to agents at machine prices on testnet rails. If you are a person with a website, there are two things you can buy with a card, paid via Stripe in real money:
Why $49 when an agent pays $0.25: the agent buys a JSON response. You buy the checks run, the failures explained in the order worth fixing, and a signed record you can show someone else.
Not because the bytes are scarce. Because the answer does not exist until someone does the work of checking each pin against the platform's own retirement calendar, and the free tier only tells you that something drifted, not where. Full argument in the repository README.
Both tiers commit to the same findings_hash, so the free summary
is a binding claim about the paid tier's contents. Call
verify_report before paying to audit the claim, and after paying
to confirm you received everything. Signatures are Ed25519 over the SHA-256
digest of RFC 8785 canonical JSON; a receipt signed by the Python
publisher (oracle/receipt.py) verifies against the TypeScript
Worker with no shared trust required. See catalog.json for the
exact fields and file references.