Act one is not a mock: it is the shape of what our own retirement relay already does in production, twice daily, gas-gated, keyless to the caller. Act two is the one concept addition: what an agent sees at the standard discovery path if it existed, versus what it sees today.
v0.x402.klimalabs.com/api): the request/response shapes match the published GitHub skill (klima-retire.md v0.2.0) and our own production code. Act two is clearly marked Concept, a draft of a file that does not exist today, shown to illustrate the gap in finding 4 of the capability brief. Version note (2026-07-30): every call below is pinned to the v0 major. The un-prefixed host always serves the latest major and now answers as v1, where prepare-auth requires details.beneficiaryAddress up front. Copy these as written and they run.A funded work packet, proof-checked (photo + GPS + signature), approved, settled on-chain, carries a computed ecological footprint alongside its wage.
A free, unauthenticated GET against Klima's documented endpoint. No wallet touched yet.
Still free, still read-only. The relay path prices in USDC; no ETH needed anywhere in this flow.
The signer authorizes an exact USDC budget (credit + protocol fee + executor gas, slippage-buffered) via a typed-data signature, the gasless relay pattern Carbonmark's own llms.txt calls out by name.
The signed authorization is submitted; Klima's executor pays gas and broadcasts on Base, reimbursed from the signed budget.
llms.txt describes wanting: an agent that discovers, quotes, and retires, gasless, certificate-anchored, already running on a cron, not a demo written for this page.Everything in Act One works today because EcoWealth's engineers read the GitHub skill and the blog post first. A generic x402-aware agent, one that only knows the open convention, not Klima's specific shape, checks one path before giving up. Here's the difference.
$ curl https://x402.klimalabs.com/.well-known/x402
HTTP/1.1 404 Not Found
content-type: application/json
{"error":"not_found"}
# a generic x402 client stops here:
# it has no way to learn that
# /api/discover, /api/quote, and
# /api/prepare-auth exist at all
$ curl https://x402.klimalabs.com/.well-known/x402
HTTP/1.1 200 OK
content-type: application/json
{
"x402Version": 1,
"resources": [
{ "resource": "/api/discover", "method": "GET",
"accepts": [] },
{ "resource": "/api/actions/retire", "method": "POST",
"accepts": [{ "scheme": "exact", "network": "base",
"asset": "USDC", "payTo": "0xda0a…f4" }] }
]
}
# any generic x402 client now finds this
# endpoint the same way it finds ours
This concept file changes nothing about how the retirement mechanics work: the fee still settles inside the on-chain transaction, exactly as today. It only makes the existing, working API discoverable at the path the open standard says to look.
→ See the drafted files themselves in the Agent Kit
← Back to the hub