Skip to content

v2.0.0 — 500 strong: the curated catalog

Choose a tag to compare

@MikeyPetrillo MikeyPetrillo released this 14 Jul 12:03
· 2192 commits to main since this release
cf034a7

v2.0.0 — The 500

Agent402's catalog is now 500 endpoints — 400 tools + 100 skill packs. This is a
major version because roughly 970 routes are gone: if you were calling a pairwise
converter endpoint, read on.

500 strong. Every one tested, priced, and settled on-chain. Every one earns its place.

What changed

Three moves, one number:

  1. Pruned ~970 pairwise unit-converter endpoints (/api/convert-miles-to-km and
    friends). They were generated permutations of one unit table. A single parametric
    tool — POST /api/unit-convert — serves every pair with the same unit ids and the
    same math. Catalog: 1,432 → 462.
  2. Built 30 new tools + 8 new skill packs — the seven groups below. Every one
    answered its own documented example live (HTTP 200 against the real upstream)
    before it was allowed in. Catalog: 462 → 500.
  3. Raised the bar. Every entry answers its own documented example on every CI run,
    is priced to market, and was live-verified before it shipped. The catalog grows only
    when a tool is worth calling.

The quality gate

scripts/sync-count.js --check runs in CI and derives the counts from the booted
server — the total from /health, the pack count from /api/skill-packs.json — and
fails the build if the documented total drifts from reality, or if the catalog falls
below a 400-entry floor (a drop that size means a kit fell off the build, not a
curation decision):

Catalog fell below the 400-entry floor (got N) — a kit is probably missing.

The check can't be gamed by editing a doc (the counts come from the running server),
and it runs before any count sweep, so a broken catalog can never write its own
numbers into the docs.

Graceful retirement

The retired converter routes don't 404. Both shapes the old endpoints had — the slash
form GET /api/convert/<from>-to-<to>?value=N and the slug form
POST /api/convert-<from>-to-<to> — return a teaching 410: the body names the
replacement route and hands back a ready-to-send input ({ value, from, to }, with the
caller's own value and both unit ids parsed out of the old path), plus an
/api/find?q=unit+convert discovery hint. Never a 301 — an agent must not silently
re-POST a paid call across routes; it gets the exact new call instead.

The retired tool pages do 301 to the survivor's page: a page visit has no re-POST
hazard, and inbound links keep their equity.

The quality bar (same bar, smaller surface)

  • Every tool answers its own documented example on every CI run — the release
    blocks on any failure.
  • The 30 new tools were live-verified against their real upstreams before merge.
  • Every tool that touches the network is wallet-only. The free tier is pure-CPU
    only: 216 of the 500 work with no wallet at all, via signed, single-use,
    slug-scoped proof-of-work.
  • Deterministic only — no LLM in the serving path. Same input, same output, full
    OpenAPI schemas.

New capabilities — 30 tools + 8 packs, seven groups

Group What you get
Contract / EVM (7) contract-source + contract-abi (Sourcify), solidity-scan (fixed heuristic ruleset — a pattern check, not an audit), calldata-decode, selector-lookup, tx-simulate (read-only eth_call, nothing signed), address-label
Market micro-feeds (6) options-chain, premarket-quote, stock-dividends, dividend-calendar, crypto-orderbook, stablecoin-peg
Entity enrichment (5) lei-lookup (GLEIF), wikidata-entity, github-repo, gravatar-check, favicon-grab — all keyless
Web / content (4) feed-parse (RSS/Atom/RDF), unshorten-url (redirect chain, SSRF re-checked per hop), archive-snapshot (Wayback), search-videos
Media / format (5) image-exif, image-dominant-color, image-crop, json-schema-infer, srt-convert
Locale / time (3) ics-parse (RFC 5545 + bounded RRULE expansion), public-holidays, country-info (committed dataset, pure CPU, free tier)
Skill packs (8) contract-audit, tx-forensics, market-open, entity-enrich, feed-watch, schema-guard, subtitle-pipeline, locale-brief — whole-job bundles over the new tools, callable as MCP prompts

Payments (unchanged)

USDC over x402 on Base, Solana, Polygon, Arbitrum, Monad, Stellar & Algorand, plus
USDG on Robinhood Chain — 8 chains. Or a few seconds of proof-of-work on the pure-CPU
tools, no wallet needed. By default (FREE_MODE=true) everything runs free.

Proof

Revenue is public: every paid call settles to
agent402.base.eth,
verifiable by anyone on Basescan. On-chain settlement receipts for the new tools land
with the launch sweep — a real paid buy against each new endpoint, so every entry in
the table above is advertised only after it has actually settled. Live counters:
/api/stats · seller ranking:
/api/leaderboard.