Hoofdstuk 36 van 36

De korte versie

Op 28 april 2026 migreerde Polymarket zijn afwikkelingsonderpand op Polygon van USDC.e (de gebridgede USDC-token, contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) naar pUSD, een door Polymarket uitgegeven stablecoin 1:1 inwisselbaar voor native USDC. Web-app-traders deden niets - saldi en posities werden automatisch geconverteerd bij het snapshot-blok. API- en bot-operators moeten bijwerken: het onderpand-asset-adres binnen elke CLOB-order-handtekening veranderde, oude orders ondertekend tegen USDC.e werden geannuleerd, en py-clob-client 0.40 of nieuwer is vereist. Deze gids loopt de exacte code-, contract- en goedkeuringswijzigingen door die nodig zijn om een bot door en na de overstap draaiende te houden.

Wat je gaat leren: waarom Polymarket wegging van USDC.e, wat er veranderde op contractniveau, het exacte py-clob-client-upgradepad, hoe je allowances voor het nieuwe onderpand opnieuw goedkeurt, hoe je je saldo na de overstap verifieert, en hoe je de legacy-USDC.e-dust afhandelt die de meeste accounts nu aanhouden.
Vereisten: je zou al een werkende Polymarket-account moeten hebben, basiskennis van Polygon-contracten, en een bestaande bot- of handmatige API-workflow van vóór 28 april 2026. Als je vandaag fris begint, installeer dan gewoon de nieuwste SDK en spring naar Hoofdstuk Vier - je hoeft USDC.e nooit aan te raken.
01
Hoofdstuk Eén

Deel 1: Drie stablecoins, één Polygon

Vóór de migratie bestonden er drie USD-stablecoins in de baan van Polymarket op Polygon. Het verschil kennen is de eerste stap naar begrijpen waarom Polymarket van platform wisselde.

TokenUitgeverContract op PolygonReservetype
USDC.ePolygon PoS-bridge0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174Gebridged vanaf Ethereum-mainnet
USDC (native)Circle0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359Native, direct uitgegeven op Polygon
pUSDPolymarket TreasuryZie docs.polymarket.com/pusd1:1 gedekt door native USDC, maandelijkse attestatie

Polymarket koos oorspronkelijk USDC.e omdat het de dominante USDC-variant op Polygon was bij de lancering in 2020. Circle gaf later native USDC direct uit op Polygon en signaleerde de uiteindelijke uitfasering van de gebridgede variant. Elke markt in USDC.e blijven afwikkelen stelde Polymarket bloot aan het long-tail-risico van een plotselinge bridge-afbouw. Migreren naar een door Polymarket gecontroleerde stablecoin lost dat op en ontsluit toekomstige productfuncties (bijv. perps-marge, vault-stortingen, cross-chain-ontvangstbewijzen) die dezelfde rekeneenheid delen.

02
Hoofdstuk Twee

Deel 2: Wat pUSD is (en niet is)

pUSD is een standaard ERC-20-token op Polygon (chain id 137) met 6 decimalen, dezelfde precisie als USDC. Het is alleen muntbaar door het Polymarket Treasury-contract en is op elk moment 1:1 inwisselbaar voor native USDC, zonder vergoeding op de conversie (netwerk-gas is nog steeds van toepassing). De reservedekking van pUSD wordt aangehouden in gescheiden rekeningen en maandelijks gerapporteerd met een attestatie van een derde partij.

pUSD is geen algoritmische stablecoin, is niet over-gecollateraliseerd met crypto, en is niet rentedragend. Als je pUSD buiten Polymarket aanhoudt, zou je het moeten zien als een door Polymarket uitgegeven schuldbekentenis voor native USDC - nuttig binnen het platform, op aanvraag inwisselbaar, maar zonder voordeel om langdurig in een externe wallet aan te houden.

Audit en reserves: het pUSD-smartcontract is geauditeerd door de vaste auditors van Polymarket. Reserve-attestatie-rapporten worden maandelijks gepubliceerd op docs.polymarket.com/pusd-audit. Verifieer beide voordat je grote saldi langdurig aanhoudt.
03
Hoofdstuk Drie

Deel 3: Wat web-app-traders zagen

Als je alleen via polymarket.com traadt, was de migratie onzichtbaar. Bij het snapshot-blok op 28 april 2026:

  • Elk USDC.e-saldo aangehouden in een Polymarket-proxy-wallet werd atomair geconverteerd naar pUSD op 1:1.
  • Open posities behielden dezelfde dollarwaarde, dezelfde uitkomst-odds en dezelfde vervaltijd. Conditional-token-ID's veranderden niet.
  • Rustende orders gedenomineerd in USDC.e werden geannuleerd bij het snapshot. Nieuwe orders na de migratie ondertekenen automatisch tegen pUSD.
  • Opnames naar externe wallets schakelden over van het verzenden van USDC.e naar het verzenden van native USDC (of, op verzoek, ruwe pUSD - de meeste gebruikers hebben dat nooit nodig).

