Rozdział 36 z 36

Wersja skrócona

28 kwietnia 2026 Polymarket zmigrował swoje zabezpieczenie rozliczeniowe na Polygon z USDC.e (mostowany token USDC, kontrakt 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) na pUSD, stablecoin emitowany przez Polymarket, wymienialny 1:1 na natywne USDC. Traderzy aplikacji webowej nie zrobili nic - salda i pozycje auto-skonwertowały się w bloku migawki. Operatorzy API i botów muszą zaktualizować: adres aktywa zabezpieczającego wewnątrz każdej sygnatury zlecenia CLOB się zmienił, stare zlecenia podpisane wobec USDC.e zostały anulowane, a py-clob-client 0.40 lub nowszy jest wymagany. Ten przewodnik przeprowadza przez dokładny kod, kontrakt i zmiany zatwierdzeń potrzebne, by utrzymać bota działającego przez i po przełączeniu.

Czego się nauczysz: dlaczego Polymarket odszedł od USDC.e, co zmieniło się na poziomie kontraktu, dokładna ścieżka aktualizacji py-clob-client, jak ponownie zatwierdzić limity dla nowego zabezpieczenia, jak zweryfikować swoje saldo po zamianie i jak obsłużyć starszy pył USDC.e, który większość kont teraz trzyma.
Wymagania wstępne: powinieneś już mieć działające konto Polymarket, podstawową znajomość kontraktów Polygon i istniejącego bota lub ręczny tryb pracy API sprzed 28 kwietnia 2026. Jeśli zaczynasz od zera dziś, po prostu zainstaluj najnowszy SDK i przeskocz do Rozdziału Czwartego - nigdy nie będziesz musiał dotykać USDC.e.
01
Rozdział Pierwszy

Część 1: Trzy stablecoiny, jeden Polygon

Przed migracją trzy stablecoiny USD istniały w orbicie Polymarket na Polygon. Znajomość różnicy to pierwszy krok do zrozumienia, dlaczego Polymarket zmienił miejsce obrotu.

TokenEmitentKontrakt na PolygonTyp rezerwy
USDC.eMost Polygon PoS0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174Mostowany z mainnetu Ethereum
USDC (natywne)Circle0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359Natywne, emitowane bezpośrednio na Polygon
pUSDSkarbiec PolymarketZobacz docs.polymarket.com/pusdZabezpieczone 1:1 natywnym USDC, miesięczna atestacja

Polymarket pierwotnie wybrał USDC.e, bo był dominującym wariantem USDC na Polygon przy starcie w 2020. Circle później wyemitował natywne USDC bezpośrednio na Polygon i zasygnalizował ostateczne wycofanie wariantu mostowanego. Dalsze rozliczanie każdego rynku w USDC.e narażało Polymarket na ryzyko długiego ogona nagłego zwinięcia mostu. Migracja do stablecoina kontrolowanego przez Polymarket rozwiązuje to i odblokowuje przyszłe funkcje produktowe (np. depozyt perpów, wpłaty do skarbców, paragony międzyłańcuchowe), które dzielą tę samą jednostkę rozliczeniową.

02
Rozdział Drugi

Część 2: Czym pUSD jest (i czym nie jest)

pUSD to standardowy token ERC-20 na Polygon (chain id 137) z 6 miejscami dziesiętnymi, tą samą precyzją co USDC. Może być mintowany tylko przez kontrakt Skarbca Polymarket i jest wymienialny 1:1 na natywne USDC w dowolnym momencie, bez opłaty za konwersję (gaz sieciowy wciąż obowiązuje). Rezerwa zabezpieczająca pUSD jest trzymana na oddzielonych kontach i raportowana co miesiąc z atestacją strony trzeciej.

pUSD nie jest stablecoinem algorytmicznym, nie jest nadzabezpieczony krypto i nie jest oprocentowany. Jeśli trzymasz pUSD poza Polymarket, powinieneś myśleć o nim jak o emitowanym przez Polymarket IOU na natywne USDC - przydatnym wewnątrz platformy, wymienialnym na żądanie, ale bez korzyści z trzymania długoterminowo w zewnętrznym portfelu.

