This page shows a subset. The full, current catalog with all tools and prices: /agents.json · llms.txt

Chain data, inference and signed decisions for agents

Pay per signed result in USDC on Base, Arbitrum, Polygon or Solana via x402 or MCP. No account, API key, subscription or minimum.

Recommended purchase paths

DecisionHTTP (x402)MCP toolPrice
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-readiness
JSON includes job_id; free check: /free/us-import-readiness/check
us_import_readiness_guard
prepare: 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-pay
free check: /free/invoice-to-pay/check
invoice_to_pay_dossier_eu
prepare: 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
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
Should my agent send this on-chain transaction?
six evidenced checks → proceed / review / block; unknown is never approval
GET /x402/preflight?sender=…&to=… tx_preflight$0.02

How to pay (x402)

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())

Agent Chain Data — Wallet, Gas & Transaction API

Five read-only endpoints with stable agent-chain-data/1 output contracts. They match the concrete search intent of an agent instead of requiring it to construct raw JSON-RPC.

Intentx402 endpointPrice
Wallet balance + pending nonceGET /x402/wallet-balance?chain=base&address=…$0.003
Gas price + execution-fee estimateGET /x402/gas-estimate?chain=base&to=…$0.003
Transaction status + revert reasonGET /x402/tx?chain=base&tx_hash=…$0.002
ERC-20 balance + allowanceGET /x402/token?chain=base&token=…&owner=…$0.002
Address type + runtime bytecodeGET /x402/contract-info?chain=base&address=…$0.003

Supported data chains: Base, Ethereum, Arbitrum, Optimism and Polygon. No endpoint signs, approves, transfers or broadcasts a transaction.

AgentLLM — OpenAI-Compatible x402 Inference

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 remains at https://api.eucompliance.tools/api/v1, model agentllm/basic, for exactly 0.005 USDC with 6,000 bytes and 750 output tokens. Both return standard chat.completion fields plus a signed delivery receipt. See the free machine quickstart, agent skill and model catalog.

MCP (Claude, Claude Code and other agents)

claude mcp add --transport http eu-compliance https://mcp.eucompliance.tools/mcp

For short inference, run free prepare_agentllm_micro and then agentllm_micro for exactly 0.003 USDC. 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. 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.

What each tool answers

us_import_readiness_guard — a signed DE/AT → US pre-purchase dossier: 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.
invoice_to_pay_dossier_eu — one complete payment-readiness decision from the unchanged invoice and buyer-held expectations: 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.
check_counterparty_eu — one decision before onboarding or payment: live VIES VAT-ID validation, EU/UN/UK sanctions screening and IBAN validation, condensed into clear / review / blocked with reasons and a recommendation.
validate_einvoice_eu — applies the complete official EN 16931 Schematron rule set to XRechnung, ZUGFeRD/Factur-X and Peppol BIS documents. Every finding includes its official BR- rule code and severity; the signed result can be verified independently.
tx_preflight — simulates before gas is spent, decodes a revert reason into plain text, checks balance, nonce, ERC-20 allowance and the counterparty, then returns proceed / review / block with evidence and safe next actions.

Machine-readable