x402 · Base mainnet · machine-to-machine

AgentGuard: pre-trade safety for AI agents

One paid HTTP call returns a signed SAFE / CAUTION / BLOCK verdict your payment or DeFi agent can check before it executes a transaction — combining sanctions screening, stablecoin depeg detection, and counterparty on-chain risk into a single Ed25519-signed attestation.

● Live on Base mainnet HTTP 402 / x402 native $0.02 USDC per call

The problem it solves

Autonomous agents in the x402 / agentic-commerce economy sign and broadcast payments with no human in the loop. Before an agent sends USDC to a counterparty or settles in a stablecoin, it needs a fast, machine-readable answer to one question: is it safe to execute this transaction right now?

Existing tools give you raw data — a sanctions list here, a price feed there, an RPC balance somewhere else — and leave the agent to stitch together a decision. AgentGuard returns the decision: a single verdict with machine-readable reasons, cryptographically signed so any downstream party can verify it offline.

What each call checks

1 · Sanctions screening

The target address (and optional counterparty) screened against OFAC SDN, EU / UN / UK consolidated lists and on-chain sanctions oracles. Hard match → BLOCK; potential match → CAUTION.

2 · Stablecoin peg / depeg

Live deviation of the settlement stablecoin from $1, in basis points. > 50 bps → CAUTION, > 200 bps → BLOCK. Don't settle into an asset that's breaking its peg.

3 · Counterparty signal

On-chain balance + risk heuristic for the counterparty (fresh / unfunded wallets, risk factors). Feeds the composite verdict.

SAFENo hits, peg in tolerance, counterparty funded — proceed.
CAUTIONPotential match, peg drift, or thin counterparty — review.
BLOCKSanctions hit or severe depeg — do not transact.

Who it's for

Price

$0.02 USDC / call

Paid over HTTP 402 Payment Required using the x402 protocol. Settlement asset USDC (0x8335…2913) on Base mainnet (eip155:8453), 20000 atomic units. No account, no API key, no subscription — the payment is the auth.

How to wire it up

Step 1 — discover the price (free, no payment)

curl -i https://agentguard.hergertsynthora.com/service

# → HTTP/2 402 Payment Required
# → payment-required: <base64 x402 payload>
# → www-authenticate: x402 network="eip155:8453" asset="0x8335…2913"
#                      pay_to="0x10800a5a5B9d72251566EC651E862A8b4B427dE0" max_amount="20000"

Step 2 — pay & call with an x402 client (TypeScript)

import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY);   // 0x-prefixed key
const fetchWithPay = wrapFetchWithPayment(fetch, account);   // Base USDC wallet

const res = await fetchWithPay("https://agentguard.hergertsynthora.com/service", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    address: "0x8589427373d6d84e98730d7795d8f6f8731fda16",
    chain: "base",
    counterparty: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    stablecoin: "usdc"
  })
});
console.log(await res.json());   // → signed verdict

Step 2 (alt) — Python

from x402.clients.requests import x402_requests   # pip install x402
from eth_account import Account

session = x402_requests(Account.from_key(PRIVATE_KEY))
r = session.post(
    "https://agentguard.hergertsynthora.com/service",
    json={"address": "0x8589…fda16", "chain": "base", "stablecoin": "usdc"},
)
print(r.json())

Request body

FieldReq?Meaning
addressyesEVM address to evaluate (0x…, 42 chars)
chainnobase (default) · ethereum · polygon · arbitrum · optimism
counterpartyno2nd address to screen & balance
stablecoinnosettlement stablecoin, e.g. usdc, usdt, dai (default usd-coin,tether)

Response (real shape)

{
  "ok": true,
  "niche": "pretrade_safety",
  "result": {
    "address": "0x8589…fda16",
    "chain": "base",
    "verdict": "SAFE",
    "sanctions_ok": true,
    "sanctions_detail": { "screened": ["0x8589…"], "sanctioned": [], "potential_match": [] },
    "peg_status": { "stablecoin": "usd-coin", "price_usd": 1.0003, "deviation_bps": 3, "ok": true },
    "counterparty": { "risk_score": 0, "risk_factors": [], "is_counterparty": true },
    "reasons": ["no sanctions hits, stablecoin within peg tolerance, counterparty funded"],
    "policy": { "peg_caution_bps": 50, "peg_block_bps": 200,
                "verdict_levels": ["SAFE","CAUTION","BLOCK"] },
    "service_version": "1.0"
  },
  "provenance": {
    "composes": ["svc_aml_screening","svc_stablecoin_peg","svc_rpc_balance"],
    "data_sources": ["ofac.treas.gov","eu_consolidated_list","chainalysis_oracle",
                     "goplus","coingecko","base_rpc"],
    "signature": "ed25519 (mesh attestation receipt)"
  },
  "receipt": { "pubkey": "<ed25519 pubkey>", "sig": "<signature over canonical result>" }
}

The receipt is an Ed25519 signature over the canonical serialization of result. Verify it offline with the published public key — no trust in the server required.

Machine-readable entry points

OpenAPI 3.1 spec x402 discovery POST /service

FAQ

What is x402 pre-trade safety?

x402 pre-trade safety is a check an autonomous agent runs before it broadcasts a payment or DeFi transaction. AgentGuard exposes it as one paid HTTP 402 call: the agent POSTs an address, and gets back a signed SAFE / CAUTION / BLOCK verdict. It scores the transaction; it never executes it.

Is AgentGuard an agent AML / sanctions check API?

Yes. Each call is an agent AML sanctions check API pass over the target address (and an optional counterparty) against OFAC SDN and EU / UN / UK consolidated lists plus on-chain sanctions oracles. A hard match returns BLOCK; a potential match returns CAUTION. It is a screening and scoring signal for machine consumption, not legal advice.

What does an x402 compliance verdict look like?

The x402 compliance verdict is a single machine-readable field — SAFE, CAUTION, or BLOCK — returned as JSON with the contributing reasons and an Ed25519 signature (receipt) over the canonical result, so any downstream party can verify the verdict offline. It composes sanctions screening, stablecoin peg deviation, and counterparty on-chain risk into that one verdict.

How much does it cost and how do I authenticate?

$0.02 USDC per call on Base mainnet (eip155:8453). No account, no API key, no subscription — payment over the x402 protocol (HTTP 402) is the authentication.

Does AgentGuard move funds or execute trades?

No. It is scoring and data only. It returns a risk attestation your agent uses to decide; it never signs transactions, executes trades, or moves funds.

Scoring & data only. AgentGuard never executes trades, signs transactions, or moves funds. It returns a risk attestation your agent uses to decide. Sanctions data can lag real-world listing/delisting — treat CAUTION/BLOCK as a signal to gate or review, not as legal advice.