ToolAssay

Address-poisoning check before you send USDC on Base

Address-poisoning check before you send USDC on Base. Body {from, to} (or sender/recipient; chain=base, token=USDC only, others 400 not charged; optional contacts/known_addresses): scans the sender's recent Base USDC transfers for lookalikes (same first/last 4 hex) plus dust/zero-value transfers. No sender? {recipient, known_addresses} = offline contacts check; {address} alone scans its own history for poisoning signs. Returns risk low/medium/high, lookalikes, reasons, coverage.

Not tested: has real-world effectsour last check, 2026-10-18
0 of 0checks answered this week
n/amedian answer time
$0.001listed 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://paycheck.hectichustle.workers.dev/address/check

CategoryMarket data
Provider hostpaycheck.hectichustle.workers.dev
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days19 from 3 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": {
    "from": "0x9D42EbA8868CFd38A50Ba615ee0cf903F1BBeCE9",
    "to": "0x509E55c4F898B43C856Fb0E51048B1b7bFBC9eDE"
  },
  "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": "Three shapes: {from, to, contacts?} scans the sender's recent Base USDC history; contacts-only {to, contacts} without from (aliases recipient/address + known_addresses/known) is offline lookalike vs contacts (no RPC); recipient-only {to} alone (alias address) scans that address's own recent USDC history for poisoning fingerprints.",
          "properties": {
            "chain": {
              "description": "Optional. Base only (base, eip155:8453, 8453). Any other chain returns 400 unsupported_chain and is not charged \u2014 Shield only scans Base USDC.",
              "type": [
                "string",
                "integer"
              ]
            },
            "contacts": {
              "description": "Optional: up to 50 trusted addresses / address book (aliases: known_addresses, known). With from: offline lookalike of contacts too. Without from: contacts-only mode (no RPC).",
              "items": {
                "pattern": "^0x[0-9a-fA-F]{40}$",
                "type": "string"
              },
              "maxItems": 50,
              "type": "array"
            },
            "from": {
              "description": "Sender address (aliases: sender, fromAddress). Omit for contacts-only or recipient-only mode.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "to": {
              "description": "Intended recipient (aliases: recipient, toAddress, address). Required in every shape.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "token": {
              "description": "Optional. USDC only (symbol USDC or Base USDC contract). Any other token (e.g. USDT) returns 400 unsupported_token and is not charged.",
              "type": "string"
            }
          },
          "required": [
            "to"
          ],
          "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": {
            "chain": {
              "enum": [
                "base"
              ],
              "type": "string"
            },
            "contacts": {
              "description": "Only present when contacts were sent",
              "properties": {
                "checked": {
                  "type": "integer"
                },
                "inContacts": {
                  "type": "boolean"
                },
                "lookalikes": {
                  "items": {
                    "properties": {
                      "contact": {
                        "type": "string"
                      },
                      "prefixMatch": {
                        "type": "integer"
                      },
                      "suffixMatch": {
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "coverage": {
              "properties": {
                "complete": {
                  "type": "boolean"
                },
                "coveragePct": {
                  "type": "number"
                },
                "lowCoverage": {
                  "description": "true when coveragePct < 10: almost nothing was scanned, so risk low does not mean safe (top reason explains; retry, pass contacts, or use /address/check/full)",
                  "type": "boolean"
                },
                "rpcCalls": {
                  "type": "integer"
                },
                "scannedFrom": {
                  "type": "integer"
                },
                "scannedTo": {
                  "type": "integer"
                },
                "transfersSeen": {
                  "type": "integer"
                },
                "windowBlocks": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "ignoredFields": {
              "description": "Request fields Kertivo Shield did not use (they did not affect the answer); only present when there were any",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "ignoredNote": {
              "type": "string"
            },
            "lookalikes": {
              "items": {
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "dustTransfers": {
                    "type": "integer"
                  },
                  "inbound": {
                    "type": "integer"
                  },
                  "lastBlock": {
                    "type": "integer"
                  },
                  "outbound": {
                    "type": "integer"
                  },
                  "pattern": {
                    "enum": [
                      "dust_or_zero_value",
                      "lookalike_counterparty"
                    ],
                    "type": "string"
                  },
                  "realOut": {
                    "type": "integer"
                  },
                  "sampleTx": {
 

This page as JSON