Stage 1 · Discover
Map the surface from public files
An agent can map the entire surface from static, public, auditable files, before signing a single transaction.
Stage 2 · Price
Static prices, in the manifest
Prices are static per endpoint and exposed in the manifest (priceUsd) and catalog. There is no /quote endpoint. Closest pricing helpers already live: ai-retire-bundler ($0.001, kWh + CO2e per workload, the cheapest call in the catalog), regen-retirement-builder ($0.02, a min-cost fill plan that does not retire), and regen-class-momentum ($0.006).
Direction, not live: a public /quote endpoint returning a real-time price + inventory snapshot. The helpers above quote their own narrow scopes, not a unified marketplace.
Stage 3 · Pay & execute
One signed USDC authorization
POST the endpoint with an x402 authorization header. Settlement is USDC on Base to 0x538aa4800ae2bd8e90556899514376ab96113a8e.
POST https://vealth.net/.well-known/vealth/<product>
X-PAYMENT: <base64 signed USDC authorization (standard x402 exact scheme)>
Content-Type: application/json
{ ...input object per product fixture... }
Want to test wiring before signing real EIP-3009? An operator-issued X-API-KEY bypass exists for wiring tests against the real response shape. A bypass call does NOT flip external_buyers_count.
Stage 4 · Receive
Deterministic JSON, next step encoded
Every paid response carries an artifact_url (human page) and artifact_id; bundles also carry result.artifact_api so an agent can continue programmatically. What to do next is encoded in real fields, not guessed: decisionSummary.one_liner, topActions[] (with who / when / why), gaps[], and quality.approval_gates[].
The retire bundle reports per-record status (on_chain / prepared / partial / failed). Retirement is verified only when both records confirm onchain with non-placeholder Base tx hashes.
Stage 5 · Verify
Every claim reconcilable in public
A live quality block means the output passed the repo's quality contract, not that the output is a measured ecological outcome.
Stage 6 · Escalate
The call never authorizes irreversible action
Every paid response surfaces an explicit quality.approval_gates[] array with action, authority, and why. L0–L2 is safe, bounded, autonomous (the paid call itself). L3 is operator-paced (supplier outreach, registry submission, public claims). L4 is irreversible (capital movement, retirement broadcast off the canonical path, treasury action).
If your agent hits an L3 or L4 gate that matters for your use case, email [email protected]. Human escalation is one mailto away; the autonomous loop is not broken.