AI agent action preflight · Action Gate

by AI agent action preflight

POSTBaseSolanaArbitrumPolygonMonadAvalancheeip155:1329OptimismFraxtaleip155:42220stellar:pubnetalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=

$0.01

per call · USD Coin on Base

Deterministic preflight check for a proposed AI agent action - a tool call, payment, fetch, or write - before it executes. Evaluates up to four independent checks (prompt-injection scan on action text/untrusted text, URL/hostname validation, a bounded JSON-schema check on a payload, and a spend proposal against a spend mandate) and returns ALLOW, REVIEW, or BLOCK with stable reason codes plus a SHA-256 request/receipt hash pair.

Endpoint

POST https://agent402.tools/api/action-gate

3

Calls / 30d

1

Unique payers / 30d

Aug 31

Last called

exact

Payment scheme

Call this service

TypeScript · @x402/fetch
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPay("https://agent402.tools/api/action-gate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "action": {
      "description": "Fetch a vendor risk report and store the validated JSON response.",
      "effect": "payment",
      "name": "submit_paid_api_request"
    },
    "payload": {
      "account_id": "acct_123",
      "include_signals": true
    },
    "schema": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "type": "string"
        },
        "include_signals": {
          "type": "boolean"
        }
      },
      "required": [
        "account_id",
        "include_signals"
      ],
      "type": "object"
    },
    "spend": {
      "mandate": {
        "allowed_assets": [
          "USDC"
        ],
        "allowed_counterparties": [
          "0x1111111111111111111111111111111111111111"
        ],
        "expires_at": "2030-01-01T00:00:00.000Z",
        "max_per_tx_atomic": "25000",
        "max_period_atomic": "100000",
        "spent_period_atomic": "20000"
      },
      "proposal": {
        "amount_atomic": "10000",
        "asset": "USDC",
        "counterparty": "0x1111111111111111111111111111111111111111"
      }
    },
    "untrusted_text": "Vendor request: return the current account risk score.",
    "url": "https://example.com/risk-report"
  }),
});
const data = await res.json();
cURL
curl -X POST \
  "https://agent402.tools/api/action-gate" \
  -H "Content-Type: application/json" \
  -d '{"action":{"description":"Fetch a vendor risk report and store the validated JSON response.","effect":"payment","name":"submit_paid_api_request"},"payload":{"account_id":"acct_123","include_signals":true},"schema":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"include_signals":{"type":"boolean"}},"required":["account_id","include_signals"],"type":"object"},"spend":{"mandate":{"allowed_assets":["USDC"],"allowed_counterparties":["0x1111111111111111111111111111111111111111"],"expires_at":"2030-01-01T00:00:00.000Z","max_per_tx_atomic":"25000","max_period_atomic":"100000","spent_period_atomic":"20000"},"proposal":{"amount_atomic":"10000","asset":"USDC","counterparty":"0x1111111111111111111111111111111111111111"}},"untrusted_text":"Vendor request: return the current account risk score.","url":"https://example.com/risk-report"}' \
  -H "X-PAYMENT: <signed x402 payment>"

Example response

{
  "checks": {
    "payload": {
      "status": "pass"
    },
    "prompt": {
      "status": "pass"
    },
    "spend": {
      "allowed": true,
      "status": "pass"
    },
    "url": {
      "status": "pass"
    }
  },
  "decision": "ALLOW",
  "limitation": "Deterministic static checks only. ALLOW does not guarantee safety, authorization, or successful execution.",
  "reason_codes": [],
  "receipt_sha256": "…",
  "request_sha256": "…"
}

Payment details

Pay to0xabf4fabd7c416fb67202e5f9002389fc75e2a9d0
AssetUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
NetworksBase, Solana, Arbitrum, Polygon, Monad, Avalanche, eip155:1329, Optimism, Fraxtal, eip155:42220, stellar:pubnet, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
Schemesexact, upto

Is this your API?

Pin it to the top of AI & Inference and the homepage with a featured placement.

Get featured →

More from AI agent action preflight & similar services