This is an earlier note (July 2026). A newer Klima integrator note is live, as of 2026-08-18. Read the current one at vealth.net/klima →
Shown, not told · Concept-labeled · Unlisted

The retirement loop, running end to end, today

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.

Read this first. Act one narrates EcoWealth's real, live retirement flow against Klima's real, live, documented endpoints (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.

Act One: Live shape

A settled work packet becomes a Carbonmark certificate

1

EWP settles real-world labor on Base

A funded work packet, proof-checked (photo + GPS + signature), approved, settled on-chain, carries a computed ecological footprint alongside its wage.

$ ewp:work:settle --id 41821 ✓ settled workId=41821 wage=$0.42 tCO2e_share=0.00031 tx=0x7f2c…9ab1 (Base)
2

discover: read the live carbon classes

A free, unauthenticated GET against Klima's documented endpoint. No wallet touched yet.

GET https://v0.x402.klimalabs.com/api/discover?maxUsdcPricePerTonne=25 200 OK { "carbonClasses": [ { "name": "Regen Network: City Forest Credits", "priceUsdcPerTonne": "6.40", "creditsDetailed": [{ "registry": "Regen Network", "vintage": "2024", "tokenId": "0x0008f3…", "liquidityFormatted": "412,880.0" }] } ] }
3

quote: price this exact retirement

Still free, still read-only. The relay path prices in USDC; no ETH needed anywhere in this flow.

GET https://v0.x402.klimalabs.com/api/quote?chainId=8453&inputToken=USDC&carbonClass=0xf469…bf45&amount=0.00031 200 OK { "tonnesFormatted": "0.00031", "totalFormatted": "0.0022", "pricePerTonneFormatted": "7.10", "humanSummary": "0.00031t ≈ $0.0022 USDC" }
4

prepare-auth → sign: one EIP-712 signature, no gas

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.

GET https://v0.x402.klimalabs.com/api/prepare-auth?chainId=8453&carbonClass=0xf469…bf45&amount=0.00031&inputToken=USDC&from=0x034F…c89 200 OK authValueFormatted="0.0024" # refuses to sign above $0.25 cap: micro-law → signing EIP-712 typedData locally (no broadcast, no gas spent)
5

actions/retire: the executor broadcasts, we never touch gas

The signed authorization is submitted; Klima's executor pays gas and broadcasts on Base, reimbursed from the signed budget.

POST https://v0.x402.klimalabs.com/api # body-form: the /actions/retire PATH form 404s body = the prepared actionsRetireRequest, with v/r/s MERGED into authPayload 200 OK status="completed" txHash=0x9c14…f02e certificateUrls=["https://app.carbonmark.com/retirements/0x9166…a0b9"]
What comes back: a public Carbonmark certificate, project, vintage, tonnage, beneficiary, permanently verifiable by anyone, plus a Base transaction hash. workId 41821's footprint is now retired. This is the full loop Carbonmark's own 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.

Act Two: Concept addition Concept

What the standard discovery path would show, if it existed

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.

Today

$ 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

Concept: same path, a real manifest

$ 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.

Act one is real, ours, and running right now. Act two is one file Klima hasn't published yet, everything it points to already works. The rail is built. The sign on the door is the only thing concept-labeled here.

→ See the drafted files themselves in the Agent Kit

← Back to the hub
Provisioned by EcoWealth · Digital Provisioning Protocol · provenance‑sealed