Plain thesis: four small files. None invent a new capability, each one just makes something Oimpact's own API already does (finding 1 of the capability brief) discoverable and legible the way a generic agent, not one that read Oimpact's source first, would look for it.
api.oimpact.ai's five endpoints), not invented capabilities.Standard Agent2Agent card, protocolVersion 0.3, describing exactly the five endpoints api.oimpact.ai/ already lists in its own root JSON, so a generic A2A-aware orchestrator can find this host without reading its self-description text first.
{
"protocolVersion": "0.3",
"name": "OpenImpact Agent API",
"description": "OpenAI-compatible API for creating and operating AI agents that transact Oimpact's on-chain Impact Catalog, minting RWI per verified purchase.",
"url": "https://api.oimpact.ai",
"provider": { "organization": "Oimpact (ecoToken)" },
"capabilities": { "streaming": false, "pushNotifications": false },
"skills": [
{
"id": "chat-completions",
"name": "Chat Completions",
"description": "OpenAI-compatible chat completion against an Oimpact agent.",
"tags": ["chat", "openai-compatible"],
"examples": ["POST /v1/chat/completions with a standard OpenAI-shaped body."]
},
{
"id": "manage-agent",
"name": "Create / Message an Agent",
"description": "Create a new agent or send it a message.",
"tags": ["agents", "0g", "erc-7857"],
"examples": ["POST /v1/agents to mint a new Agentic ID.", "POST /v1/agents/:id/messages to talk to one."]
},
{
"id": "usage-and-balance",
"name": "Usage & Balance",
"description": "Read current usage and RWI/credit balance for the authenticated caller.",
"tags": ["usage", "rwi", "billing"],
"examples": ["GET /v1/usage", "GET /v1/balance"]
}
]
}
Today, oimpact.ai/.well-known/x402 soft-200s the SPA shell (finding 3). This concept file (at the API host, where the real capability lives) describes the marketplace purchase flow (finding 6 of the brief) in the standard accepts[] shape any x402-aware agent, including EcoWealth's own EWP clients, already knows how to read.
{
"x402Version": 1,
"provider": "Oimpact",
"description": "Fund a verified real-world-impact purchase through an Oimpact agent; every completed purchase mints an RWI token.",
"resources": [
{ "resource": "/v1/agents/:id/messages", "method": "POST",
"accepts": [
{ "scheme": "exact", "network": "eip155:16661", "asset": "USD (Stripe) or wallet-send (ETH/0G)",
"description": "Talk to an Oimpact agent to browse and buy a catalog listing; payment settles per-listing, RWI mints on completion." }
] },
{ "resource": "/v1/usage", "method": "GET", "accepts": [], "description": "Read current usage for the authenticated caller." },
{ "resource": "/v1/balance", "method": "GET", "accepts": [], "description": "Read current RWI/credit balance for the authenticated caller." }
]
}
The same five endpoints api.oimpact.ai/ already documents, expressed as MCP tool definitions, usable by any MCP host, not only a client that already parses a bespoke JSON root.
{
"tools": [
{ "name": "oimpact_chat_completion",
"description": "OpenAI-compatible chat completion against an Oimpact agent.",
"inputSchema": { "type": "object", "required": ["messages"],
"properties": { "messages": { "type": "array" }, "model": { "type": "string" } } } },
{ "name": "oimpact_create_agent",
"description": "Mint a new Oimpact agent (Agentic ID, ERC-7857) from a template.",
"inputSchema": { "type": "object", "required": ["template"],
"properties": { "template": { "type": "string", "enum": ["eco", "cmo", "grants"] }, "name": { "type": "string" } } } },
{ "name": "oimpact_message_agent",
"description": "Send a message to an existing Oimpact agent by id.",
"inputSchema": { "type": "object", "required": ["agentId", "message"],
"properties": { "agentId": { "type": "string" }, "message": { "type": "string" } } } },
{ "name": "oimpact_get_usage",
"description": "Read current usage for the authenticated caller.",
"inputSchema": { "type": "object", "properties": {} } },
{ "name": "oimpact_get_balance",
"description": "Read current RWI and credit balance for the authenticated caller.",
"inputSchema": { "type": "object", "properties": {} } }
]
}
Role. Walks a buyer through funding a City-Forest-Credits-class retirement (or another Impact Catalog listing), states the exact price and RWI yield at the current bonding-curve rate before any payment, and, per this kit's concept addition, offers to attach a funded EWP work-packet receipt (photo+GPS+signature, settled on Base) as the mint's evidence object, alongside the payment's transaction hash.
Guardrails. Never fabricates a retirement or a settlement receipt: only cites an on-chain transaction hash or work-packet ID it can actually resolve. States plainly when evidence is "payment only" versus "payment + proof-of-labor," matching Oimpact's own whitepaper distinction between a payment and verified real-world evidence. Never claims RWI is an investment (matching Oimpact's own stated house style).
Sample turn. "Retiring 1 tonne of City Forest Credits costs $6.40 and mints about 640 RWI at today's rate. I can also attach a funded EWP work packet, a real, GPS-and-signature-verified field visit for this credit class, as extra evidence on the mint. Want the payment only, or payment plus the field-proof receipt?"