Kapitel 36 von 36
Die Kurzfassung
Am 28. April 2026 migrierte Polymarket seine Abwicklungssicherheit auf Polygon von USDC.e (dem gebridgten USDC-Token, Contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) zu pUSD, einem von Polymarket ausgegebenen Stablecoin, der 1:1 in natives USDC einlösbar ist. Web-App-Trader taten nichts - Guthaben und Positionen wurden am Snapshot-Block automatisch umgewandelt. API- und Bot-Betreiber müssen aktualisieren: Die Adresse des Sicherheiten-Assets in jeder CLOB-Order-Signatur hat sich geändert, alte gegen USDC.e signierte Orders wurden storniert, und py-clob-client 0.40 oder neuer ist erforderlich. Dieser Leitfaden geht die genauen Code-, Contract- und Genehmigungsänderungen durch, die nötig sind, um einen Bot durch den Umstieg und danach am Laufen zu halten.
Teil 1: Drei Stablecoins, ein Polygon
Vor der Migration existierten drei USD-Stablecoins in Polymarkets Umlaufbahn auf Polygon. Den Unterschied zu kennen ist der erste Schritt, um zu verstehen, warum Polymarket den Schauplatz wechselte.
| Token | Herausgeber | Contract auf Polygon | Reserve-Typ |
|---|---|---|---|
| USDC.e | Polygon-PoS-Bridge | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Gebridgt vom Ethereum-Mainnet |
| USDC (nativ) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | Nativ, direkt auf Polygon ausgegeben |
| pUSD | Polymarket Treasury | Siehe docs.polymarket.com/pusd | 1:1 durch natives USDC gedeckt, monatliche Attestierung |
Polymarket wählte ursprünglich USDC.e, weil es bei Start 2020 die dominierende USDC-Variante auf Polygon war. Circle gab später natives USDC direkt auf Polygon heraus und signalisierte die letztliche Abschaffung der gebridgten Variante. Jeden Markt weiterhin in USDC.e abzuwickeln setzte Polymarket dem Long-Tail-Risiko einer plötzlichen Bridge-Abwicklung aus. Die Migration zu einem Polymarket-kontrollierten Stablecoin löst das und schaltet künftige Produktfunktionen frei (z. B. Perps-Margin, Vault-Einzahlungen, Cross-Chain-Quittungen), die dieselbe Recheneinheit teilen.
Teil 2: Was pUSD ist (und was nicht)
pUSD ist ein standardmäßiger ERC-20-Token auf Polygon (Chain-ID 137) mit 6 Dezimalstellen, dieselbe Präzision wie USDC. Er ist nur durch den Polymarket-Treasury-Contract mintbar und jederzeit 1:1 in natives USDC einlösbar, ohne Gebühr auf die Umwandlung (Netzwerk-Gas fällt weiterhin an). Die pUSD deckende Reserve wird in getrennten Konten gehalten und monatlich mit einer Drittpartei-Attestierung gemeldet.
pUSD ist kein algorithmischer Stablecoin, ist nicht mit Krypto überbesichert und ist nicht renditetragend. Wenn du pUSD außerhalb von Polymarket hältst, solltest du ihn als von Polymarket ausgegebenen Schuldschein für natives USDC betrachten - nützlich innerhalb der Plattform, auf Abruf einlösbar, aber ohne Vorteil, ihn langfristig in einer externen Wallet zu halten.
docs.polymarket.com/pusd-audit veröffentlicht. Verifiziere beide, bevor du langfristig große Guthaben hältst.Teil 3: Was Web-App-Trader sahen
Wenn du nur über polymarket.com handelst, war die Migration unsichtbar. Am Snapshot-Block am 28. April 2026:
- Jedes USDC.e-Guthaben in einer Polymarket-Proxy-Wallet wurde atomar 1:1 in pUSD umgewandelt.
- Offene Positionen behielten denselben Dollarwert, dieselben Ausgangsquoten und denselben Ablauf. Conditional-Token-IDs änderten sich nicht.
- In USDC.e denominierte liegende Orders wurden am Snapshot storniert. Neue Orders nach der Migration signieren automatisch gegen pUSD.
- Auszahlungen an externe Wallets wechselten vom Senden von USDC.e zum Senden von nativem USDC (oder auf Anfrage rohem pUSD - die meisten Nutzer brauchen das nie).
Keine Signaturen, Transaktionen oder Einstellungsänderungen waren nötig. Liegende Limit-Orders, die dir wichtig waren, solltest du nach der Migration manuell neu platzieren; die Stornierung war ein einmaliges Ereignis.
Teil 4: API- und Bot-Betreiber - kritische Änderungen
Das ist der Teil, der einen Bot kaputtmacht, wenn du nicht handelst.
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174). Nach der Migration ist es pUSD. Eine gegen die alte Adresse signierte Order schlägt bei der Signaturprüfung im CLOB fehl und gibt einen „invalid maker asset“- oder „signature mismatch“-Fehler zurück.py-clob-client aktualisieren
Polymarket veröffentlichte py-clob-client 0.40.0 zwei Wochen vor dem Umstieg mit voller pUSD-Unterstützung. Die 0.34.x-Linie wurde am Tag nach der Migration eingestellt.
# Bump to a pUSD-aware release
pip install --upgrade "py-clob-client>=0.40.0"
# Verify the wired collateral asset
python -c "from py_clob_client.constants import POLYGON; \
print('pUSD address:', POLYGON.get('collateral'))"
Das neue SDK zieht die Sicherheiten-Adresse beim Start aus der Chain-Konfiguration, du musst also nichts hartcodieren. Wenn du eine ältere Version geforkt oder gepinnt hast, ist der sicherste Zug, die Lockfile zu löschen, mit dem neuesten Constants-Modul neu zu installieren und deine Test-Suite erneut auszuführen.
Allowances neu genehmigen
Deine Polymarket-Proxy-Wallet braucht eine ERC-20-Allowance von deinem Handelskonto → CTF-Exchange-Contract für den pUSD-Token. Die alte Allowance für USDC.e ist noch on-chain, aber komplett nutzlos: CLOB wird sie nicht verbrauchen. Ohne eine frische pUSD-Allowance gibt jede Order "INSUFFICIENT_ALLOWANCE" zurück.
from py_clob_client.client import ClobClient
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
key=os.environ["POLY_PRIVATE_KEY"],
funder=os.environ["POLY_FUNDER"],
signature_type=1, # POLY_PROXY for Magic-link accounts
)
client.set_api_creds(client.create_or_derive_api_creds())
# One-time: approve pUSD for the CTF Exchange contract
# (Helper added in py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")
API-Anmeldedaten erneuern
Bestehende API-Keys funktionieren weiter, aber wenn du Anmeldedaten vor dem 1. April abgeleitet hast, solltest du sie vorsichtshalber rotieren: Die L1-ECDSA-Signatur bindet nun an eine Domain, die die neue Sicherheiten-Adresse einschließt. Der einfachste Weg:
creds = client.create_or_derive_api_creds() # idempotent re-derive
client.set_api_creds(creds)
# Persist to your .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Teil 5: Deinen Bot nach der Migration verifizieren
Führe diesen minimalen Smoke-Test aus, bevor du irgendeine Sizing-Logik auf echtes Geld loslässt:
# 1. Confirm pUSD balance on the proxy wallet
from py_clob_client.client import ClobClient
client = ClobClient(...) # as above
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("pUSD balance (raw):", balance["balance"])
print("Allowance to exchange:", balance["allowance"])
# 2. Place a $1 limit order well off the touch
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
token_id=test_token_id,
price=0.05, # nowhere near the market
size=20, # $1 notional at $0.05
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. Cancel and confirm
client.cancel(order_id=resp["orderID"])
Wenn alle drei Aufrufe erfolgreich sind, ist deine Verdrahtung gut: Das SDK signierte gegen pUSD, die Allowance wird erkannt, und das Order-Ledger ist konsistent. Skaliere allmählich wieder hoch.
Teil 6: Häufige Fehler und Lösungen
| Fehler oder Symptom | Ursache | Lösung |
|---|---|---|
signature verification failed | Order gegen USDC.e-EIP-712-Domain signiert | py-clob-client auf 0.40+ aktualisieren; Constants-Modul neu laden |
INSUFFICIENT_ALLOWANCE bei jeder Order | Keine pUSD-Allowance von deinem Proxy zum CTF-Exchange | update_balance_allowance(asset_type="COLLATERAL") einmal ausführen |
invalid maker asset | Hartcodierte USDC.e-Adresse noch in deiner Konfiguration | Jede hartcodierte Sicherheiten-Adresse durch die SDK-Konstante ersetzen |
| Wallet zeigt USDC.e-Guthaben > 0 nach der Migration | „Staub“-Token von einer Drittpartei-Übertragung übrig | USDC.e zurück in natives USDC über Circles CCTP bridgen, oder liegen lassen |
| WebSocket-Reconnect erzeugt leeres Buch | Alte Subscription nutzte einen veralteten Marktzustand von vor dem Snapshot | Lokalen Cache verwerfen, REST-Buch neu abrufen, dann neu subscriben |
| Auszahlung an externe Wallet zeigt pUSD statt USDC | Du hast im Auszahlungsdialog „pUSD“ statt „USDC“ gewählt | „USDC“ wählen - die Bridge wandelt pUSD → natives USDC 1:1 um |
Teil 7: Conditional Tokens, Order-IDs und andere Dinge, die sich nicht änderten
Um den Refactor-Umfang ehrlich zu halten, hier die Liste der Identifikatoren, die über die Migration hinweg stabil sind:
- Conditional-Token-Contract (CTF): identische Adresse. Deine YES-/NO-ERC-1155-Positionen sind unberührt.
- condition_id und question_id: deterministisch aus Marktparametern; nicht vom Sicherheiten-Tausch betroffen.
- token_id (Outcome): abgeleitet aus condition_id + Outcome-Index; unverändert.
- Polymarket-Proxy-Wallet-Adresse: dieselbe Adresse; derselbe Gnosis-Safe-artige Code.
- API-Key, API-Secret, API-Passphrase: weiterhin gültig (Rotation empfohlen; nicht erforderlich).
- WebSocket-Schemas: identisch; das neue
asset-Feld liest „pUSD“ statt „USDC.e“ in Fill-Events. - Gamma- und Data-APIs: unauthentifiziert, unverändert. Sie referenzierten den Sicherheiten-Token nie direkt.
Teil 8: Steuer- und Buchhaltungs-Auswirkungen
Für die meisten Rechtsordnungen ist die Auto-Umwandlung von USDC.e zu pUSD ein gleichartiger Tausch von USD-gekoppelten Stablecoins zu 1:1 und erzeugt kein steuerpflichtiges Ereignis. Deine Kostenbasis und Haltedauer werden übertragen.
Dennoch verdienen zwei Buchhaltungspunkte Aufmerksamkeit:
- Aktualisiere dein Ledger-Schema. Jedes Steuer-Tool, jedes SQLite-Ledger oder jeder Buchhalter-Export, der Polygon-Transaktionen nach dem USDC.e-Contract filtert, wird jede Transaktion nach der Migration stillschweigend verpassen. Füge die pUSD-Contract-Adresse als Alias hinzu.
- Annotiere die Snapshot-Umwandlung. Auch wenn sie in den meisten Regimen nicht steuerpflichtig ist, protokolliere die Umwandlung explizit in deinen Aufzeichnungen: Betrag, Block, Zeitstempel und ein Vermerk, dass es eine 1:1-Stablecoin-Migration ist. Falls deine Rechtsordnung es später abfragt, willst du einen sauberen Prüfpfad.
Israelische Trader sollten den Steuer-Leitfaden für ITA-spezifische Meldung konsultieren; die Migration selbst ändert die Standardbehandlung nicht, aber die Contract-Adressänderung ist für automatisierte Meldetools relevant.
Teil 9: Profi-Tipps von Betreibern, die den Umstieg miterlebten
- Pinne py-clob-client auf
>=0.40,<0.50in requirements.txt. Die 0.40-Linie ist das Minimum, das pUSD-Orders korrekt signiert; eine obere Grenze zu pinnen schützt vor einer künftigen Breaking Change. - Genehmige Allowances während eines Fensters mit niedrigem Volumen neu. Der
update_balance_allowance-Aufruf ist eine Polygon-Transaktion; ihn während einer schnellen Marktbewegung zu machen, ruft den Gas-Spike geradezu herbei. - Snapshotte dein USDC.e-Guthaben vor dem 28. April. Auch wenn die Umwandlung automatisch ist, ist ein verifizierbares Vor-Snapshot-Guthaben der sauberste Weg, ein Abgleichsproblem zu bestreiten.
- Storniere liegende Orders manuell vor dem Snapshot. Sie wurden vom Schauplatz ohnehin storniert; es selbst zu tun gibt dir einen sauberen Ledger-Eintrag statt einer „System-Cancel“-Zeile.
- Achte auf veraltete Dashboards. Drittpartei-Polymarket-Dashboards (PolymarketAnalytics, Polynance usw.) brauchten zwei bis drei Tage, um pUSD-Events neu zu parsen. Die lokale DB deines Bots könnte öffentlichen Dashboards für ein paar Tage voraus sein.
- Bridge USDC.e-Staub nach deinem eigenen Zeitplan. Die meisten Konten haben ein paar Cent übrig gebliebenes USDC.e von alten Gebühren-Rebates oder Peer-Transfers. Nutze Circles CCTP oder die Standard-Polygon-Portal-Bridge - keine Eile.
- Behalte die alte USDC.e-Adresse in deinen Block-Explorer-Alarmen. Falls je etwas aus deinem Proxy in USDC.e nach der Migration abfließt, ist das ein Warnsignal, das sofortige Untersuchung wert ist.
Was kommt als Nächstes?
- Polymarket-API-Leitfaden - der vollständige API-Leitfaden, aktualisiert für pUSD
- Einzahlungs-Leitfaden - USDC einzahlen und pUSD in der App erhalten
- Auszahlungs-Leitfaden - pUSD als natives USDC an eine externe Wallet auszahlen
- Tools & Ressourcen - Drittpartei-Dashboards jetzt für pUSD aktualisiert
- Glossar - klar verständliche Definitionen für jeden hier verwendeten Begriff
Wichtigste Erkenntnis
Die Polymarket-pUSD-Migration ist ein risikoarmer einmaliger Refactor für jeden Betreiber, der bereits einen Polymarket-Bot betreibt. Bring py-clob-client auf 0.40+, genehmige pUSD-Allowances neu, führe einen 1-$-Smoke-Test aus und mach weiter. Die Infrastruktur darunter (CTF, Condition-IDs, Token-IDs, API-Keys) änderte sich nicht, also ist die Angriffsfläche klein und die Rollback-Geschichte sauber.












