Clone Contracts
Zieht verifizierten Solidity-Quellcode von Etherscan V2, löst Proxys auf, schreibt @-Imports in relative Pfade um.
Funktioniert mit Setup
Was es kann
Ruft verifizierten Quellcode für Verträge für jede Adresse über 20+ EVM-Ketten über die Etherscan V2 API ab, löst automatisch Proxy-Verträge zu ihrer Implementierung auf und schreibt npm/Foundry-ähnliche @-Imports in relative Pfade um, sodass der Klon sauber gelesen werden kann, ohne Neuzuordnungen. Wird beim Auditieren einer externen Integration, beim Nachverfolgen eines Cross-Contract-Aufrufs oder beim Bedarf des Quellcodes eines Vertrags, der nicht in der Hauptcodebasis enthalten ist, ausgelöst.
Testbericht
Führte die Kernpipeline live mit synthetischen Etherscan-ähnlichen JSON-Daten aus: Sie teilte korrekt eine Multi-Datei-Quelle auf, schrieb einen `@openzeppelin/...`-Import in den richtigen relativen `../lib/...`-Pfad um und legte Verträge/Schnittstellen/Bibliotheken genau wie dokumentiert an. Echte Reibung: SKILL.md selbst sagt 'run ./setup.sh', was ein venv und einen ~/.local/bin Wrapper erstellt und einen kostenlosen Etherscan API-Schlüssel benötigt – eine einfache Ordnerkopie gibt Ihnen keinen funktionierenden `clone-external`-Befehl. Außerdem wurde ein echter Fehler entdeckt: Ein ungültiger/fehlender API-Schlüssel stürzt mit `'str' object has no attribute 'get'` ab, anstatt einer sauberen Fehlermeldung.
Getestet am: 2026-07-15 · Claude Code 2.x (agent harness)
Installation
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)
Befehle & Beispiel-Prompts
/clone-contractsZieht verifizierten Solidity-Quellcode von Etherscan V2, löst Proxys auf, schreibt @-Imports in relative Pfade um.
Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):
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