Er waren geen handtekeningen, transacties of instellingswijzigingen vereist. Rustende limietorders die er voor jou toe deden, moeten handmatig opnieuw worden geplaatst na de migratie; de annulering was een eenmalige gebeurtenis.

04
Hoofdstuk Vier

Deel 4: API- en bot-operators - cruciale wijzigingen

Dit is het deel dat een bot zal breken als je niet handelt.

Wat er veranderde in de order-handtekening: CLOB-orders worden ondertekend via EIP-712 en verwijzen naar het onderpand-asset-adres als onderdeel van de getypte data. Vóór de migratie was dat adres USDC.e (0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174). Na de migratie is het pUSD. Een order ondertekend tegen het oude adres faalt bij de handtekeningverificatie bij CLOB en retourneert een "invalid maker asset"- of "signature mismatch"-fout.

Werk py-clob-client bij

Polymarket publiceerde py-clob-client 0.40.0 twee weken vóór de overstap met volledige pUSD-ondersteuning. De 0.34.x-lijn werd de dag na de migratie uitgefaseerd.

# Upgrade naar een pUSD-bewuste release
pip install --upgrade "py-clob-client>=0.40.0"

# Verifieer het gekoppelde onderpand-asset
python -c "from py_clob_client.constants import POLYGON; \
print('pUSD address:', POLYGON.get('collateral'))"

De nieuwe SDK haalt het onderpandadres bij het opstarten uit de chain-configuratie, dus je hoeft niets hard te coderen. Als je een oudere versie hebt geforkt of vastgepind, is de veiligste zet het lockfile te verwijderen, opnieuw te installeren met de nieuwste constants-module, en je testsuite opnieuw te draaien.

Keur allowances opnieuw goed

Je Polymarket-proxy-wallet heeft een ERC-20-allowance nodig van je trading-account → CTF Exchange-contract voor de pUSD-token. De oude allowance voor USDC.e staat nog steeds on-chain maar is volledig nutteloos: CLOB zal hem niet verbruiken. Zonder een verse pUSD-allowance retourneert elke order "INSUFFICIENT_ALLOWANCE".

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 voor Magic-link-accounts
)
client.set_api_creds(client.create_or_derive_api_creds())

# Eenmalig: keur pUSD goed voor het CTF Exchange-contract
# (Helper toegevoegd in py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")

Vernieuw API-credentials

Bestaande API-sleutels blijven werken, maar als je credentials hebt afgeleid vóór 1 april zou je ze uit voorzorg moeten roteren: de L1-ECDSA-handtekening bindt nu aan een domein dat het nieuwe onderpandadres bevat. Het eenvoudigste pad:

creds = client.create_or_derive_api_creds()  # idempotente her-afleiding
client.set_api_creds(creds)

# Persisteer naar je .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
05
Hoofdstuk Vijf

Deel 5: Je bot verifiëren na de migratie

Draai deze minimale rooktest voordat je enige dimensioneringslogica loslaat op echt geld:

# 1. Bevestig pUSD-saldo op de proxy-wallet
from py_clob_client.client import ClobClient
client = ClobClient(...)  # zoals hierboven
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("pUSD balance (raw):", balance["balance"])
print("Allowance to exchange:", balance["allowance"])

# 2. Plaats een limietorder van $1 ver van de touch
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
    token_id=test_token_id,
    price=0.05,        # nergens in de buurt van de markt
    size=20,           # $1 nominaal op $0.05
    side="BUY",
))
resp = client.post_order(order)
print(resp)

# 3. Annuleer en bevestig
client.cancel(order_id=resp["orderID"])

Als alle drie de calls slagen, is je bedrading goed: de SDK ondertekende tegen pUSD, de allowance wordt herkend, en het order-grootboek is consistent. Schaal geleidelijk weer op.

Time de upgrade zorgvuldig: als je de bot continu door het snapshot-blok hebt gedraaid, is je lokale orderboekstaat waarschijnlijk afgeweken. Reconcilieer altijd tegen REST-snapshots na een grote platformwijziging voordat je omvang quoot.
06
Hoofdstuk Zes

Deel 6: Veelvoorkomende fouten en oplossingen

Fout of symptoomOorzaakOplossing
signature verification failedOrder ondertekend tegen het USDC.e-EIP-712-domeinUpgrade py-clob-client naar 0.40+; herlaad de constants-module
INSUFFICIENT_ALLOWANCE op elke orderGeen pUSD-allowance van je proxy naar CTF ExchangeDraai update_balance_allowance(asset_type="COLLATERAL") één keer
invalid maker assetHardgecodeerd USDC.e-adres nog in je configVervang elk hardgecodeerd onderpandadres door de SDK-constante
Wallet toont USDC.e-saldo > 0 na de migratie"Dust"-tokens overgebleven van een transfer van derdenBridge USDC.e terug naar native USDC via Circle's CCTP, of laat het
WebSocket-reconnect produceert een leeg boekOude subscription gebruikte een verouderde marktstaat van vóór het snapshotLaat de lokale cache vallen, haal het REST-boek opnieuw op, abonneer dan opnieuw
Opname naar externe wallet toont pUSD in plaats van USDCJe selecteerde "pUSD" in plaats van "USDC" in de opname-modalKies "USDC" - de bridge converteert pUSD → native USDC op 1:1
07
Hoofdstuk Zeven

