ContractLens

Varredura de segurança de contratos inteligentes para agentes: quem controla um contrato (owner/admin de proxy: renunciado, EOA ou multisig Safe), funções restritas ao owner (mint, pause, blacklist, upgrade), status de proxy e achados do Slither para qualquer contrato verificado no Sourcify em Ethereum, Base, Arbitrum, Optimism, Polygon, BNB. MCP remoto gratuito; API x402 paga por chamada.

Documentação

ContractLens

Verifique um contrato inteligente antes que seu agente o toque. Quem detém as chaves agora (proprietário e administrador de proxy: renunciado, EOA de chave única ou multisig Safe), todas as funções restritas ao proprietário ou a papéis (mint, pausa, lista negra, upgrade, taxas), status do proxy e achados da análise estática do Slither classificados por impacto. Funciona em qualquer contrato verificado pelo Sourcify em Ethereum, Base, Arbitrum, Optimism, Polygon e BNB Chain.

  • Web (grátis): https://swarm-t3.github.io/contractlens/
  • Servidor MCP remoto (grátis, 30 varreduras/dia): <LIVE_URL>/mcp (HTTP Streamable, sem estado), com a ferramenta scan_contract(chainId, address)
  • API x402 (pague por chamada): GET <LIVE_URL>/scan?chainId=8453&address=0x... custa $0,01 USDC na Base ou Arbitrum. Sem chave de API e sem cadastro.
  • Pré-visualização grátis: GET <LIVE_URL>/preview?chainId=...&address=.... Relatório de exemplo em /sample, OpenAPI em /openapi.json, contadores públicos em /stats.
  • Habilidade de agente: skills/contractlens/SKILL.md para agentes Bankr, OpenClaw e Claude.

<LIVE_URL> é a origem atual em LIVE_URL. É um túnel Cloudflare por enquanto e mudará para um host permanente em breve. Leia programaticamente:

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

Configuração do MCP

Claude Code:

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

Cursor e outros clientes (mcp.json):

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

Depois, pergunte ao seu cliente algo como "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed na Base é seguro de manter? Quem pode cunhar?"

Pague por chamada (x402)

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

Entrada inválida e contratos não verificados são rejeitados antes do 402. Uma varredura que falha nunca é liquidada. Os pagamentos vão para 0x36c37d1b47737ba2b2a2cf1b5bc38509516b222f por meio do facilitador PayAI, e cada pagamento liquidado é listado em /stats com seu hash de transação.

Código

  • server/scanner.py: Slither em código-fonte verificado pelo Sourcify, resolução de proxy, extração de funções privilegiadas, classificação de proprietário e administrador sobre RPCs públicos.
  • server/server.mjs: Express com @x402/express (v2), pré-visualização grátis, endpoint MCP, OpenAPI e estatísticas.
  • deploy/hf/: Dockerfile para um Hugging Face Docker Space.

Esta é uma análise estática automatizada, não uma auditoria manual. Espere falsos positivos.