ToolAssay

402Signal checks the endpoint, price and recipient before your agent pays, on x4

402Signal checks the endpoint, price and recipient before your agent pays, on x402 and MPP, and returns a signed record verifiable offline. $0.003 on Base, Solana, and Algorand only when a qualifying live offer is found; a miss is free. Seller payment is separate. Your agent keeps the wallet. Evidence enters the PQ Trust log on Algorand MainNet. require_route_binding=true adds a signed v4 receipt for buyer-side comparison before signing. Guide: https://402signal.com/developers#route-binding

Answeringour last check, 2026-09-24
1 of 1checks answered this week
826 msmedian answer time
$0.003listed price per call
$0.003price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://402signal.com/route

CategoryMarket data
Provider host402signal.com
Networksalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days418 from 6 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402$0.003 826 ms

Example input (from the provider)

{
  "body": {
    "need": "erc20 token balance",
    "url": "https://example.com/x402/balance"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "anyOf": [
            {
              "required": [
                "need"
              ]
            },
            {
              "required": [
                "url"
              ]
            }
          ],
          "properties": {
            "need": {
              "type": "string"
            },
            "require_route_binding": {
              "description": "Opt in to a signed v4 route binding; implies require_transparency even if false. Default false; ordinary requests keep v3. A ranked winner that cannot bind may fall through to the next already-probed selectable bindable candidate; 503 route_binding_unavailable only when none remain. wrapExactAuthorize reports state=binding_unavailable with keep_calling_route true; policy working, not a crash. Buyer verifies raw response JSON with a pinned log key and compares the current seller request and challenge before signing. Expiry or changed terms do not undo a settled checking fee. Guide: https://402signal.com/developers#route-binding",
              "type": "boolean"
            },
            "require_transparency": {
              "description": "Require a durable leaf and signed checkpoint receipt on HTTP 200. Default false; require_route_binding=true also requires transparency. Receipt failure after settlement remains billed. Private replay records support bounded recovery of the original response; they are not long-term evidence storage. Keep your own copy outside public logs.",
              "type": "boolean"
            },
            "url": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "queryParams": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON