ERC-20 token risk scan (owner, proxy, liquidity) API

Heuristic risk screen of an ERC-20 token on Base, Ethereum, Arbitrum, OP Mainnet, Polygon or Avalanche: name, symbol, supply; owner and renounce status; proxy and upgradeability; Sourcify verification; privileged functions in bytecode or verified ABI (mint, pause, blacklist, fee, limit, trading switch); Uniswap v2/v3 and Aerodrome pools with USD depth; risk score 0-100 with a reason per flag. Sources: on-chain reads via PublicNode JSON-RPC, Sourcify.

$0.01 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://chain.kit-rx.com/v1/chain/token-scan

Parameters

NameTypeRequiredDescription
chainstring: base, ethereum, arbitrum, optimism, polygon, avalancheyesChain of the token: base (8453), ethereum (1), arbitrum (42161), optimism (10), polygon (137), avalanche (43114). Chain ids and aliases such as eth, arb, op, matic, avax are also accepted. e.g. base
addressstringyesToken contract address (0x followed by 40 hex characters). e.g. 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed

Example request

https://chain.kit-rx.com/v1/chain/token-scan?chain=base&address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed

Without payment the server answers 402 Payment Required with the price (10000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://chain.kit-rx.com/v1/chain/token-scan?chain=base&address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://chain.kit-rx.com/mcp. Code:

import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://chain.kit-rx.com/v1/chain/token-scan?chain=base&address=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed");
console.log(await res.json());

Example response

{
  "query": {
    "chain": "base",
    "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed"
  },
  "result": {
    "chain": "base",
    "chain_id": 8453,
    "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
    "token": {
      "name": "Degen",
      "symbol": "DEGEN",
      "decimals": 18,
      "total_supply": "35850686746.3298680797264344",
      "burned_pct": 0.0006,
      "contract_self_balance_pct": 0.0267
    },
    "contract": {
      "code_size_bytes": 11608,
      "verified": true,
      "verified_name": "DegenToken",
      "verified_match": "exact_match",
      "compiler_version": "0.8.20+commit.a1b79de6",
      "proxy": {
        "is_proxy": false,
        "upgradeable": false,
        "type": null,
        "implementation": null,
        "implementation_verified": null,
        "implementation_name": null,
        "beacon": null,
        "admin": null,
        "admin_is_contract": null
      }
    },
    "ownership": {
      "owner": "0x704Ec5C12Ca20a293C2C0B72B22619A4231f3c0d",
      "owner_source": "owner()",
      "renounced": false,
      "owner_is_contract": true,
      "owner_balance_pct": 0.5312,
      "minter": null,
      "authority": null
    },
    "status": {
      "paused": false,
      "trading_enabled": null,
      "trading_getters": {},
      "limits_in_effect": null,
      "fee_getters_pct": {}
    },
    "privileged_functions": [
      {
        "category": "mint",
        "signature": "mint(address,uint96)",
        "source": "verified_abi"
      }
    ],
    "liquidity": {
      "price_usd": 0.000693288,
      "native_usd": 1726.92,
      "total_liquidity_usd": 380800,
      "total_quote_reserve_usd": 191300,
      "best_pool_address": "0xc9034c3E7F58003E6ae0C8438e7c8f4598d5ACAA",
      "pools": [
        {
          "dex": "Uniswap v3",
          "address": "0xc9034c3E7F58003E6ae0C8438e7c8f4598d5ACAA",
          "pair": "DEGEN/WETH",
          "fee_pct": 0.3,
          "price_usd": 0.000693288,
          "liquidity_usd": 195100,
          "quote_reserve_usd": 98950,
          "in_range": true
        }
      ],
      "pools_found": 16
    },
    "risk_score": 32,
    "risk_level": "medium",
    "flags": [
      {
        "code": "can_mint",
        "severity": "high",
        "points": 15,
        "reason": "Can create new tokens, diluting holders (mint)."
      }
    ],
    "block": 57571655
  },
  "sources": [
    {
      "name": "Base JSON-RPC via PublicNode",
      "url": "https://base-rpc.publicnode.com"
    },
    {
      "name": "Sourcify verified contract repository",
      "url": "https://sourcify.dev/"
    }
  ],
  "notes": [
    "Pools covered: Uniswap v3 (4 fee tiers), Uniswap v2, Aerodrome v2 and Slipstream, against WETH or native USDC."
  ],
  "generated_at": "2026-11-15T01:05:06.702Z"
}

Kit Rx EVM Gas, Token Scan & Tx Decode: Onchain tools for AI agents: multi-chain gas prices, token risk scan and DEX price, calldata and EIP-712 signature safety checks, transaction decoding, ABIs, wallet balances and ENS, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.