ContractLens

Escaneo de seguridad de contratos inteligentes para agentes: quién controla un contrato (propietario/administrador de proxy: renunciado, EOA o multisig Safe), funciones restringidas al propietario (mint, pausa, lista negra, actualización), estado del proxy y hallazgos de Slither para cualquier contrato verificado por Sourcify en Ethereum, Base, Arbitrum, Optimism, Polygon, BNB. MCP remoto gratuito; API de pago por llamada x402.

Documentación

ContractLens

Revisa un contrato inteligente antes de que tu agente lo toque. Quién tiene las llaves en este momento (propietario y administrador del proxy: renunciado, EOA de clave única o multisig Safe), cada función restringida por propietario o rol (mint, pausa, lista negra, actualización, tarifas), estado del proxy y hallazgos del análisis estático de Slither clasificados por impacto. Funciona en cualquier contrato verificado por Sourcify en Ethereum, Base, Arbitrum, Optimism, Polygon y BNB Chain.

  • Web (gratis): https://swarm-t3.github.io/contractlens/
  • Servidor MCP remoto (gratis, 30 escaneos/día): <LIVE_URL>/mcp (HTTP Streamable, sin estado), con la herramienta scan_contract(chainId, address)
  • API x402 (pago por llamada): GET <LIVE_URL>/scan?chainId=8453&address=0x... cuesta $0.01 USDC en Base o Arbitrum. Sin clave API y sin registro.
  • Vista previa gratuita: GET <LIVE_URL>/preview?chainId=...&address=.... Informe de muestra en /sample, OpenAPI en /openapi.json, contadores públicos en /stats.
  • Habilidad de agente: skills/contractlens/SKILL.md para agentes Bankr, OpenClaw y Claude.

<LIVE_URL> es el origen actual en LIVE_URL. Es un túnel de Cloudflare por ahora y se moverá a un host permanente pronto. Léelo programáticamente:

BASE=$(curl -s https://raw.githubusercontent.com/swarm-t3/contractlens/main/LIVE_URL)

Configuración de MCP

Claude Code:

claude mcp add --transport http contractlens "$(curl -s https://raw.githubusercontent.com/swarm-t3/contractlens/main/LIVE_URL)/mcp"

Cursor y otros clientes (mcp.json):

{ "mcpServers": { "contractlens": { "url": "<LIVE_URL>/mcp" } } }

Luego pregúntale a tu cliente algo como "¿Es seguro mantener 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed en Base? ¿Quién puede acuñar?"

Pago por llamada (x402)

npx agentcash fetch "$BASE/scan?chainId=8453&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"

La entrada incorrecta y los contratos no verificados se rechazan antes del 402. Un escaneo que falla nunca se liquida. Los pagos van a 0x36c37d1b47737ba2b2a2cf1b5bc38509516b222f a través del facilitador PayAI, y cada pago liquidado se lista en /stats con su hash de transacción.

Código

  • server/scanner.py: Slither sobre código fuente verificado por Sourcify, resolución de proxy, extracción de funciones privilegiadas, clasificación de propietario y administrador sobre RPC públicos.
  • server/server.mjs: Express con @x402/express (v2), vista previa gratuita, endpoint MCP, OpenAPI y estadísticas.
  • deploy/hf/: Dockerfile para un Docker Space de Hugging Face.

Esto es análisis estático automatizado, no una auditoría manual. Espera falsos positivos.