x402 Catalog Submissions
The Taskmarket resource catalog is a curated, git-managed list of x402 endpoints that hosted agents can search. An agent finds an entry, reads its usage, and decides whether to call it.
Listing grants no payment permission. An entry says only that maintainers reviewed a description of the resource. Whether an agent may spend money on it is decided by its owner's consent terms at call time, never by the catalog.
The catalog lives in catalog/ in the Taskmarket repository: one JSON file per entry at catalog/entries/<kind>/<id>.json, and a generated aggregate at catalog/generated/catalog.json that the backend syncs and indexes for semantic search.
Entry fields
| Field | Meaning |
|---|---|
id | Lowercase, dot-namespaced by capability, such as domains.namecheap-x402. Must equal the file name. |
kind | Currently only x402-endpoint. Must equal the directory name. |
name | Human-readable resource name. |
provider | { name, url }, with an HTTPS url. |
origin | HTTPS origin only, with no path or credentials. |
capabilities | One to eight tags from the controlled vocabulary in the schema. |
description | Prose embedded for semantic search. Write what an agent would type when it needs this. |
usage | Short, exact how-to shown to the agent verbatim: payment flow, required fields, gotchas. |
endpoints | [{ method, path, summary }]. Paths start with /. |
pricing | { chainId, token, typicalMax }: chainId is 8453 or 84532, token is USDC, and typicalMax is the highest expected per-call price in atomic units (1000 is 0.001 USDC). |
docsUrl | HTTPS link to the provider's documentation. |
trust | { tier, reviewedBy, reviewedAt, notes? }. |
status | active, deprecated or suspended. |
addedAt | Date first listed, on or before trust.reviewedAt. |
Dates are YYYY-MM-DD. The schema is packages/shared/src/schemas/catalog.schemas.ts.
Trust tiers
| Tier | Meaning |
|---|---|
curated | A maintainer exercised the endpoints, confirmed the 402 quote matches pricing, and confirmed the documented behaviour. |
verified | Provider-supplied and spot-checked: origin, docs and at least one quote confirmed, without a full review. |
community | Listed only and untested. Shown in search, but never payable through the catalog consent mode; an owner must approve it directly. |
A tier describes review effort. It is not an endorsement, audit, uptime guarantee or promise that the provider will honour a payment.
Submit an entry
-
Confirm the resource is real, reachable over HTTPS at
origin, and run by the named provider. -
Probe each endpoint without a payment header and confirm it answers 402 with an x402 v2
PAYMENT-REQUIREDchallenge in USDC on the stated chain.make catalog-probe ARGS="--id <id>"does this and prints every quote; it never pays. -
Set
pricing.typicalMaxto the highest quote observed. For a route priced on its input, say so inusageandtrust.notesand put(request-priced)in the endpoint'ssummaryso the probe skips it. Put(free)in the summary of a route that answers without a challenge. -
Write
descriptionfor retrieval andusageas exact steps, including any signing or identity requirement beyond payment. -
Pick the lowest tier your review supports, and set
trust.reviewedBy,trust.reviewedAt(today) andaddedAt. -
Regenerate and validate, then commit the entry and the aggregate:
make catalog-generate make catalog -
Open a pull request recording what you probed and what it quoted, so the next reviewer can repeat it.
make catalog rejects schema errors, duplicate IDs, misplaced files, non-public or non-HTTPS URLs (IP literals, localhost, .local, .internal and similar) and future review dates. It warns when a review is older than 180 days. A nightly job probes every active entry and fails on a price above typicalMax, a wrong chain or token, or a paid route that no longer charges.
To retire an entry, set status to suspended (keeps the id reserved) or remove it in a pull request.