Audyt i rezerwy: inteligentny kontrakt pUSD został audytowany przez stałych audytorów Polymarket. Raporty atestacji rezerw są publikowane na docs.polymarket.com/pusd-audit w miesięcznej kadencji. Zweryfikuj oba przed trzymaniem dużych sald długoterminowo.
03
Rozdział Trzeci

Część 3: Co zobaczyli traderzy aplikacji webowej

Jeśli handlujesz tylko przez polymarket.com, migracja była niewidoczna. W bloku migawki 28 kwietnia 2026:

  • Każde saldo USDC.e trzymane w portfelu proxy Polymarket zostało atomowo skonwertowane na pUSD w stosunku 1:1.
  • Otwarte pozycje zachowały tę samą wartość dolarową, te same kursy wyników i ten sam termin wygaśnięcia. Token ID warunkowe się nie zmieniły.
  • Spoczywające zlecenia denominowane w USDC.e zostały anulowane w migawce. Nowe zlecenia po migracji podpisują się wobec pUSD automatycznie.
  • Wypłaty do zewnętrznych portfeli przełączyły się z wysyłania USDC.e na wysyłanie natywnego USDC (lub, na żądanie, surowego pUSD - większość użytkowników nigdy tego nie potrzebuje).

Żadne sygnatury, transakcje ani zmiany ustawień nie były wymagane. Spoczywające zlecenia z limitem, które miały dla Ciebie znaczenie, powinny być ręcznie złożone ponownie po migracji; anulowanie było zdarzeniem jednorazowym.

04
Rozdział Czwarty

Część 4: Operatorzy API i botów - krytyczne zmiany

To część, która zepsuje bota, jeśli nie zadziałasz.

Co zmieniło się w sygnaturze zlecenia: zlecenia CLOB są podpisywane przez EIP-712 i odnoszą się do adresu aktywa zabezpieczającego jako części danych typowanych. Przed migracją tym adresem był USDC.e (0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174). Po migracji jest to pUSD. Zlecenie podpisane wobec starego adresu nie przejdzie weryfikacji sygnatury w CLOB i zwróci błąd „invalid maker asset” lub „signature mismatch”.

Zaktualizuj py-clob-client

Polymarket opublikował py-clob-client 0.40.0 dwa tygodnie przed przełączeniem z pełnym wsparciem pUSD. Linia 0.34.x została wycofana dzień po migracji.

# Podbij do wydania świadomego pUSD
pip install --upgrade "py-clob-client>=0.40.0"

# Zweryfikuj podłączone aktywo zabezpieczające
python -c "from py_clob_client.constants import POLYGON; \
print('adres pUSD:', POLYGON.get('collateral'))"

Nowy SDK pobiera adres zabezpieczenia z konfiguracji łańcucha przy starcie, więc nie musisz niczego twardo kodować. Jeśli sforkowałeś lub przypiąłeś starszą wersję, najbezpieczniejszym ruchem jest usunięcie lockfile, ponowna instalacja z najnowszym modułem stałych i ponowne uruchomienie zestawu testów.

Ponownie zatwierdź limity

Twój portfel proxy Polymarket potrzebuje limitu ERC-20 z Twojego konta handlowego → kontraktu CTF Exchange dla tokenu pUSD. Stary limit dla USDC.e wciąż jest on-chain, ale całkowicie bezużyteczny: CLOB go nie skonsumuje. Bez świeżego limitu pUSD każde zlecenie zwraca "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 dla kont Magic-link
)
client.set_api_creds(client.create_or_derive_api_creds())

# Jednorazowo: zatwierdź pUSD dla kontraktu CTF Exchange
# (Helper dodany w py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")

Odśwież dane uwierzytelniające API

Istniejące klucze API dalej działają, ale jeśli wyprowadziłeś dane uwierzytelniające przed 1 kwietnia, powinieneś je rotować dla ostrożności: sygnatura L1 ECDSA teraz wiąże się z domeną, która zawiera nowy adres zabezpieczenia. Najprostsza ścieżka:

