{
  "x402Version": 2,
  "id": 57636,
  "slug": "57636",
  "resource": "https://tanod.dev/v1/agents/preflight",
  "description": "agentscan (Tanod) x402 endpoint preflight: a pay, caution or avoid verdict from the live 402 and the agent index (payTo change, price outlier, listing age, farm score). Use when an agent must decide whether to pay an x402 endpoint: live 402, payTo change, price outlier, listing age.",
  "type": "http",
  "serviceName": "Tanod agentscan",
  "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791364949/bazaar-icons/d8143c9bc952f5cd.png",
  "resourceType": "MCP Tool",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:137",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "RMk9k3VC8dr4hhjgFh88rGhjAbzfBzHxJJ5n2fTcqus",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:56",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
      "amount": "1000000000000000",
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:42161",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 604900
    },
    {
      "scheme": "exact",
      "network": "eip155:137",
      "payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
      "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
      "amount": "1000",
      "amountUsd": 0.001,
      "maxTimeoutSeconds": 604900
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "description": "Abridged to fit the header. Full example: the 402 JSON body. Full schema: https://tanod.dev/openapi.json POST /v1/agents/preflight",
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "url": "https://api.example.com/v1/weather"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "additionalProperties": false,
                "properties": {
                  "policy": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "allow_caution": {
                            "default": true,
                            "description": "Default true; false fails a caution verdict. avoid always fails.",
                            "type": "boolean"
                          },
                          "max_median_ratio": {
                            "anyOf": [
                              {
                                "exclusiveMinimum": 0,
                                "maximum": 1000,
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Most the price may be as a multiple of the category median."
                          },
                          "max_price_usd": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Most you will pay per call in USD (\"0.05\"), at most 100. Non-USDC options are unknown."
                          },
                          "max_timeout_seconds": {
                            "anyOf": [
                              {
                                "maximum": 604800,
                                "minimum": 1,
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Longest maxTimeoutSeconds you accept."
                          },
                          "networks": {
                            "anyOf": [
                              {
                                "items": {
                                  "type": "string"
                                },
                                "maxItems": 20,
                                "minItems": 1,
                                "type": "array"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Allowed networks: CAIP-2 ids or names (base, polygon, solana, bsc, arbitrum, ethereum, optimism, avalanche)."
                          },
                          "pay_to_allow": {
                            "anyOf": [
                              {
                                "items": {
                                  "type": "string"
                                },
                                "maxItems": 50,
                                "minItems": 1,
                                "type": "array"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Allowed payTo addresses (EVM or Solana, at most 50)."
                          },
                          "pay_to_deny": {
                            "anyOf": [
                              {
                                "items": {
                                  "type": "string"
                                },
                                "maxItems": 50,
                                "minItems": 1,
                                "type": "array"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "Denied payTo addresses (at most 50)."
                          },
                          "require_listed": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "default": null,
                            "description": "true: the URL must be in the agent index."
                          },
                          "strict": {
                            "default": false,
                            "description": "Default false; true fails clauses that cannot be judged.",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Optional spend policy. The answer then adds `policy` (result pass or fail, with failed, unknown and checked clauses), judged on the options already read. A bad policy is a 422, not charged."
                  },
                  "url": {
                    "description": "The public https URL of the x402 endpoint an agent is about to pay, such as https://api.example.com/v1/weather. Host name only (no IP address), port 443, no user info. It is requested once without payment (GET, or POST when GET answers 404 or 405). A URL that is not public https, or a host that resolves to a private address, is a 422 and is not charged.",
                    "maxLength": 2048,
                    "minLength": 9,
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "description": "Abridged to fit the header. Full example: the 402 JSON body. Full schema: https://tanod.dev/openapi.json POST /v1/agents/preflight",
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    },
    "builder-code": {
      "info": {
        "a": "bc_h7pxv14u"
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "a": {
            "description": "App builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          },
          "s": {
            "description": "Service builder codes",
            "items": {
              "pattern": "^[a-z0-9_]{1,32}$",
              "type": "string"
            },
            "maxItems": 11,
            "type": "array"
          },
          "w": {
            "description": "Wallet builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "erc20ApprovalGasSponsoring": {
      "info": {
        "description": "The facilitator accepts a raw signed approval transaction and will sponsor the gas fees.",
        "version": "1"
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "amount": {
            "description": "Approval amount (uint256).",
            "pattern": "^[0-9]+$",
            "type": "string"
          },
          "asset": {
            "description": "The ERC-20 token contract address to approve.",
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "type": "string"
          },
          "from": {
            "description": "The address of the sender.",
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "type": "string"
          },
          "signedTransaction": {
            "description": "RLP-encoded signed transaction calling ERC20.approve().",
            "pattern": "^0x[a-fA-F0-9]+$",
            "type": "string"
          },
          "spender": {
            "description": "The address of the spender (Canonical Permit2).",
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "type": "string"
          },
          "version": {
            "description": "Schema version identifier.",
            "pattern": "^[0-9]+(\\.[0-9]+)*$",
            "type": "string"
          }
        },
        "required": [
          "from",
          "asset",
          "spender",
          "amount",
          "signedTransaction",
          "version"
        ],
        "type": "object"
      }
    },
    "payment-identifier": {
      "info": {
        "required": false
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "id": {
            "maxLength": 128,
            "minLength": 16,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "required": {
            "type": "boolean"
          }
        },
        "required": [
          "required"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "agentscan",
    "agents",
    "preflight",
    "x402",
    "mcp",
    "bazaar",
    "builder-code",
    "erc20ApprovalGasSponsoring",
    "payment-identifier"
  ],
  "sourceHost": "tanod.dev",
  "lastUpdated": "2026-10-13T20:35:11.837Z",
  "quality": {
    "calls30d": 1,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-10-13T20:35:10.602Z"
  },
  "metadata": {
    "serviceName": "Tanod agentscan",
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791364949/bazaar-icons/d8143c9bc952f5cd.png",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://api.example.com/v1/weather"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "properties": {
                    "policy": {
                      "anyOf": [
                        {
                          "additionalProperties": false,
                          "properties": {
                            "allow_caution": {
                              "default": true,
                              "description": "Default true; false fails a caution verdict. avoid always fails.",
                              "type": "boolean"
                            },
                            "max_median_ratio": {
                              "anyOf": [
                                {
                                  "exclusiveMinimum": 0,
                                  "maximum": 1000,
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Most the price may be as a multiple of the category median."
                            },
                            "max_price_usd": {
                              "anyOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Most you will pay per call in USD (\"0.05\"), at most 100. Non-USDC options are unknown."
                            },
                            "max_timeout_seconds": {
                              "anyOf": [
                                {
                                  "maximum": 604800,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Longest maxTimeoutSeconds you accept."
                            },
                            "networks": {
                              "anyOf": [
                                {
                                  "items": {
                                    "type": "string"
                                  },
                                  "maxItems": 20,
                                  "minItems": 1,
                                  "type": "array"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Allowed networks: CAIP-2 ids or names (base, polygon, solana, bsc, arbitrum, ethereum, optimism, avalanche)."
                            },
                            "pay_to_allow": {
                              "anyOf": [
                                {
                                  "items": {
                                    "type": "string"
                                  },
                                  "maxItems": 50,
                                  "minItems": 1,
                                  "type": "array"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Allowed payTo addresses (EVM or Solana, at most 50)."
                            },
                            "pay_to_deny": {
                              "anyOf": [
                                {
                                  "items": {
                                    "type": "string"
                                  },
                                  "maxItems": 50,
                                  "minItems": 1,
                                  "type": "array"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "Denied payTo addresses (at most 50)."
                            },
                            "require_listed": {
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "default": null,
                              "description": "true: the URL must be in the agent index."
                            },
                            "strict": {
                              "default": false,
                              "description": "Default false; true fails clauses that cannot be judged.",
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional spend policy. The answer then adds `policy` (result pass or fail, with failed, unknown and checked clauses), judged on the options already read. A bad policy is a 422, not charged."
                    },
                    "url": {
                      "description": "The public https URL of the x402 endpoint an agent is about to pay, such as https://api.example.com/v1/weather. Host name only (no IP address), port 443, no user info. It is requested once without payment (GET, or POST when GET answers 404 or 405). A URL that is not public https, or a host that resolves to a private address, is a 422 and is not charged.",
                      "maxLength": 2048,
                      "minLength": 9,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "description": "Abridged to fit the header. Full example: the 402 JSON body. Full schema: https://tanod.dev/openapi.json POST /v1/agents/preflight",
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      },
      "builder-code": {
        "info": {
          "a": "bc_h7pxv14u"
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "additionalProperties": false,
          "properties": {
            "a": {
              "description": "App builder code",
              "pattern": "^[a-z0-9_]{1,32}$",
              "type": "string"
            },
            "s": {
              "description": "Service builder codes",
              "items": {
                "pattern": "^[a-z0-9_]{1,32}$",
                "type": "string"
              },
              "maxItems": 11,
              "type": "array"
            },
            "w": {
              "description": "Wallet builder code",
              "pattern": "^[a-z0-9_]{1,32}$",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "erc20ApprovalGasSponsoring": {
        "info": {
          "description": "The facilitator accepts a raw signed approval transaction and will sponsor the gas fees.",
          "version": "1"
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "amount": {
              "description": "Approval amount (uint256).",
              "pattern": "^[0-9]+$",
              "type": "string"
            },
            "asset": {
              "description": "The ERC-20 token contract address to approve.",
              "pattern": "^0x[a-fA-F0-9]{40}$",
              "type": "string"
            },
            "from": {
              "description": "The address of the sender.",
              "pattern": "^0x[a-fA-F0-9]{40}$",
              "type": "string"
            },
            "signedTransaction": {
              "description": "RLP-encoded signed transaction calling ERC20.approve().",
              "pattern": "^0x[a-fA-F0-9]+$",
              "type": "string"
            },
            "spender": {
              "description": "The address of the spender (Canonical Permit2).",
              "pattern": "^0x[a-fA-F0-9]{40}$",
              "type": "string"
            },
            "version": {
              "description": "Schema version identifier.",
              "pattern": "^[0-9]+(\\.[0-9]+)*$",
              "type": "string"
            }
          },
          "required": [
            "from",
            "asset",
            "spender",
            "amount",
            "signedTransaction",
            "version"
          ],
          "type": "object"
        }
      },
      "payment-identifier": {
        "info": {
          "required": false
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "id": {
              "maxLength": 128,
              "minLength": 16,
              "pattern": "^[a-zA-Z0-9_-]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "required"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "tanod.dev",
    "manifest_name": "tanod.dev",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {},
    "type": "string"
  }
}