API · Troubleshooting
Die meisten Polymarket-API-Fehler haben eine einzeilige Ursache und einen einzeiligen Fix – aber die Antworten sind über GitHub-Issues verstreut. Diese Seite sammelt die Fehler, die Entwickler auf CLOB V2 / pUSD tatsächlich treffen, mit der Ursache, einer minimalen Reproduktion und dem Fix in Python und Rust. Füge deinen Fehler unten ein, um direkt dorthin zu springen.
py-clob-client (neueste 0.34.6) und
@polymarket/clob-client sind archiviert / abgelöst und erzeugen Orders, die die
V2-Börse ablehnt. Wechsle zu py-clob-client-v2 (Python), @polymarket/clob-client-v2
(Node) oder dem offiziellen Rust-Client polymarket_client_sdk_v2. Neue Projekte können die vereinheitlichten
Beta-SDKs nutzen (polymarket-client / @polymarket/client).order_version_mismatch
Ursache. Du hast eine V1-förmige Order signiert (alte EIP-712-Exchange-Domain-
Version "1", Legacy-Felder) und sie an die V2-Börse gepostet (Domain-
Version "2"). Am 28. April 2026 änderte sich das Order-Struct: nonce,
feeRateBps, taker und expiration wurden aus dem signierten Struct entfernt,
timestamp, metadata und builder hinzugefügt. Fast immer bedeutet das,
dass du noch den V1-Client importierst.
Fix. Wechsle zum V2-SDK – es baut und signiert das V2-Struct für dich.
pip install py-clob-client-v2 # V1 py-clob-client (0.34.x) is archived
from py_clob_client_v2 import ClobClient
client.create_and_post_order(order_args) # signs the V2 struct, domain "2"
// Cargo.toml: polymarket_client_sdk_v2 = "0.5" (official, repo rs-clob-client-v2)
use polymarket_client_sdk_v2::ClobClient;
Verwandt: invalid signature, v1 → v2 migrieren.
not enough balance / allowance
Ursache. Unter V2 muss deine Funding-Wallet die V2-Exchange-Contracts genehmigen, um dein Collateral und deine Outcome-Tokens zu bewegen – und dein Collateral muss pUSD sein, nicht USDC.e. Ein Kauf braucht eine pUSD-Allowance; ein Verkauf braucht eine CTF-Genehmigung (ERC-1155). Fehlt eine davon, kommt dieser Fehler.
Fix. (1) Wrappe USDC.e → pUSD, dann (2) genehmige pUSD und die Conditional Tokens für die drei V2-Contracts:
- CTF Exchange (V2) –
0xE111180000d2663C0091e4f400237545B87B996B - Neg Risk CTF Exchange –
0xe2222d279d744050d28e00520010520000310F59 - Neg Risk Adapter –
0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296
0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB ·
Conditional Tokens (CTF): 0x4D97DCd97eC945f40cF65F87097ACe5EA0476045Website-Nutzer werden nach einer einmaligen Genehmigung automatisch gewrappt; API-only-Trader rufen
CollateralOnramp.wrap() (0x93070a847efEf7F70739046A929D47a521F5B8ee) selbst auf.
maker address not allowed, please use the deposit wallet flow
Ursache. Du signierst mit einer POLY_1271-Deposit-Wallet (Signaturtyp 3).
Stand Juni 2026 haben die Python- (py-clob-client-v2) und TypeScript-Clients (@polymarket/clob-client-v2)
einen offenen Bug: Die L1-Auth bindet den API-Schlüssel an deine EOA statt an die Deposit-Wallet,
sodass die Börse die Order ablehnt.
Fix. Für den Handel mit Deposit-Wallets (Typ 3) nutze heute den offiziellen Rust-Client, der die EIP-1271-Signatur korrekt umschließt:
// Rust - authentication_builder().funder(deposit_wallet).signature_type(SignatureType::Poly1271)
Workaround ohne Rust: Melde dich per E-Mail/Magic an, exportiere den Magic-Wallet-Schlüssel und nutze
signature_type = POLY_PROXY (Typ 1) – es funktioniert, skaliert aber nicht auf viele Bots.
Das ist ein beweglicher Bug – prüfe die Polymarket-Issues #70 (Python) und #65 (TS) auf einen Fix.
the order signer address has to be the address of the API KEY
Ursache. Die Wallet, die die Order signiert hat, passt nicht zu der Wallet, für die dein API-Schlüssel abgeleitet
wurde, oder du hast nicht den richtigen funder/Signaturtyp übergeben. Häufig bei Proxy- und Gnosis-Safe-
Wallets, wenn sich der Signier-Schlüssel von der geldhaltenden Adresse unterscheidet.
Fix. Leite den API-Schlüssel für dieselbe Wallet ab, mit der du signierst, und übergib sowohl den Private
Key als auch die funder-Adresse mit dem korrekten signature_type (1 = E-Mail/Magic-Proxy,
2 = Gnosis Safe, 3 = Deposit-Wallet).
invalid signature
Ursache. Meist eines von: (a) die falsche EIP-712-Domain signiert – die V2-Exchange-Domain-Version
ist "2" (die L1-ClobAuth-Domain bleibt "1"); (b) Uhr-Drift > ~60 s zwischen deiner
Maschine und dem Server; (c) ein V1-Client (siehe order_version_mismatch).
Fix. Nutze das V2-SDK, damit Domain/Struct korrekt sind, und synchronisiere deine Uhr (NTP).
401 / invalid api key / PolyApiException
Ursache. Fehlende oder falsche L2-Zugangsdaten (API-Key/-Secret/-Passphrase), oder du hast sie nie erstellt. Das Lesen von Marktdaten ist schlüssellos – das betrifft nur authentifizierte Aufrufe (Orders, deine Positionen).
Fix. Erstelle oder leite deine API-Zugangsdaten ab und übergib dann alle drei bei authentifizierten Requests:
# client.create_or_derive_api_key() -> api_key, api_secret, api_passphrase
INVALID_ORDER_MIN_TICK_SIZE
Ursache. Dein Preis ist kein Vielfaches der Tick-Size des Marktes (oft 0,01, manchmal 0,001).
Fix. Hole die Tick-Size des Marktes (GET /tick-size) und runde deinen Preis darauf,
bevor du signierst.
FOK_ORDER_NOT_FILLED
Ursache. Eine Fill-Or-Kill-Order konnte zu deinem Preis nicht vollständig gegen die aktuelle ruhende Liquidität ausgeführt werden, also wurde sie gekillt (das ist FOK wie beabsichtigt, kein Fehler).
Fix. Lies zuerst das Buch und dimensioniere nach verfügbarer Tiefe, weite deinen Preis oder nutze GTC/FAK statt FOK.
invalid amounts (decimals)
Ursache. Beträge müssen die Dezimalgenauigkeit einhalten – Maker-Betrag auf 2 Dezimalstellen, Taker-Betrag auf 4 Dezimalstellen. Zusätzliche Genauigkeit wird abgelehnt.
Fix. Runde/quantisiere vor dem Signieren; lass das V2-SDK die Beträge aus Preis × Größe berechnen.
Size lower than the minimum: 5
Ursache. Orders unter der Mindest-Anteilsgröße (5) werden abgelehnt.
Fix. Erhöhe die Order-Größe auf ≥ 5 Anteile.
429 / throttled
Ursache. Du hast ein Sliding-Window-Rate-Limit überschritten. Die V2-Limits sind hoch (CLOB ~9.000 / 10 s;
/book,/price 1.500 / 10 s; Gamma 4.000 / 10 s; Data 1.000 / 10 s), und Über-Limit-
Requests werden gedrosselt/eingereiht, nicht hart abgelehnt – ein clientseitiger Limiter ist trotzdem klug.
Fix. Füge einen Token-Bucket-Limiter und exponentielles Backoff bei 429 hinzu.
Weiter: Authentifizierung & Wallets · CLOB-API-Referenz · API-Schnellstart.



