Catalog/chain-token-safety

Chain

Token safety / honeypot check API

Screen an ERC-20 token before buying it: checks if it's a real token, whether the owner can rug it (ownership renounced?), whether it's an upgradeable proxy, how much liquidity exists to sell into, and scans bytecode for dangerous functions. Returns a 0–100 risk score, machine-readable flags, and a plain-English verdict — all from free public RPC reads. Structural check (not yet a buy/sell simulation).

Price$0.04per request
MethodPOST
Route/v1/chain/token-safety
StatusLive
MIME typeapplication/json
Rate limit60/minute
Cache300s public
chainforensicstoken-safetyhoneypotrug-checkdefierc20scam-detection
API URLhttps://x402.hexl.dev/v1/chain/token-safety
Integration docs
Example request
{
  "token": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
  "chain": "ethereum"
}
Example response
{
  "token": "0x6b175474e89094c44da98b954eedeac495271d0f",
  "chain": "ethereum",
  "riskScore": 0,
  "riskLevel": "low",
  "symbol": "DAI",
  "facts": {
    "isErc20": true,
    "symbol": "DAI",
    "decimals": 18,
    "ownerRenounced": true,
    "ownerAddress": null,
    "isUpgradeableProxy": false,
    "hasV2Pair": true,
    "wethLiquidity": 120.5,
    "dangerousFunctions": []
  },
  "flags": [
    "ownership-renounced"
  ],
  "interpretation": "Looks structurally safe: standard ERC-20, ownership renounced, liquidity present, no major red flags on the checks run. (Structural check only — not a sell simulation.)",
  "methodology": "Structural token safety via free public RPC reads: ERC-20 conformance, owner() renouncement, EIP-1967 upgradeability, Uniswap V2 liquidity depth, and a bytecode scan for dangerous functions.",
  "methodologyVersion": "token-safety-2026.1",
  "checkedAt": "2026-06-02T00:00:00.000Z"
}
Input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "examples": [
        "0x6B175474E89094C44Da98b954EedeAC495271d0F"
      ]
    },
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "ethereum"
      ],
      "default": "base"
    }
  }
}
Output schema
{
  "type": "object",
  "required": [
    "token",
    "chain",
    "riskScore",
    "riskLevel",
    "facts",
    "flags",
    "interpretation",
    "methodologyVersion"
  ],
  "properties": {
    "token": {
      "type": "string"
    },
    "chain": {
      "type": "string"
    },
    "riskScore": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "riskLevel": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "critical"
      ]
    },
    "symbol": {
      "type": [
        "string",
        "null"
      ]
    },
    "facts": {
      "type": "object",
      "properties": {
        "isErc20": {
          "type": "boolean"
        },
        "symbol": {
          "type": [
            "string",
            "null"
          ]
        },
        "decimals": {
          "type": [
            "number",
            "null"
          ]
        },
        "ownerRenounced": {
          "type": "boolean"
        },
        "ownerAddress": {
          "type": [
            "string",
            "null"
          ]
        },
        "isUpgradeableProxy": {
          "type": "boolean"
        },
        "hasV2Pair": {
          "type": "boolean"
        },
        "wethLiquidity": {
          "type": "number"
        },
        "dangerousFunctions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "flags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "interpretation": {
      "type": "string"
    },
    "methodology": {
      "type": "string"
    },
    "methodologyVersion": {
      "type": "string"
    },
    "checkedAt": {
      "type": "string"
    }
  }
}