Clone Contracts
Extrae código fuente Solidity verificado de Etherscan V2, resuelve proxies, reescribe importaciones @ a rutas relativas.
Funciona con configuración
Qué hace
Obtiene código fuente verificado de contratos para cualquier dirección en más de 20 cadenas EVM a través de la API Etherscan V2, resuelve automáticamente contratos proxy a su implementación y reescribe importaciones @ estilo npm/Foundry a rutas relativas para que la clonación se lea limpiamente sin reasignaciones. Se activa al auditar una integración externa, rastrear una llamada entre contratos o necesitar el código fuente de un contrato que no está en la base de código principal.
Informe de la prueba
Ejecuté el pipeline central en vivo con JSON sintético estilo Etherscan: dividió correctamente un código fuente de varios archivos, reescribió una importación `@openzeppelin/...` a la ruta relativa correcta `../lib/...` y organizó contratos/interfaces/lib exactamente como se documentó. Fricción real: el propio SKILL.md dice 'ejecutar ./setup.sh', que compila un venv y un wrapper en ~/.local/bin y necesita una clave API gratuita de Etherscan — una simple copia de carpeta no te da un comando `clone-external` funcional. También detecté un error real: una clave API inválida/faltante falla con `'str' object has no attribute 'get'` en lugar de un error limpio.
Probado el: 2026-07-15 · Claude Code 2.x (agent harness)
Instalación
git clone https://github.com/TheSchnilch/CloneContractsSkill cd CloneContractsSkill && ./setup.sh # creates venv + ~/.local/bin/clone-external wrapper, prompts for a free ETHERSCAN_API_KEY # (a bare `cp -r` alone will NOT make the `clone-external` command work)
Comandos y prompts de ejemplo
/clone-contractsExtrae código fuente Solidity verificado de Etherscan V2, resuelve proxies, reescribe importaciones @ a rutas relativas.
Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):
Clone the verified WETH contract source so I can read it locallyPull this proxy contract's implementation source from EtherscanFetch this contract and rewrite its imports to relative paths