ToolAssay

Check read-only ERC-20 wallet readiness for a planned token spend

Check read-only ERC-20 wallet readiness for a planned token spend.

Answeringour last check, 2026-09-24
1 of 1checks answered this week
262 msmedian answer time
$0.002listed price per call
$0.002price 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://blockchain-api.x402-chain-tools.workers.dev/chain/wallet-preflight

CategoryMarket data
Provider hostblockchain-api.x402-chain-tools.workers.dev
Networkseip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402$0.002 262 ms

Example input (from the provider)

{
  "body": {
    "amount": "10.5",
    "spender": "0x0000000000000000000000000000000000000003",
    "token": "0x0000000000000000000000000000000000000002",
    "wallet": "0x0000000000000000000000000000000000000001"
  },
  "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": {
          "additionalProperties": false,
          "properties": {
            "amount": {
              "description": "Positive decimal string without scientific notation. Exact fractional precision depends on the token decimals() response.",
              "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
              "type": "string"
            },
            "spender": {
              "description": "Planned spender address.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "token": {
              "description": "ERC-20 token contract address on Base.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "wallet": {
              "description": "Base wallet address.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            }
          },
          "required": [
            "wallet",
            "token",
            "spender",
            "amount"
          ],
          "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": {
          "additionalProperties": false,
          "properties": {
            "allowance": {
              "additionalProperties": false,
              "properties": {
                "formatted": {
                  "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                },
                "raw": {
                  "pattern": "^[0-9]+$",
                  "type": "string"
                },
                "sufficient": {
                  "type": "boolean"
                },
                "unlimited": {
                  "type": "boolean"
                }
              },
              "required": [
                "raw",
                "formatted",
                "unlimited",
                "sufficient"
              ],
              "type": "object"
            },
            "issues": {
              "items": {
                "enum": [
                  "NO_NATIVE_GAS_BALANCE",
                  "INSUFFICIENT_TOKEN_BALANCE",
                  "INSUFFICIENT_ALLOWANCE",
                  "SPENDER_NOT_CONTRACT"
                ]
              },
              "type": "array"
            },
            "limitations": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "const": "native gas check only verifies a non-zero ETH balance"
                },
                {
                  "const": "transaction execution is not simulated"
                }
              ],
              "type": "array"
            },
            "native_balance": {
              "additionalProperties": false,
              "properties": {
                "eth": {
                  "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                },
                "has_native_gas_balance": {
                  "type": "boolean"
                },
                "wei": {
                  "pattern": "^[0-9]+$",
                  "type": "string"
                }
              },
              "required": [
                "wei",
                "eth",
                "has_native_gas_balance"
              ],
              "type": "object"
            },
            "network": {
              "const": "eip155:8453",
              "type": "string"
            },
            "ok": {
              "const": true,
              "type": "boolean"
            },
            "ready": {
              "type": "boolean"
            },
            "requested_amount": {
              "additionalProperties": false,
              "properties": {
                "decimals": {
                  "maximum": 255,
                  "minimum": 0,
                  "type": "integer"
                },
                "formatted": {
                  "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                },
                "raw": {
                  "pattern": "^[0-9]+$",
                  "type": "string"
                }
              },
              "required": [
                "formatted",
                "raw",
                "decimals"
              ],
              "type": "object"
            },
            "spender": {
              "description": "Spender address.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "spender_is_contract": {
              "type": "boolean"
            },
            "token": {
              "description": "Token contract address.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "token_balance": {
              "additionalProperties": false,
              "properties": {
                "formatted": {
                  "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                },
                "raw": {
                  "pattern": "^[0-9]+$",
                  "type": "string"
                },
                "sufficient": {
                  "type": "boolean"
                }
              },
              "required": [
                "raw",
                "formatted",
                "sufficient"
              ],
              "type": 

This page as JSON