Deel 7: Conditional tokens, order-ID's en andere dingen die niet veranderden

Om de refactor-scope eerlijk te houden, hier de lijst met identifiers die stabiel zijn door de migratie heen:

  • Conditional Token-contract (CTF): identiek adres. Je JA / NEE ERC-1155-posities zijn onaangeroerd.
  • condition_id en question_id: deterministisch uit de marktparameters; niet beïnvloed door de onderpand-swap.
  • token_id (uitkomst): afgeleid van condition_id + uitkomst-index; onveranderd.
  • Polymarket-proxy-walletadres: hetzelfde adres; dezelfde Gnosis Safe-achtige code.
  • API-sleutel, API-secret, API-passphrase: nog steeds geldig (aanbevolen om te roteren; niet vereist).
  • WebSocket-schema's: identiek; het nieuwe asset-veld leest "pUSD" in plaats van "USDC.e" in fill-events.
  • Gamma- en Data-API's: niet-geauthenticeerd, onveranderd. Ze verwezen nooit direct naar de onderpand-token.
Eén kleine UI-wijziging: de Polymarket-proxy-wallet-weergave toont nu saldi in pUSD, met een 1:1 USD-label. Block explorers (PolygonScan, Polygonscan API) tonen pUSD ERC-20-transfers in de transactiegeschiedenis van de proxy-wallet. Oude USDC.e-transfers blijven zichtbaar in de geschiedenis; je adres heeft simpelweg een tijdje twee ERC-20-tokenrijen.
08
Hoofdstuk Acht

Deel 8: Fiscale en boekhoudkundige implicaties

Voor de meeste jurisdicties is de auto-conversie van USDC.e naar pUSD een gelijksoortige swap van USD-gekoppelde stablecoins op 1:1 en produceert het geen belastbare gebeurtenis. Je kostenbasis en aanhoudperiode dragen over.

Dat gezegd hebbende, twee boekhoudkundige punten verdienen aandacht:

  1. Werk je grootboekschema bij. Elke belastingtool, SQLite-grootboek of accountant-export die Polygon-transacties filtert op het USDC.e-contract zal stilletjes elke transactie na de migratie missen. Voeg het pUSD-contractadres toe als alias.
  2. Annoteer de snapshot-conversie. Hoewel het in de meeste regimes niet-belastbaar is, log de conversie expliciet in je administratie: bedrag, blok, tijdstempel, en een notitie dat het een 1:1-stablecoin-migratie is. Als je jurisdictie het later opvraagt, wil je een schoon audittraject.

Israëlische traders moeten Belastinggids raadplegen voor ITA-specifieke rapportage; de migratie zelf verandert de standaardbehandeling niet, maar de contractadres-wijziging doet ertoe voor geautomatiseerde rapportagetools.

09
Hoofdstuk Negen

Deel 9: Pro-tips van operators die de overstap meemaakten

  1. Pin py-clob-client op >=0.40,<0.50 in requirements.txt. De 0.40-lijn is het minimum dat pUSD-orders correct ondertekent; een bovengrens vastpinnen beschermt tegen een toekomstige breaking change.
  2. Keur allowances opnieuw goed tijdens een venster met laag volume. De update_balance_allowance-call is één Polygon-transactie; het doen tijdens een snelle marktbeweging vraagt om de gas-piek.
  3. Maak een snapshot van je USDC.e-saldo vóór 28 april. Hoewel de conversie automatisch is, is een verifieerbaar pre-snapshot-saldo de schoonste manier om een reconciliatieprobleem te betwisten.
  4. Annuleer rustende orders handmatig vóór het snapshot. Ze werden sowieso door het platform geannuleerd; het zelf doen geeft je een schone grootboekinvoer in plaats van een "system cancel"-regel.
  5. Let op verouderde dashboards. Polymarket-dashboards van derden (PolymarketAnalytics, Polynance, enz.) deden twee tot drie dagen over het opnieuw parsen van pUSD-events. De lokale DB van je bot kan een paar dagen vóór de publieke dashboards lopen.
  6. Bridge USDC.e-dust op je eigen schema. De meeste accounts hebben een paar cent overgebleven USDC.e van oude vergoedings-rebates of peer-transfers. Gebruik Circle's CCTP of de standaard Polygon Portal-bridge - geen haast.
  7. Houd het oude USDC.e-adres in je block-explorer-alerts. Als er ooit iets uit je proxy in USDC.e veegt na de migratie, is dat een rode vlag die onmiddellijk onderzoek waard is.

Wat nu?

Belangrijkste les

Sinds de migratie van april 2026 settled Polymarket in pUSD - een door Polymarket uitgegeven token die 1:1 gedekt is door USDC; je stort en neemt nog steeds USDC op, dus de verandering speelt zich vooral onder de motorkap af.