Four small files. None of them change how a swap or retirement executes — they only make the existing, working api.bridge.eco/registry endpoint (capability brief Finding 1) and the Swap/Impact/Stake flow (Finding 3, 9) discoverable the way a generic agent — not just one that read the bundled JS — would look for them.
developers-guide.md) and its own live registry schema — not invented capabilities.The one file that would let any LLM-aware crawler or agent find the real registry endpoint and the retirement flow without reading the Vite bundle first — the same gap Regen Compute's own llms.txt already closes for Regen itself.
# ecoBridge (bridge.eco)
> Cross-chain payment + retirement bridge for Regen Network ecological credits.
> Pay in 50+ tokens across 8 chains; fund a specific project's credit retirement in one flow.
## For agents
- Registry (free, no auth, CORS-open): https://api.bridge.eco/registry
Returns live projects with price, escrow/wallet addresses per chain, and an
LLM-ready quality + sales-enablement object per project.
- Retirement confirmation: https://api.ecotoken.earth/?tx={txHash}
- Verify any cross-chain retirement: https://scan.ecotoken.earth
## Credit types currently available (verify against `registry[].batch`)
- Carbon (batch prefix C02/C03): 8 projects
- Terrasos Biodiversity (batch prefix BT01): 1 project
- Kilo-Sheep-Hour (batch prefix KSH01): 1 project (labeled "Carbon" in `type`; treat `batch` as ground truth)
- Marine Biodiversity (MBS01), Umbrella Species (USS01): none currently listed
## Governance + trust
- Protocol: Cross-Chain Ecological Protocol (CCEP), aka ecoLedger
- Governance token: $REGEN (adopted Oct 2024); ecoLedger data posted to Regen Ledger
- ecoBridge runs its own validator on Regen Network (see /stake)
Standard Agent2Agent card, protocolVersion 0.3 — describing the registry-read and fund-a-retirement flow as callable skills, matching what bridge.eco's own "Impact" tab already does for a human.
{
"protocolVersion": "0.3",
"name": "ecoBridge Cross-Chain Retirement",
"description": "Pay in any of 50+ tokens across 8+ chains to fund a verified Regen Network ecological-credit retirement.",
"url": "https://api.bridge.eco",
"provider": { "organization": "ecoToken / ecoBridge" },
"capabilities": { "streaming": false, "pushNotifications": false },
"skills": [
{
"id": "browse-registry",
"name": "Browse Retirement Projects",
"description": "List live Regen Network projects available for cross-chain-funded retirement, with price, credit type, and location.",
"tags": ["carbon", "biodiversity", "regen", "registry", "read-only"],
"examples": ["What carbon projects can I fund a retirement for right now?"]
},
{
"id": "fund-retirement",
"name": "Fund a Credit Retirement",
"description": "Send tokens on a supported chain to a project's escrow wallet to trigger a Regen Ledger retirement and NFT impact certificate.",
"tags": ["retire", "cross-chain", "regen", "certificate"],
"examples": ["Fund a $2 retirement for Buena Vista Heights using USDC on Base."]
}
]
}
The same two-step flow Regen's regen-compute MCP server already exposes (browse_ecobridge_tokens, retire_via_ecobridge) — drafted here as ecoBridge's OWN published schema, so any MCP host can call it directly instead of depending on a third party's wrapper.
{
"tools": [
{ "name": "ecobridge_browse_projects",
"description": "List live projects available for retirement funding, with price, credit type (verify via batch code, not the type field alone), location, and per-chain wallet addresses.",
"inputSchema": { "type": "object", "properties": {
"creditType": { "type": "string", "enum": ["Carbon", "Biodiversity", "KSH", "MarineBiodiversity", "UmbrellaSpecies"] },
"chain": { "type": "string" } } } },
{ "name": "ecobridge_quote_retirement",
"description": "Price a specific credit-quantity retirement for a project in a given payment token/chain.",
"inputSchema": { "type": "object", "required": ["projectId", "creditQuantity", "payChain", "payToken"],
"properties": { "projectId": { "type": "number" }, "creditQuantity": { "type": "number" },
"payChain": { "type": "string" }, "payToken": { "type": "string" } } } },
{ "name": "ecobridge_fund_retirement",
"description": "Send the quoted payment to the project's escrow/wallet address on the chosen chain, triggering swap+bridge+retire.",
"inputSchema": { "type": "object", "required": ["projectId", "payChain", "payToken", "amount", "fromAddress"],
"properties": { "projectId": { "type": "number" }, "payChain": { "type": "string" },
"payToken": { "type": "string" }, "amount": { "type": "number" }, "fromAddress": { "type": "string" } } } },
{ "name": "ecobridge_confirm_retirement",
"description": "Submit the source-chain transaction hash to resolve retirement status and the NFT impact certificate URL.",
"inputSchema": { "type": "object", "required": ["txHash"], "properties": { "txHash": { "type": "string" } } } }
]
}
Role. Explains what a cross-chain-funded credit retirement means in plain language, reads the caller's connected wallet balance across supported chains, and walks browse → quote → fund → confirm — pausing for explicit confirmation before the one step that moves value. Distinct from bridge.eco's existing "ecoAgent" chat widget in one way: it's callable headlessly by any MCP host, not only inside the bridge.eco browser tab.
Guardrails. Always reads the project's batch code before stating its credit type out loud — never trusts the type field alone (Finding 5: one live project is mislabeled). Checks a project's evmWallet/solanaWallet is non-empty for the caller's chosen chain before quoting (Finding 6). States the exact fee and minimum transaction size before asking for a signature. Always surfaces the scan.ecotoken.earth verification link as proof, not just a transaction hash.
Sample turn. "El Globo Habitat Bank is a Terrasos biodiversity project (batch BT01-001) at $25/unit. I can fund 0.05 units for about $1.25 in USDC on Base, no gas needed beyond the swap. Want me to prepare it? I'll show the exact number before anything is signed, and give you the scan.ecotoken.earth link once it settles."
browse_ecobridge_tokens, retire_via_ecobridge) is proof the pattern works — it's just built by Regen, not by ecoBridge itself, today.