Before
{
"name": "Example Paid API",
"services": [{
"endpoint": "/api/answer",
"price": "$0.01",
"network": "base-sepolia"
}]
}A manifest fix should remove ambiguity for both crawlers and paying agents. The goal is a document that agrees with the live HTTP 402 challenge.
{
"name": "Example Paid API",
"services": [{
"endpoint": "/api/answer",
"price": "$0.01",
"network": "base-sepolia"
}]
}{
"x402Version": 1,
"name": "Example Paid API",
"generated_at": "2026-05-19T00:00:00Z",
"default_network": "base",
"default_asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"services": [{
"id": "example.answer",
"endpoint": "https://example.com/api/answer",
"method": "POST",
"network": "base",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"price_atomic": 10000,
"price_usdc": "0.01",
"tags": ["x402", "paid-api"]
}]
}The fixed version adds x402Version, absolute endpoint URLs, canonical network and asset values, atomic pricing, generated_at freshness, and service identifiers.
Evidence: These fields map directly to Ontario readiness signals: x402 manifest present, well formed, network consistent, manifest fresh, and price format valid.
Fix: After changing the manifest, run /api/verify/x402-readiness and compare the live 402 challenge against the manifest.