Was macht polyclaw?
Handelsfähige Polymarket-Fertigkeit für OpenClaw. Durchsuchen Sie Märkte, verwalten Sie Wallets, führen Sie Trades aus und verfolgen Sie Positionen.
Funktionen
- Marktdurchsuchung - Durchsuchen und Stöbern in Polymarket-Vorhersagemärkten
- Wallet-Verwaltung - Wallet-Konfiguration über Umgebungsvariablen
- Handel - Kauf von JA/NEIN-Positionen via Split + CLOB-Ausführung
- Positionsverfolgung - Verfolgen von Einstiegspreisen, aktuellen Preisen und Gewinn/Verlust
- Absicherungssuche - LLM-gestützte Entdeckung von abdeckenden Portfolios durch logische Implikationen
Schnellstart
Installieren Sie zunächst die Abhängigkeiten (aus dem Fertigkeitsverzeichnis):
cd {baseDir}
uv sync
Ersteinrichtung (für den Handel erforderlich)
Vor Ihrem ersten Trade setzen Sie die Polymarket-Vertragsberechtigungen (einmalig, kostet ~0,01 POL an Gas):
uv run python scripts/polyclaw.py wallet approve
Dies sendet 6 Genehmigungstransaktionen an Polygon. Sie müssen dies nur einmal pro Wallet durchführen.
Märkte durchsuchen
# Trendmärkte nach Volumen
uv run python scripts/polyclaw.py markets trending
# Märkte durchsuchen
uv run python scripts/polyclaw.py markets search "Wahl"
# Marktdetails (gibt vollständiges JSON mit allen Feldern zurück)
uv run python scripts/polyclaw.py market <market_id>
Ausgabeoptionen:
- Standardausgabe ist eine formatierte Tabelle (gut zur Anzeige)
- Verwenden Sie
--fullfür den vollständigen Fragetext ohne Kürzung - Verwenden Sie
--jsonüberscripts/markets.py --json trendingfür strukturierte JSON-Ausgabe
Wallet-Verwaltung
# Wallet-Status prüfen (Adresse, Guthaben)
uv run python scripts/polyclaw.py wallet status
# Vertragsberechtigungen setzen (einmalig)
uv run python scripts/polyclaw.py wallet approve
Das Wallet wird über die Umgebungsvariable POLYCLAW_PRIVATE_KEY konfiguriert.
Handel
# JA-Position für 50 $ kaufen
uv run python scripts/polyclaw.py buy <market_id> YES 50
# NEIN-Position für 25 $ kaufen
uv run python scripts/polyclaw.py buy <market_id> NO 25
Positionen
# Alle Positionen mit Gewinn/Verlust auflisten
uv run python scripts/polyclaw.py positions
Absicherungssuche
Finden Sie abdeckende Portfolios - Paare von Marktpositionen, die sich gegenseitig durch kontrapositive Logik absichern.
# Trendmärkte nach Absicherungen durchsuchen
uv run python scripts/polyclaw.py hedge scan
# Märkte durchsuchen, die einer Abfrage entsprechen
uv run python scripts/polyclaw.py hedge scan --query "Wahl"
# Bestimmte Märkte auf Absicherungsbeziehung analysieren
uv run python scripts/polyclaw.py hedge analyze <market_id_1> <market_id_2>
Ausgabeoptionen:
- Standardausgabe ist eine formatierte Tabelle mit Stufe, Abdeckung, Kosten, Ziel und Deckung
- Verwenden Sie
--jsonfür strukturierte JSON-Ausgabe - Verwenden Sie
--min-coverage 0.90zur Filterung nach Mindestabdeckung (Standard 0,85) - Verwenden Sie
--tier 1zur Filterung nach Stufe (1=am besten, Standard 2)
Abdeckungsstufen:
- Stufe 1 (HOCH): >=95 % Abdeckung - nahezu Arbitrage-Möglichkeiten
- Stufe 2 (GUT): 90-95 % - starke Absicherungen
- Stufe 3 (MITTEL): 85-90 % - anständig, aber spürbares Risiko
- Stufe 4 (NIEDRIG): <85 % - spekulativ (standardmäßig herausgefiltert)
LLM-Modell: Verwendet nvidia/nemotron-nano-9b-v2:free über OpenRouter. Die Modellauswahl ist wichtig – einige Modelle finden Scheinkorrelationen, während andere (wie DeepSeek R1) Probleme mit dem Ausgabeformat haben. Überschreiben Sie mit --model <model_id>, falls nötig.
Sicherheit
Für den MVP wird der private Schlüssel aus Gründen der Einfachheit und Claude Code-Kompatibilität in einer Umgebungsvariable gespeichert.
Sicherheitswarnung: Bewahren Sie nur kleine Beträge in diesem Wallet auf. Überweisen Sie regelmäßig auf ein sicheres Wallet.
Umgebungsvariablen
| Variable | Erforderlich | Beschreibung |
|---|---|---|
CHAINSTACK_NODE | Ja (Handel) | Polygon RPC-URL |
OPENROUTER_API_KEY | Ja (Absicherung) | OpenRouter-API-Schlüssel für LLM-Absicherungssuche |
POLYCLAW_PRIVATE_KEY | Ja (Handel) | EVM privater Schlüssel (hex, mit oder ohne 0x-Präfix) |
HTTPS_PROXY | Empfohlen | Rotierender Residential-Proxy für CLOB (z. B. IPRoyal) |
CLOB_MAX_RETRIES | Nein | Maximale CLOB-Wiederholungen mit IP-Rotation (Standard: 5) |
POLY_BUILDER_CODE | Nein | Bytes32-Builder-Code für Attribution (von polymarket.com/settings?tab=builder). Wird bei jedem Auftrag angehängt, wenn gesetzt. |
Sicherheitswarnung: Bewahren Sie nur kleine Beträge in diesem Wallet auf. Überweisen Sie regelmäßig auf ein sicheres Wallet. Der private Schlüssel in einer Umgebungsvariable ist praktisch für die Automatisierung, aber weniger sicher als ein verschlüsselter Speicher.
Handelsablauf
- Position teilen - pUSD wird über den CTF-Vertrag in JA + NEIN-Token aufgeteilt
- Ungewünschtes verkaufen - Die ungewünschte Seite wird über das CLOB-Orderbuch (V2) verkauft
- Ergebnis - Sie halten die gewünschte Position, erstatten die Teilkosten durch den Verkauf der ungewünschten Seite
Beispiel: JA zu 0,70 $ kaufen
- 100 $ pUSD aufteilen → 100 JA + 100 NEIN-Token
- 100 NEIN-Token zu ~0,30 $ verkaufen → ~27 $ pUSD zurückgewinnen
- Nettokosten: ~73 $ für 100 JA-Token (Einstieg: 0,73 $)
Wenn Sie nur USDC.e haben, wickeln Sie es 1:1 in pUSD über die wrap()-Funktion des Collateral Onramps vor dem Handel um.
Polymarket-Verträge (Polygon Mainnet, CLOB V2)
- pUSD (Sicherheit):
0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB - USDC.e (Onramp-Eingabe):
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 - Collateral Onramp:
0x93070a847efEf7F70739046A929D47a521F5B8ee - CTF (Conditional Tokens):
0x4D97DCd97eC945f40cF65F87097ACe5EA0476045 - CTF Exchange (V2):
0xE111180000d2663C0091e4f400237545B87B996B - Neg Risk CTF Exchange (V2):
0xe2222d279d744050d28e00520010520000310F59
Abhängigkeiten
Installieren Sie mit uv (aus dem Fertigkeitsverzeichnis):
cd {baseDir}
uv sync
Einschränkungen
- Der Handel erfordert die Einrichtung der Wallet-Berechtigung (einmalig)
- CLOB-Verkäufe können fehlschlagen, wenn die Liquidität unzureichend ist
CLOB Cloudflare-Blockierung
Die CLOB-API von Polymarket verwendet Cloudflare-Schutz, der POST-Anfragen von vielen IPs blockiert, einschließlich Rechenzentrums-IPs und einiger Residential-ISPs. Dies betrifft den Schritt "Ungewünschte Token verkaufen".
Lösung: Residential-Proxy mit Wiederholungslogik
Die empfohlene Einrichtung verwendet einen rotierenden Residential-Proxy (z. B. IPRoyal, BrightData). Der CLOB-Client wiederholt automatisch mit neuen IPs, bis ein Durchbruch gelingt:
export HTTPS_PROXY="http://user:[email protected]:12321"
export CLOB_MAX_RETRIES=10 # Standard ist 5
Mit dieser Einrichtung gelingen CLOB-Orders in der Regel innerhalb von 5-10 Wiederholungen, während der Proxy die IPs rotiert, bis eine nicht blockierte gefunden wird.
Alternative Workarounds:
--skip-sellverwenden — Behalten Sie sowohl JA- als auch NEIN-Token, verkaufen Sie manuell auf polymarket.com- Kein Proxy — Das Teilen funktioniert trotzdem; nur der CLOB-Verkauf ist betroffen
Wenn der CLOB nach allen Wiederholungen fehlschlägt, war Ihr Split trotzdem erfolgreich. Die Ausgabe teilt Ihnen mit, wie viele Token Sie manuell verkaufen müssen.
Fehlerbehebung
"Kein Wallet verfügbar"
Setzen Sie die Umgebungsvariable POLYCLAW_PRIVATE_KEY:
export POLYCLAW_PRIVATE_KEY="0x..."
"Unzureichendes pUSD"
Prüfen Sie das Guthaben mit uv run python scripts/polyclaw.py wallet status. Trades erfordern pUSD (Polymarket USD). Wenn Sie USDC.e haben, wickeln Sie es 1:1 über den Collateral Onramp (0x9307...B8ee) um – die polymarket.com-Oberfläche macht dies automatisch; API-Benutzer wickeln manuell um.
"CLOB-Order fehlgeschlagen"
Der CLOB-Verkauf kann fehlschlagen aufgrund von:
- Unzureichender Liquidität zum Verkaufspreis
- IP durch Cloudflare blockiert (Proxy versuchen)
Ihr Split war trotzdem erfolgreich – Sie haben die Token, konnten nur die ungewünschte Seite nicht verkaufen.
"Berechtigungen nicht gesetzt"
Der erste Trade erfordert Vertragsberechtigungen. Führen Sie aus:
uv run python scripts/polyclaw.py wallet approve
Lizenz
Apache 2.0