BrainResearchHub
Independent research on prediction markets, perpetual futures, and trading infrastructure

What Broke in the Polymarket V2 Migration? Fixes for Your Bot (2026)

Ahmed Trading· sdk · Updated October 2026

The April 28, 2026 hard cutover retired Polymarket’s V1 stack: the old py-clob-client package stopped working, V1-signed orders were rejected on production, and Data API v2 became the primary surface. Bots that didn’t migrate went silent that day. The fix is a four-step migration — swap the SDK, re-sign credentials, move endpoints, and relearn the rate-limit behavior.

What exactly changed?

Area V1 (before Apr 28, 2026) V2 (current)
Python SDK py-clob-client py-clob-client-v2
Order signing V1 signature format V2 signatures only
Data API v1 paths primary /v2 endpoints primary
Leaderboard Separate host Folded into Data API
Rate limits IP-based only IP-based + per-signer token buckets
Collateral USDC.e era pUSD standard

How do I migrate in four steps?

Migrating is four steps: swap py-clob-client for py-clob-client-v2, re-derive API credentials with the new client, re-approve allowances for the exchange contract, and re-run the backtest suite against the new order-signature path.

1. Swap the SDK

pip uninstall py-clob-client
pip install py-clob-client-v2

Import paths change (py_clob_client → py_clob_client_v2); the client-constructor shape stays similar enough that most code diffs are imports and a few renamed args.

2. Re-derive credentials

V2 re-signed the credential flow — derive fresh apiKey/secret/passphrase with the new client rather than assuming the old triple carries over:

from py_clob_client_v2.client import ClobClient
client = ClobClient(host, key=PROXY_KEY, chain_id=137,
                    signature_type=1, funder=PROXY_ADDRESS)
creds = client.create_or_derive_api_creds()

3. Move endpoints

4. Re-learn rate limits

The per-signer token buckets changed order-placement budgeting: your bot now has an order bucket and a cancel bucket with tier-based refill. Batches are all-or-nothing at the limit check; cancel-all costs 1 + the number of orders cancelled. Log the Poly-RateLimit-* headers — they’re the new telemetry.

What silently broke that people missed?

What is the pre-flight checklist?

[ ] py-clob-client-v2 pinned in requirements
[ ] Fresh credentials derived and stored
[ ] All Data API calls on /v2 paths
[ ] Leaderboard host removed
[ ] Rate-limit headers logged, backoff honors Retry-After
[ ] One live test order on a cheap market
[ ] Position/balance reconciliation vs Data API passes
[ ] Kill switch fires and cancels under V2

FAQ

Q: When did Polymarket force the V2 migration? A: April 28, 2026 — the hard cutover. V1-signed orders stopped working on production that day; there was no compatibility window for old signatures.

Q: Is my old bot dead, or fixable? A: Fixable in hours: swap the package, re-derive credentials, move endpoints, and re-test. Most breakage is imports and stale credentials, not strategy logic.

Q: Did fees change with V2? A: The fee systems split further: spot event markets kept the category formula, while perps run their own volume-tiered schedule. Backtests crossing the cutover should switch fee models at the boundary.

Q: Do I need new API keys? A: Re-derive them with the V2 client — treat the old triple as expired rather than debugging intermittent 401s.

Q: What if my bot trades both spot and perps? A: Migrate both surfaces; perps have their own auth conventions (EOA-keyed accounts, proxy signing) documented separately from the spot CLOB.

Sources

Disclaimer

Not financial advice. Educational purposes only. Updated October 2026.