ToolAssay

Payment verification for x402

Payment verification for x402: verify a USDC transaction on Base — did this payment really settle, and did it pay the right address the right amount? Send a tx hash (or x402 authorization): confirmations, real-USDC transfer check, expectedPayTo/expectedAmount match, fake-USDC and lookalike-address warnings, who funded the payer (external, self_funded, unknown), plain-English summary and a receipt. Body {txHash|authorization, expectedPayTo?, expectedAmount?}. Free demo: POST /demo.

Not tested: has real-world effectsour last check, 2026-10-18
0 of 0checks answered this week
n/amedian answer time
$0.01listed price per call
n/aprice 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://kertivo.com/check

CategoryEverything else
Provider hostkertivo.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days3 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "body": {
    "expectedAmount": "1",
    "expectedPayTo": "0x509E55c4F898B43C856Fb0E51048B1b7bFBC9eDE",
    "txHash": "0xc37cbdfa44230f05129348d5160254abf354791d79de68228b201ba09de143c1"
  },
  "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": {
          "description": "Provide txHash, or authorization (EIP-3009) when you have no tx hash, or both.",
          "properties": {
            "authorization": {
              "description": "Optional EIP-3009 authorization (x402 exact payload) to check when there is no tx or the tx is not found",
              "properties": {
                "from": {
                  "pattern": "^0x[0-9a-fA-F]{40}$",
                  "type": "string"
                },
                "nonce": {
                  "pattern": "^0x[0-9a-fA-F]{64}$",
                  "type": "string"
                },
                "validAfter": {
                  "type": [
                    "string",
                    "integer"
                  ]
                },
                "validBefore": {
                  "description": "unix seconds",
                  "type": [
                    "string",
                    "integer"
                  ]
                }
              },
              "required": [
                "from",
                "nonce"
              ],
              "type": "object"
            },
            "expectedAmount": {
              "description": "Expected USDC amount, decimal (e.g. \"0.01\")",
              "type": [
                "string",
                "number"
              ]
            },
            "expectedPayTo": {
              "description": "Expected recipient (full-address, case-insensitive compare)",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "expectedPayer": {
              "description": "Optional expected payer (aliases from, payer): the USDC Transfer's from must equal it",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "minAmount": {
              "description": "Optional floor (aliases min_amount, min): payment must be at least this many USDC; unlike expectedAmount it is not exact",
              "type": [
                "string",
                "number"
              ]
            },
            "selfAddresses": {
              "description": "Optional: other addresses you control; funding from them counts as self_funded",
              "items": {
                "type": "string"
              },
              "maxItems": 10,
              "type": "array"
            },
            "token": {
              "description": "Optional (aliases asset, currency): \"USDC\" or the Base USDC contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (apexfaucet-style). Any other token is a 400 unsupported_token, not charged. Responses always echo token \"USDC\".",
              "type": "string"
            },
            "txHash": {
              "description": "Base mainnet transaction hash",
              "pattern": "^0x[0-9a-fA-F]{64}$",
              "type": "string"
            }
          },
          "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": {
          "properties": {
            "attestation": {
              "description": "Signed response (EIP-191 by the key at /.well-known/attestation, not a wallet) over sha256 of this body minus attestation; present when signing is enabled",
              "type": "object"
            },
            "authorization": {
              "description": "Present when authorization was given: {from, nonce, used, chainTime, validBefore, expired}",
              "type": "object"
            },
            "block": {
              "type": [
                "integer",
                "null"
              ]
            },
            "confirmations": {
              "type": "integer"
            },
            "confirmed": {
              "type": "boolean"
            },
            "found": {
              "type": "boolean"
            },
            "funding": {
              "properties": {
                "payeeFundedPayer": {
                  "type": "boolean"
                },
                "reason": {
                  "description": "Only present when verdict=unknown",
                  "enum": [
                    "no_inbound_in_window",
                    "scan_incomplete"
                  ],
                  "type": "string"
                },
                "scannedBlocks": {
                  "properties": {
                    "complete": {
                      "type": "boolean"
                    },
                    "from": {
                      "type": "integer"
                    },
                    "to": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "topFunders": {
                  "type": "array"
                },
                "verdict": {
                  "enum": [
                    "external",
                    "self_funded",
                    "unknown"
                  ],
                  "type": "string"
                }
              },
              "type": [
                "object",
                "null"
              ]
            },
            "ignoredFields": {
              "description": "Request fields Kertivo Check did not use (they did not affect the answer); only present when there were any",
              "items": {
                "type": "s

This page as JSON