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.
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.
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.
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.
On-chain balance + risk heuristic for the counterparty (fresh / unfunded wallets, risk factors). Feeds the composite verdict.
$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.
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"
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
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())
| Field | Req? | Meaning |
|---|---|---|
address | yes | EVM address to evaluate (0x…, 42 chars) |
chain | no | base (default) · ethereum · polygon · arbitrum · optimism |
counterparty | no | 2nd address to screen & balance |
stablecoin | no | settlement stablecoin, e.g. usdc, usdt, dai (default usd-coin,tether) |
{
"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.
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.
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.
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.
$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.
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.