creds = client.create_or_derive_api_creds()  # idempotentne ponowne wyprowadzenie
client.set_api_creds(creds)

# Zapisz trwale do swojego .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
05
Rozdział Piąty

Część 5: Weryfikacja Twojego bota po migracji

Uruchom ten minimalny test dymny, zanim wypuścisz jakąkolwiek logikę doboru wielkości na prawdziwe pieniądze:

# 1. Potwierdź saldo pUSD na portfelu proxy
from py_clob_client.client import ClobClient
client = ClobClient(...)  # jak powyżej
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("saldo pUSD (surowe):", balance["balance"])
print("limit dla giełdy:", balance["allowance"])

# 2. Złóż zlecenie z limitem $1 daleko od dotknięcia
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
    token_id=test_token_id,
    price=0.05,        # nigdzie blisko rynku
    size=20,           # nominał $1 przy $0.05
    side="BUY",
))
resp = client.post_order(order)
print(resp)

# 3. Anuluj i potwierdź
client.cancel(order_id=resp["orderID"])

Jeśli wszystkie trzy wywołania się powiodą, Twoje podłączenie jest dobre: SDK podpisał wobec pUSD, limit jest rozpoznany, a arkusz zleceń jest spójny. Skaluj z powrotem stopniowo.

Zaplanuj aktualizację starannie: jeśli prowadziłeś bota nieprzerwanie przez blok migawki, stan Twojego lokalnego arkusza zleceń prawdopodobnie się rozszedł. Zawsze uzgadniaj wobec migawek REST po ważnej zmianie miejsca obrotu przed kwotowaniem wielkości.
06
Rozdział Szósty

Część 6: Częste błędy i naprawy

Błąd lub objawPrzyczynaNaprawa
signature verification failedZlecenie podpisane wobec domeny EIP-712 USDC.eZaktualizuj py-clob-client do 0.40+; przeładuj moduł stałych
INSUFFICIENT_ALLOWANCE na każdym zleceniuBrak limitu pUSD z Twojego proxy do CTF ExchangeUruchom update_balance_allowance(asset_type="COLLATERAL") raz
invalid maker assetTwardo zakodowany adres USDC.e wciąż w Twojej konfiguracjiZastąp każdy twardo zakodowany adres zabezpieczenia stałą z SDK
Portfel pokazuje saldo USDC.e > 0 po migracjiTokeny „pyłu” pozostałe z transferu strony trzeciejZmostuj USDC.e z powrotem na natywne USDC przez CCTP Circle, albo zostaw
Ponowne połączenie WebSocket daje pusty arkuszStara subskrypcja użyła nieaktualnego stanu rynku sprzed migawkiWyrzuć lokalny cache, ponownie pobierz arkusz REST, potem subskrybuj ponownie
Wypłata do zewnętrznego portfela pokazuje pUSD zamiast USDCWybrałeś „pUSD” zamiast „USDC” w modalu wypłatyWybierz „USDC” - most konwertuje pUSD → natywne USDC w stosunku 1:1
07
Rozdział Siódmy

Część 7: Tokeny warunkowe, ID zleceń i inne rzeczy, które się nie zmieniły

By uczciwie utrzymać zakres refaktoryzacji, oto lista identyfikatorów stabilnych przez migrację:

  • Kontrakt tokenów warunkowych (CTF): identyczny adres. Twoje pozycje ERC-1155 TAK / NIE są nietknięte.
  • condition_id i question_id: deterministyczne z parametrów rynku; nieobjęte zamianą zabezpieczenia.
  • token_id (wynik): wyprowadzony z condition_id + indeks wyniku; niezmieniony.
  • Adres portfela proxy Polymarket: ten sam adres; ten sam kod w stylu Gnosis Safe.
  • Klucz API, sekret API, hasło API: wciąż ważne (zalecane rotowanie; niewymagane).
  • Schematy WebSocket: identyczne; nowe pole asset odczytuje „pUSD” zamiast „USDC.e” w zdarzeniach realizacji.
  • API Gamma i Data: bez uwierzytelniania, niezmienione. Nigdy nie odnosiły się bezpośrednio do tokenu zabezpieczenia.
