mirrored listing x402 eip155:8453

Validate and normalize a phone number with full Google libphonenumber metadata: strict val

Validate and normalize a phone number with full Google libphonenumber metadata: strict validity against each national numbering plan, E.164 / international / national formats, country detection (correct across shared codes like +1 and +44) and line type (mobile, fixed_line, toll_free, voip…) where the plan distinguishes it. Pass ?country=FR to parse national formats. Local. ?attest=1 → Ed25519-signed.

Do you run 402utils.com? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
2000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-24
updated

Provider

402utils.com · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "maxTimeoutSeconds": 60
  }
]

Output schema

{
  "bazaar": {
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {
          "phone": "+442079460958"
        },
        "type": "http"
      },
      "output": {
        "example": {
          "country": "GB",
          "e164": "+442079460958",
          "international": "+44 20 7946 0958",
          "national": "020 7946 0958",
          "possible": true,
          "type": "fixed_line",
          "valid": true
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "description": "Query params. `phone` required; `country` helps parse national formats.",
              "properties": {
                "attest": {
                  "description": "Set to 1 for an Ed25519-signed attestation of the result (audit trail).",
                  "type": "string"
                },
                "country": {
                  "description": "ISO alpha-2 default country for national input.",
                  "type": "string"
                },
                "phone": {
                  "description": "The number, E.164 (+33612345678) or national.",
                  "type": "string"
                }
              },
              "required": [
                "phone"
              ],
              "type": "object"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "properties": {
                "attestation": {
                  "description": "Present only with ?attest=1. Ed25519 signature over the canonical result; verify against /.well-known/402utils-attestation.json.",
                  "properties": {
                    "alg": {
                      "const": "Ed25519",
                      "type": "string"
                    },
                    "payload": {
                      "properties": {
                        "endpoint": {
                          "type": "string"
                        },
                        "kid": {
                          "description": "Key id — matches a key in the .well-known document.",
                          "type": "string"
                        },
                        "resultSha256": {
                          "description": "SHA-256 of the canonical JSON of the result (attestation excluded).",
                          "type": "string"
                        },
                        "ts": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "sig": {
                      "description": "base64url Ed25519 signature over the canonical JSON of payload.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "country": {
                  "description": "Detected ISO alpha-2; absent when undeterminable.",
                  "type": "string"
                },
                "e164": {
                  "type": "string"
                },
                "international": {
                  "type": "string"
                },
                "national": {
                  "type": "string"
                },
                "possible": {
                  "description": "Length-plausibility (looser than valid).",
                  "type": "boolean"
                },
                "type": {
                  "description": "mobile | fixed_line | fixed_line_or_mobile | toll_free | premium_rate | voip | … — absent when the plan does not distinguish.",
                  "type": "string"
                },
                "valid": {
                  "description": "Strict validity per the national numbering plan.",
                  "type": "boolean"
                }
              },
              "required": [
                "valid"
              ],
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}

Use it

curl

curl "https://402utils.com/v1/phone-check"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://402utils.com/v1/phone-check");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://402utils.com/v1/phone-check")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/5906.json, and this resource appears in /discovery/resources and /discovery/search.