preflight-guard

One-call pre-transaction guard for agents: bundle the transaction you're about to sign/send and get every applicable safety check in a single payment — signature-intent decode, live threat-DB + address-poisoning look-alike on the recipient, and a drainer audit of standing approvals. By design no combined safe/danger verdict is emitted; each sub-check's flags & evidence come back verbatim so your agent decides. Replaces 4 separate 402 round-trips with 1. Deterministic, no LLM.

InferenceLiveeip155:8453Exactvia cdp
SecurityWalletPreflightTransaction-safetyBundle
Settlements · 30d
153↓ 9.1%
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$4.93
Verified settled volume
326 settlements proven x402 by their on-chain EIP-3009 marker.
$0.020
Listed price
As published in the catalog. Always read the live 402 before paying.
1
Calls · 30d
Upstream's own call count for this endpoint, not ours.
1
Unique payers · 30d
Last called 2026-07-20 08:50Z
Upstream on-chain volume
Reported by the source catalog.
Paid to
0xD617a7145ca56E3ed58d639F9DEC6999B22441eE

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.02USDC≈ $0.02 USD
on Base · exact scheme

Pay 0.02 USDC on Base to 0xD617…441eE. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
20000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0xD617a7145ca56E3ed58d639F9DEC6999B22441eE",
    "amount": "20000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 300
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "body": {
          "approvals": [
            {
              "token": "0x4200000000000000000000000000000000000006",
              "spender": "0xdeadbeef00000000000000000000000000000001",
              "allowance": "1461501637330902918203684832716283019655932542975"
            }
          ],
          "recipient": "0x1234aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa5678",
          "typedData": {
            "domain": {
              "name": "Permit2",
              "chainId": 8453,
              "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
            },
            "message": {
              "details": {
                "nonce": "0",
                "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "amount": "1461501637330902918203684832716283019655932542975",
                "expiration": "1781176678"
              },
              "spender": "0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af",
              "sigDeadline": "1749722278"
            },
            "primaryType": "PermitSingle"
          },
          "known_addresses": [
            "0x1234bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb5678"
          ]
        },
        "type": "http",
        "method": "POST",
        "bodyType": "json"
      },
      "output": {
        "type": "json",
        "example": {
          "checks": [
            {
              "ran": true,
              "check": "sign-decode",
              "result": {
                "intent": "grant_allowance",
                "action_hint": "ask_for_confirmation",
                "spender_known": "Uniswap Universal Router v2"
              },
              "flagged": true,
              "risk_flags": [
                "unlimited_allowance"
              ]
            },
            {
              "ran": true,
              "check": "approval-risk",
              "result": {
                "summary": {
                  "revoke_now": 1
                }
              },
              "flagged": true,
              "risk_flags": [
                "dangerous_approval_present"
              ]
            },
            {
              "ran": true,
              "check": "recipient-check",
              "result": {
                "verdict": "not_in_threat_db",
                "action_hint": "no_known_threat"
              },
              "flagged": false,
              "risk_flags": []
            },
            {
              "ran": true,
              "check": "address-poison-check",
              "result": {
                "verdict": "looks_unique"
              },
              "flagged": false,
              "risk_flags": []
            }
          ],
          "ledger": {
            "threat_db_size": 290,
            "threat_db_updated_at": 1719500000
          },
          "schema": "preflight/v1",
          "network": "eip155:8453",
          "all_flags": [
            "unlimited_allowance",
            "dangerous_approval_present"
          ],
          "checks_run": 4,
          "confidence": 1,
          "checks_flagged": 2
        }
      }
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object",
          "required": [
            "type",
            "method",
            "bodyType",
            "body"
          ],
          "properties": {
            "body": {
              "type": "object",
              "properties": {
                "calldata": {
                  "type": "string",
                  "description": "0x-prefixed transaction calldata to decode (alternative to typedData)"
                },
                "approvals": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "spender",
                      "allowance"
                    ],
                    "properties": {
                      "token": {
                        "type": "string"
                      },
                      "spender": {
                        "type": "string"
                      },
                      "allowance": {
                        "type": "string"
                      }
                    }
                  },
                  "description": "standing approvals to audit"
                },
                "recipient": {
                  "type": "string",
                  "description": "0x EVM address you are about to send to"
                },
                "typedData": {
                  "type": "object",
                  "description": "EIP-712 typed data (domain/primaryType/message) to decode"
                },
                "known_addresses": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "required": [
                          "address"
                        ],
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "address": {
                            "type": "string"
                          }
                        }
                      }
                    ]
                  },
                  "description": "your trusted counterparties (for look-alike detection)"
                }
              },
              "description": "One-call pre-transaction guard: bundle everything about a transaction you're about to sign/send and get every applicable safety check back in a single 402 payment. Pass any subset of: typedData (EIP-712) or calldata (0x) -> signature intent decode; recipient (+known_addresses) -> live threat-DB + address-poisoning look-alike; approvals[] -> standing-approval drainer audit. By design NO combined safe/danger verdict is emitted — each sub-check's flags & evidence are returned verbatim so YOUR agent decides. Deterministic, no LLM, evidence-backed."
            },
            "type": {
              "type": "string",
              "const": "http"
            },
            "method": {
              "enum": [
                "POST"
              ],
              "type": "string"
            },
            "bodyType": {
              "enum": [
                "json",
                "form-data",
                "text"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "example": {
              "type": "object"
            }
          }
        }
      }
    }
  }
}

Provenance

Seen in the source catalog
2026-07-20 08:50Z
Last indexed by Roundhouse
2026-08-04 03:20Z
Last enriched (probe, favicon, geo)
2026-09-10 07:45Z
x402 version
2
Max timeout
300s
Liveness probe
HTTP 404
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service preflight-guard and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=preflight-guard'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://x402.dailyelo.com/v1/preflight, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.