This page explains the main purchase paths. The live MCP tools/list catalog is available at /mcp-tools.json; the HTTP catalogs are at /agents.json and /llms.txt.
Give an autonomous agent one remote layer with 40 tools, including 10 free, for product discovery, purchase safety, compliance decisions, live chain and market evidence, and fixed-price inference. Pay per successful result in USDC on Base, Arbitrum, Polygon or Solana through x402 or MCP. No account, API key, subscription or minimum.
A successful call returns machine-readable structuredContent plus equivalent JSON
text for older clients. It includes source and timing evidence and a cryptographically signed
receipt that can be checked for free with verify_compliance_receipt. Invalid input,
an unavailable promised source or another tool error is returned as an MCP error and is
not settled. A successful, non-blocking result may also carry advisory
_meta.next_tools with exact catalog prices. Those hints never execute a tool or
authorize a payment. A payment is therefore for a delivered result, not for a failed attempt.
| Decision | HTTP (x402) | MCP tool | Price |
|---|---|---|---|
| Which tool fits this job? goal + optional category, country, chain, price cap and available input names → one to three catalog matches and a safe workflow |
MCP-native; no target call | recommend_agent_tool | free |
| Which live state does my agent need across one or several EVM chains? one default chain, optional per-request overrides and up to 20 allowlisted read-only JSON-RPC calls across 28 mainnets |
POST /x402/rpc |
rpc_read_batch | $0.01 |
| What market action is supported by the current evidence? sources + freshness + confidence + reasons + risks + invalidation → ENTER RISK / WAIT / REDUCE RISK, expiring after 15 minutes |
GET /x402/daily |
market_decision_pack | $0.05 |
| Is this ordinary DE/AT product ready for a US carrier quote? USITC HTS + simple duty component + CPSC recalls + declared regulatory attributes |
POST /x402/us-import-readinessJSON includes job_id; free check: /free/us-import-readiness/check |
us_import_readiness_guardprepare: prepare_us_import_readiness | 0.25 USDC |
| Is this EU supplier invoice ready for buyer approval? EN 16931 + VIES + EU/UN/UK sanctions + VAT + trusted IBAN → READY / HOLD / DO NOT PAY |
POST /x402/invoice-to-payfree check: /free/invoice-to-pay/check |
invoice_to_pay_dossier_euprepare: prepare_invoice_to_pay_eu | 1.00 USDC |
| Can I onboard or pay this counterparty? VAT + sanctions + IBAN → clear / review / blocked |
GET /x402/counterparty?name=…&vat=…&iban=… |
check_counterparty_eu | $0.02 |
| Does this company exist in an official register? France (Annuaire des Entreprises), Norway, Czechia, Finland, Slovakia or Poland |
GET /x402/company?country=FR&name=… |
lookup_company_eu | $0.01 |
| Can I accept or send this EU e-invoice? official EN 16931 rules → valid / invalid with BR codes |
POST /x402/einvoice |
validate_einvoice_eu | $0.10 |
| Does this x402 challenge still match my purchase policy? resource + method + USDC amount + network + recipient → confirm / review / reject |
POST /x402/purchase-guardfree v2 wire-shape check: /free/x402-purchase-guard/check |
x402_purchase_guardprepare: prepare_x402_purchase_guard | $0.03 |
| Should my agent send this on-chain transaction? five core checks plus an optional ERC-20 balance/allowance check → proceed / review / block; unknown is never approval |
GET /x402/preflight?sender=…&to=… |
tx_preflight | $0.02 |
Call the endpoint. You get HTTP 402 with a payment-required header containing the
payment requirements (scheme exact, asset USDC) for Base, Arbitrum, Polygon and Solana.
Sign and repeat the call with the PAYMENT-SIGNATURE header — any x402 v2 client SDK does this
automatically. Settlement runs through the PayAI facilitator; the payer needs no native gas token.
pip install "x402[evm]"
import requests
from x402.client import x402ClientSync
from x402.mechanisms.evm.exact.register import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
from x402.http.clients.requests import wrapRequestsWithPayment
# 1) Send the same JSON to the free local input check first.
payload = {
"invoice_xml": complete_ubl_or_cii_xml,
"buyer_country": "AT", "expected_amount": "1250.00", "expected_currency": "EUR",
"trusted_payee_iban": iban_from_buyer_master_data
}
check = requests.post("https://api.eucompliance.tools/free/invoice-to-pay/check", json=payload)
check.raise_for_status()
assert check.json()["eligible_for_paid_dossier"] is True
# 2) Only if eligible, use an x402-enabled session for the 1.00-USDC dossier.
client = x402ClientSync()
register_exact_evm_client(client, EthAccountSigner(my_account), networks="eip155:8453")
session = wrapRequestsWithPayment(requests.Session(), client)
r = session.post("https://api.eucompliance.tools/x402/invoice-to-pay", json=payload)
print(r.json())
Use focused read-only tools for common jobs or send a bounded JSON-RPC batch when an agent needs lower-level evidence. None of these tools signs, approves, transfers or broadcasts a transaction.
| MCP tool | Evidence or decision returned | Exact price |
|---|---|---|
rpc_read_batch | 1–20 allowlisted read-only JSON-RPC requests in one call across 28 EVM mainnets; use one default chain or an optional chain per batch entry | $0.01 |
wallet_balance | Native balance, pending nonce, observed block and serving RPC source | $0.003 |
gas_estimate | Current gas price plus optional execution-gas and fee estimate, with excluded rollup components stated | $0.003 |
contract_info | Runtime bytecode, native balance, nonce and evidence-based address classification | $0.003 |
tx_status | Transaction and receipt status with decoded revert reason when available | $0.002 |
token_status | ERC-20 balance, allowance and token metadata for an owner and spender | $0.002 |
tx_preflight | Five read-only on-chain core checks plus an optional token balance/allowance check; no wallet sanctions claim → proceed, review or block | $0.02 |
x402_purchase_guard | Offline target-challenge versus buyer-policy decision with signed fingerprint; free canonical-v2 precheck first | $0.03 |
read_url | Bounded public-page retrieval as clean text or Markdown before an agent acts on a link | $0.003 |
The focused Agent Chain Data tools keep the stable agent-chain-data/1 response
contract and support Base, Ethereum, Arbitrum, Optimism and Polygon.
rpc_read_batch covers 28 named EVM mainnets with per-request chain overrides.
Signing, state-changing convenience methods and transaction broadcasting are unavailable.
Matching HTTP x402 endpoints remain listed in
/agents.json.
Start with a source-backed observation, buy a combined positioning brief when context matters, or request a complete time-bounded decision. Sources, timestamps, missing evidence and the calculation rule are disclosed rather than hidden behind a score.
| MCP tool | What the agent receives | Exact price |
|---|---|---|
spot_price | Median of at least two live replies while attempting Binance, Coinbase and Kraken; every delivered quote and spread is shown | $0.001 |
open_social_search | Bluesky and Hacker News for every query; Mastodon additionally for a single tag. A promised-source failure is an uncharged error, never a partial paid result. | $0.002 |
perp_market_data | Hyperliquid mark/oracle price, funding, open interest, volume, premium and leverage | $0.005 |
market_history | Our archived gas, yield, commodity or market-regime series in raw or daily resolution; at least two usable points are required, otherwise the error is uncharged. | $0.008 |
market_data | Computed market_brief, Base gas or yield indicator with freshness and repeat timing | $0.01 |
coin_positioning_brief | Spot/perp evidence; the 0–100 score uses funding and premium, while the six-hour archive trend is separate context | $0.01 |
soft_commodity_stress | Weather-only growing-belt stress score plus at least one cocoa-or-coffee farmgate-price observation as context | $0.04 |
market_decision_pack | ENTER_RISK, WAIT or REDUCE_RISK, with confidence, reasons, risk flags, invalidation conditions and 15-minute expiry | $0.05 |
First validate the exact request for free. The response returns the paid URL, exact price and safe payment cap without calling the model:
curl -X POST https://api.eucompliance.tools/free/agentllm/check \
-H 'content-type: application/json' \
-d '{"model":"agentllm/micro","messages":[{"role":"user","content":"Classify: invoice paid."}],"max_tokens":80}'
Then use the same JSON with an x402-enabled OpenAI transport:
pip install openai "x402[httpx,evm]" eth-account
import asyncio, os
from eth_account import Account
from openai import AsyncOpenAI
from x402 import x402Client
from x402.client import max_amount
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact.register import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
async def main():
payment = x402Client()
signer = EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"]))
register_exact_evm_client(payment, signer, networks="eip155:8453")
payment.register_policy(max_amount(3000)) # hard cap: 0.003 USDC
async with x402HttpxClient(payment) as http_client:
client = AsyncOpenAI(base_url="https://api.eucompliance.tools/api/v1/micro",
api_key="x402", http_client=http_client)
response = await client.chat.completions.create(
model="agentllm/micro",
messages=[{"role": "user", "content": "Classify: invoice paid."}],
max_completion_tokens=80,
)
print(response.choices[0].message.content)
asyncio.run(main())
A normal OpenAI client without this payment transport stops at HTTP 402. Micro costs exactly
0.003 USDC with 2,400 UTF-8 input bytes, 8 messages and 300 output tokens. Basic is at
https://api.eucompliance.tools/api/v1, model agentllm/basic, for exactly
0.005 USDC with 6,000 bytes and 750 output tokens. Plus is at
https://api.eucompliance.tools/api/v1/plus, model agentllm/plus, for exactly
0.02 USDC with 6,000 bytes and 1,200 output tokens. All three return standard
chat.completion fields plus a signed delivery receipt. See the free
machine quickstart, agent
skill and model catalog.
claude mcp add --transport http eu-compliance https://mcp.eucompliance.tools/mcp
The server publishes 40 tools with exact input and output schemas in tools/list.
If the right product is unclear, call free recommend_agent_tool; it deterministically
ranks the published catalog without a model call, network request, payment or target-tool execution.
Paid successes return signed
structuredContent; tool failures are marked as errors and are not settled. For short
inference, run free prepare_agentllm and then choose agentllm_micro,
agentllm_basic or agentllm_plus at the exact returned price. For US importing, run free
prepare_us_import_readiness and then
us_import_readiness_guard (its risk_answers object uses the exact eleven
fields shown in the catalog). For invoices, run free prepare_invoice_to_pay_eu before
invoice_to_pay_dossier_eu. Counterparty, e-invoice and transaction
pre-flight remain available for smaller jobs. Before another x402 purchase, run free
prepare_x402_purchase_guard and then x402_purchase_guard for the signed
policy decision. VAT-ID, IBAN and receipt verification are free entry tools. Payment
travels in-band in the tool call (_meta); an unpaid call returns machine-readable
payment requirements.
PROCEED_TO_USER_CONFIRMATION, REVIEW_REQUIRED or
REJECT_CHALLENGE with stable reasons and a fingerprint. It never calls the target,
uses a wallet or attempts the target payment. A positive result still needs confirmation, pins one
exact option and expires after 10 minutes; identity, delivery and target request-body binding remain outside scope.
PROCEED_TO_CARRIER_QUOTE, REVIEW_REQUIRED or
DO_NOT_FORWARD. It validates a supplied HTS code or returns non-binding current
USITC candidates, calculates only a simple ordinary-duty component, checks CPSC recall
candidates and routes declared regulated attributes. The free prepare tool returns the paid URL,
job ID and a recovery secret. No product URL, checkout, forwarding address, shipping booking or
carrier account is touched; no exact landed cost, binding classification or clearance is claimed.
READY_FOR_BUYER_APPROVAL, HOLD_FOR_REVIEW
or DO_NOT_PAY. Every result includes evidence paths, source timestamps, safe next
actions and a receipt whose complete envelope is signed. Missing evidence is never approval.
The service checks IBAN structure and trusted-data consistency, but never claims bank-account
ownership. READY_FOR_BUYER_APPROVAL does not prove delivery, internal approval or duplicate-ledger status. Input is
UBL/CII XML or ZUGFeRD/Factur-X with one embedded XML invoice, not an ordinary or scanned PDF.
One completed dossier is 1.00 USDC; no subscription or paid follow-up.
clear / review / blocked with reasons and a recommendation.
BR- rule code and severity; the signed result can be verified independently.
proceed / review / block with evidence and safe next actions. Wallet sanctions screening
is not included because official name lists cannot clear or identify a blockchain address.
tools/list names, descriptions and schemas