Jedna mała zmiana UI: widok portfela proxy Polymarket teraz pokazuje salda w pUSD, z etykietą 1:1 USD. Eksploratory bloków (PolygonScan, API Polygonscan) pokazują transfery ERC-20 pUSD w historii transakcji portfela proxy. Stare transfery USDC.e pozostają widoczne w historii; Twój adres będzie po prostu mieć dwa wiersze tokenów ERC-20 przez jakiś czas.
08
Rozdział Ósmy

Część 8: Implikacje podatkowe i księgowe

Dla większości jurysdykcji auto-konwersja USDC.e na pUSD to zamiana stablecoinów przywiązanych do USD w stosunku 1:1 tego samego rodzaju i nie tworzy zdarzenia podatkowego. Twoja podstawa kosztowa i okres trzymania przechodzą dalej.

Mimo to dwie pozycje księgowe zasługują na uwagę:

  1. Zaktualizuj schemat swojej księgi. Każde narzędzie podatkowe, księga SQLite lub eksport księgowego, które filtruje transakcje Polygon według kontraktu USDC.e, po cichu przeoczy każdą transakcję po migracji. Dodaj adres kontraktu pUSD jako alias.
  2. Opisz konwersję migawki. Choć jest niepodlegająca opodatkowaniu w większości reżimów, zaloguj konwersję wyraźnie w swoich zapisach: kwota, blok, sygnatura czasowa i notatka, że to migracja stablecoina 1:1. Jeśli Twoja jurysdykcja zapyta o to później, chcesz mieć czystą ścieżkę audytu.

Traderzy izraelscy powinni skonsultować Przewodnik podatkowy po raportowanie specyficzne dla ITA; sama migracja nie zmienia standardowego traktowania, ale zmiana adresu kontraktu ma znaczenie dla zautomatyzowanych narzędzi raportowania.

09
Rozdział Dziewiąty

Część 9: Wskazówki profesjonalistów od operatorów, którzy przeżyli przełączenie

  1. Przypnij py-clob-client do >=0.40,<0.50 w requirements.txt. Linia 0.40 to minimum, które poprawnie podpisuje zlecenia pUSD; przypięcie górnej granicy chroni przed przyszłą zmianą łamiącą.
  2. Ponownie zatwierdź limity podczas okna o niskim wolumenie. Wywołanie update_balance_allowance to jedna transakcja Polygon; robienie tego podczas szybkiego ruchu rynku to proszenie się o skok gazu.
  3. Zrób migawkę swojego salda USDC.e przed 28 kwietnia. Choć konwersja jest automatyczna, weryfikowalne saldo sprzed migawki to najczystszy sposób zakwestionowania jakiegokolwiek problemu uzgadniania.
  4. Anuluj spoczywające zlecenia ręcznie przed migawką. I tak zostały anulowane przez miejsce obrotu; zrobienie tego samemu daje Ci czysty wpis w księdze zamiast linii „system cancel”.
  5. Uważaj na nieaktualne pulpity. Pulpity Polymarket stron trzecich (PolymarketAnalytics, Polynance itd.) potrzebowały dwóch-trzech dni, by ponownie sparsować zdarzenia pUSD. Lokalna baza danych Twojego bota może być przed publicznymi pulpitami przez kilka dni.
  6. Zmostuj pył USDC.e we własnym harmonogramie. Większość kont ma kilka centów pozostałego USDC.e ze starych rabatów opłat lub transferów peer. Użyj CCTP Circle lub standardowego mostu Polygon Portal - bez pośpiechu.
  7. Trzymaj stary adres USDC.e w alertach eksploratora bloków. Jeśli cokolwiek kiedykolwiek zmiecie z Twojego proxy w USDC.e po migracji, to czerwona flaga warta natychmiastowego zbadania.

Co dalej?