# ContractLens Token Security Scan

> ContractLens Token Security Scan is a paid API for AI agents from contractlens-api.appin60.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-14).

Runs Slither static analysis and admin-power detection on a Sourcify-verified EVM smart contract, returning a risk verdict, security findings, proxy/upgradeability status, and privileged admin functions.

## Facts

- Endpoint: GET https://contractlens-api.appin60.com/token?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/contractlens-token-security-scan-c4ffbdea
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_56HMikfOTAORx-6uGNTrn

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 contractlens-token-security-scan-c4ffbdea
```

Example prompt: Before I buy any of this token, can you run a security scan on the DEGEN contract at 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed on Base (chain ID 8453) — I want to know the risk level, any Slither findings like reentrancy or unchecked calls, and whether the owner can mint or pause the token.

## When to prefer this

Use this endpoint when you need a structured, agent-ready security assessment of an EVM token or protocol contract before any financial action (approval, deposit, trade). It is especially valuable when you need Slither static-analysis findings (reentrancy, unchecked calls, arbitrary sends) combined with admin-power enumeration (mint, pause, blacklist, upgrade) and ownership info in a single call. Prefer it over manual audits or generic block explorer lookups when you need machine-readable risk verdicts. Works across Ethereum, Base, Arbitrum, Optimism, Polygon, and BNB chain. Only Sourcify-verified contracts are supported.

## Known failure modes

- Unverified contract (not on Sourcify) — rejected without charge
- Invalid or malformed contract address — error response
- Unsupported chain ID — error response
- Contract not deployed at address on specified chain — error response
- Payment not provided or insufficient — 402 response

## How this service works

Smart contract security scan for AI agents: give a chain id and contract address, get Slither static-analysis findings (reentrancy, unchecked calls, arbitrary sends, etc.), proxy/upgradeability status and the list of owner/role-gated admin functions (mint, pause, blacklist, upgrade). Works on any Sourcify-verified contract on Ethereum, Base, Arbitrum, Optimism, Polygon, BNB. Use before approving, depositing into or trading a token/protocol. Unverified contracts are rejected without charge.

## Output

A JSON object containing: ok status, chain name, token metadata (name, symbol, decimals), market data (price, volume, liquidity, pair age, buys/sells), a verdict object with risk level (LOW/MEDIUM/HIGH), numeric score, and plain-English summary, an adminPowers map listing privileged functions (mint, pause, blacklist, upgrade), control/owner info (address and multisig type), Slither flags with issue description and severity, proxy/upgradeability status, and Sourcify verification match type.

## 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": [
      "chainId",
      "address"
     ],
     "properties": {
      "address": {
       "type": "string",
       "description": "ERC-20 token contract address (0x...)"
      },
      "chainId": {
       "type": "string",
       "description": "EVM chain id: 1 Ethereum, 8453 Base, 42161 Arbitrum, 10 Optimism, 137 Polygon, 56 BNB"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "chain": "Base",
  "flags": [
   {
    "issue": "Mint function present (mint(address,uint96)): supply can be increased by a live owner/role.",
    "severity": "medium"
   }
  ],
  "token": {
   "name": "Degen",
   "symbol": "DEGEN",
   "decimals": 18
  },
  "market": {
   "buys24h": 609,
   "priceUsd": 0.00099,
   "sells24h": 766,
   "volume24hUsd": 32314,
   "oldestPairAgeDays": 1010,
   "liquidityUsdAllPairs": 113268
  },
  "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
  "control": {
   "owner": {
    "kind": "Safe multisig 2-of-3",
    "address": "0x704Ec5C12Ca20a293C2C0B72B22619A4231f3c0d"
   }
  },
  "verdict": {
   "risk": "MEDIUM",
   "score": 24,
   "summary": "DEGEN: MEDIUM risk. Mint function present; Pause function present."
  },
  "adminPowers": {
   "mint": [
    "mint(address,uint96)"
   ],
   "pause": [
    "pause()",
    "unpause()"
   ]
  },
  "sourceVerified": {
   "sourcify": "exact_match"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/contractlens-token-security-scan-c4ffbdea/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from contractlens-api.appin60.com](https://www.zero.xyz/host/contractlens-api.appin60.com/llms.txt)
