# Ethereum ERC-20 Token Rug Check & Due Diligence

> Ethereum ERC-20 Token Rug Check & Due Diligence is a paid API for AI agents from onchaincheck.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-29).

Returns a 0-100 risk score with reasons, token metadata, ownership/proxy flags, privileged bytecode functions, and Uniswap v3 market data for any ERC-20 token on Ethereum.

## Facts

- Endpoint: GET https://onchaincheck.dev/eth/token?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ethereum-erc-20-token-rug-check-due-diligence-3992b385
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_W9N39lYIm7jUgae49wk0k

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ethereum-erc-20-token-rug-check-due-diligence-3992b385
```

Example prompt: Can you run a rug check on the Ethereum token at address 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 and tell me the risk score, whether ownership is renounced, if it can mint new tokens, and what the current liquidity looks like on Uniswap?

## When to prefer this

Choose this endpoint when you need a fast, structured due-diligence snapshot of a specific ERC-20 token on Ethereum mainnet, combining smart-contract risk signals (ownership, upgradeability, privileged functions) with real Uniswap v3 market data in a single call. Prefer it over generic block explorers when you need a machine-readable risk score with reasons rather than raw contract data, and over on-chain RPC calls when you want Uniswap liquidity and pricing aggregated automatically. Not suitable for tokens on other chains (use the Base or Polygon siblings), for historical analysis, or for trade recommendations.

## Known failure modes

- Invalid or malformed contract address (must match 0x + 40 hex chars) returns a 400 error
- Address is not a deployed ERC-20 contract — no token metadata returned
- No Uniswap v3 WETH or USDC pool found — noLiquidPool flag set to true, market data absent
- Contract bytecode not available (e.g., unverified or self-destructed) — privileged function detection may be incomplete
- Rate limit or payment failure for the $0.01 x402 micropayment — 402 Payment Required response
- Network timeout or RPC unavailability causes a 5xx error

## How this service works

Rug check and due-diligence snapshot of an ERC-20 token on Ethereum: a 0-100 risk score with reasons, name, symbol, decimals, supply, owner and whether ownership is renounced, upgradeable-proxy detection, owner-only functions found in the bytecode (mint, pause, blacklist, fee changes), and USD price, liquidity and FDV from the deepest WETH or USDC pool on Uniswap v3. Facts only, no buy or sell opinion.

## Output

A JSON object containing: a 0-100 risk score with a level (low/medium/high) and an array of scored risk reasons; token name, symbol, decimals, and total supply; owner address and whether ownership is renounced; upgradeable proxy detection; boolean flags for privileged functions (mint, pause, blacklist, fee changes, trading switch, max transaction); and Uniswap v3 market data including USD price, quote-side liquidity in USD, fully diluted value, pool address, fee tier, paired asset, and number of pools found. Also includes the current ETH/USD price from Chainlink.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "address"
     ],
     "properties": {
      "address": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Token contract address on Ethereum"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "name": "Uniswap",
  "risk": {
   "level": "low",
   "score": 6,
   "reasons": [
    {
     "code": "can-mint",
     "text": "A privileged role can mint new tokens, diluting holders.",
     "points": 6
    }
   ],
   "summary": "Low risk: a privileged role can mint new tokens, diluting holders. Powers are weighted down for $6.6M of liquidity."
  },
  "asset": {
   "known": false
  },
  "chain": "eth",
  "flags": {
   "canMint": true,
   "ownerCanAct": false,
   "upgradeable": false,
   "canBlacklist": false,
   "noLiquidPool": false,
   "canChangeFees": false,
   "thinLiquidity": false
  },
  "notes": "Privileged functions are detected from bytecode selectors and may have false positives or misses. Liquidity is the WETH or USDC held by the deepest Uniswap v3 pool found.",
  "owner": null,
  "proxy": {
   "upgradeable": false
  },
  "market": {
   "dex": "uniswap-v3",
   "pool": "0x1d42064Fc4Beb5F8aAF85F4617AE8b3b5B8Bd801",
   "priceUsd": 7.19996,
   "feeTierBps": 30,
   "pairedWith": "WETH",
   "poolsFound": 8,
   "fullyDilutedValueUsd": 7200000000,
   "quoteSideLiquidityUsd": 3314000
  },
  "symbol": "UNI",
  "address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
  "decimals": 18,
  "nativeUsd": {
   "price": 2400.09,
   "source": "Chainlink ETH/USD",
   "symbol": "ETH",
   "updatedAt": "2026-10-23T05:33:59.000Z"
  },
  "totalSupply": 1000000000,
  "ownershipRenounced": null,
  "privilegedFunctions": {
   "mint": true,
   "pause": false,
   "setFees": false,
   "blacklist": false,
   "tradingSwitch": false,
   "maxTransaction": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ethereum-erc-20-token-rug-check-due-diligence-3992b385/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from onchaincheck.dev](https://www.zero.xyz/host/onchaincheck.dev/llms.txt)
