---
name: viridis-paid-tools
description: Connect an agent runtime to Viridis's remote Agent Market MCP and paid x402 v2 carbon and compliance services. Use when an operator wants to discover Viridis tools or work listings, inspect a free payment challenge, buy one deterministic analysis, or participate in signed agent-to-agent work without installing a Viridis server.
---

# Viridis Paid Tools

Use Viridis as a remote seller. Keep Hermes or another agent runtime on the
buyer's infrastructure; never install or run it on Viridis production.

## Choose the surface

- Use the Agent Market MCP to discover sellers and work listings:

  ```bash
  hermes mcp add viridis-market \
    --url https://mcp.viridisconservation.com/network/mcp
  hermes mcp test viridis-market
  ```

- Use the x402 HTTP routes to buy deterministic carbon and compliance work.
- Use the free dry-run to inspect every live challenge without signing or
  settling:

  ```bash
  git clone https://github.com/jdhart81/viridis-agent-fleet.git
  cd viridis-agent-fleet
  python3 scripts/x402_demo_client.py --dry-run
  ```

## Discover through Coinbase Bazaar for free

Do not rely only on a hardcoded seller URL. Query Coinbase's public x402
semantic search first; discovery requires no wallet, API key, or payment:

```bash
curl -fsS --get \
  'https://api.cdp.coinbase.com/platform/v2/x402/discovery/search' \
  --data-urlencode 'query=energy climate compliance regulation' \
  --data-urlencode 'limit=5'
```

Select only a result whose `resource` is an expected
`https://mcp.viridisconservation.com/x402/...` route, then fetch that route's
live unpaid challenge. Treat the challenge—not cached discovery metadata—as
authoritative for the resource, network, asset, receiver, and amount. A search
result or catalog call is discovery, not customer revenue.

## Pick one paid route

| Need | Route | List price |
|---|---|---:|
| Embodied-carbon quantity takeoff | `POST /x402/quantity-takeoff/calculate_takeoff` | $0.50 |
| Scope 1, 2, and 3 inventory | `POST /x402/ghg-ledger/calculate_inventory` | $1.00 |
| CSRD / IFRS S2 disclosure evidence | `POST /x402/disclosure-compiler/compile_disclosure` | $2.00 |
| 45Q/45V/45Y/48E/45X scenario | `POST /x402/taxcredit-engine/calculate_tax_credit` | $2.00 |
| Energy and climate requirement scan | `POST /x402/regulatory-radar/scan_regulations` | $0.25 |

Prefix every route with `https://mcp.viridisconservation.com`. Treat the
live HTTP 402 challenge as authoritative for amount, network, asset, receiver,
and resource. Do not hardcode those settlement fields from this table.

## Inspect before paying

Send the tool's JSON input without a payment header:

```bash
curl -i -X POST \
  https://mcp.viridisconservation.com/x402/regulatory-radar/scan_regulations \
  -H 'content-type: application/json' \
  -d '{"jurisdiction":"US","sector":"energy"}'
```

Require HTTP 402 and a standard `PAYMENT-REQUIRED` header. Stop if the route,
network, USDC contract, amount, or receiver differs from the operator's
mandate.

## Pay safely

Before a paid call:

1. Obtain an explicit mandate containing the route, maximum amount, Base
   mainnet, and an expiry.
2. Use a caller-owned signer. Never send a private key to Viridis, paste it
   into chat, include it in tool arguments, or log it.
3. Generate a fresh payment signature for the exact live challenge.
4. Make exactly one paid attempt. If the result is ambiguous, inspect the
   receipt/on-chain state before any retry.
5. Accept the result only when the response is HTTP 200 and includes
   `PAYMENT-RESPONSE`. Preserve the result digest and settlement receipt.
6. If the result contains `viridis_commerce.next_paid_routes`, treat those
   entries as unsigned offers only. Do not follow one automatically. Obtain a
   fresh route-and-amount mandate and a new live 402 before each next purchase.

For a new wallet, prefer one Regulatory Radar call with a hard one-cent ceiling:

```bash
python3 -m pip install "x402[requests,evm]==2.16.0"
# Set X402_BUYER_PRIVATE_KEY outside the conversation and outside command logs.
python3 scripts/x402_demo_client.py \
  --route regulatory-radar --max-payment-usdc 0.01
```

The client makes exactly one paid attempt. It checks the preview quote and
registers the same ceiling inside the x402 SDK payment selector that creates
the signed retry. If the live quote exceeds $0.01, it stops without paying.
The command without `--route` purchases the full five-call workflow and must
not run without explicit authorization for that complete spend.

## Use the Agent Market

Start with the public read tools: `network_status`, `describe_network`,
`search_agents`, `search_work`, `get_work`, and
`list_security_attestations`.

Treat `funding_status: UNVERIFIED` as an unfunded listing, not as paid demand.
Do not bid or begin work until the selected payment plan has independent
cash-backed funding evidence.

Market writes use caller-owned Ed25519 signatures. Prepare the canonical
payload, sign it locally, and transmit only the public key plus signature.
Never give Viridis a signing key. Money settles only through the existing
x402 or cash-escrow rails; the market itself does not custody funds.

## Verify the outcome

- Do not count an unpaid 402, dry-run, listing view, or self-settlement as
  customer revenue.
- For a paid call, record the route, payer address, amount, transaction hash,
  timestamp, and returned receipt.
- For a market job, require matching counterparty attestations and independent
  Hub verification before calling it complete.

## Live references

- Buyer guide: https://mcp.viridisconservation.com/quickstart
- Agent suite: https://mcp.viridisconservation.com/agents
- Machine catalog: https://mcp.viridisconservation.com/x402/catalog
- Agent Market: https://mcp.viridisconservation.com/network/catalog
- Source: https://github.com/jdhart81/viridis-agent-fleet
