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.
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.
| Token | Emitent | Kontrakt na Polygon | Typ rezerwy |
|---|---|---|---|
| USDC.e | Most Polygon PoS | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Mostowany z mainnetu Ethereum |
| USDC (natywne) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | Natywne, emitowane bezpośrednio na Polygon |
| pUSD | Skarbiec Polymarket | Zobacz docs.polymarket.com/pusd | Zabezpieczone 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ą.
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.
docs.polymarket.com/pusd-audit w miesięcznej kadencji. Zweryfikuj oba przed trzymaniem dużych sald długoterminowo.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.
Część 4: Operatorzy API i botów - krytyczne zmiany
To część, która zepsuje bota, jeśli nie zadziałasz.
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)
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.
Część 6: Częste błędy i naprawy
| Błąd lub objaw | Przyczyna | Naprawa |
|---|---|---|
signature verification failed | Zlecenie podpisane wobec domeny EIP-712 USDC.e | Zaktualizuj py-clob-client do 0.40+; przeładuj moduł stałych |
INSUFFICIENT_ALLOWANCE na każdym zleceniu | Brak limitu pUSD z Twojego proxy do CTF Exchange | Uruchom update_balance_allowance(asset_type="COLLATERAL") raz |
invalid maker asset | Twardo zakodowany adres USDC.e wciąż w Twojej konfiguracji | Zastąp każdy twardo zakodowany adres zabezpieczenia stałą z SDK |
| Portfel pokazuje saldo USDC.e > 0 po migracji | Tokeny „pyłu” pozostałe z transferu strony trzeciej | Zmostuj USDC.e z powrotem na natywne USDC przez CCTP Circle, albo zostaw |
| Ponowne połączenie WebSocket daje pusty arkusz | Stara subskrypcja użyła nieaktualnego stanu rynku sprzed migawki | Wyrzuć lokalny cache, ponownie pobierz arkusz REST, potem subskrybuj ponownie |
| Wypłata do zewnętrznego portfela pokazuje pUSD zamiast USDC | Wybrałeś „pUSD” zamiast „USDC” w modalu wypłaty | Wybierz „USDC” - most konwertuje pUSD → natywne USDC w stosunku 1:1 |
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
assetodczytuje „pUSD” zamiast „USDC.e” w zdarzeniach realizacji. - API Gamma i Data: bez uwierzytelniania, niezmienione. Nigdy nie odnosiły się bezpośrednio do tokenu zabezpieczenia.
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ę:
- 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.
- 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.
Część 9: Wskazówki profesjonalistów od operatorów, którzy przeżyli przełączenie
- Przypnij py-clob-client do
>=0.40,<0.50w requirements.txt. Linia 0.40 to minimum, które poprawnie podpisuje zlecenia pUSD; przypięcie górnej granicy chroni przed przyszłą zmianą łamiącą. - Ponownie zatwierdź limity podczas okna o niskim wolumenie. Wywołanie
update_balance_allowanceto jedna transakcja Polygon; robienie tego podczas szybkiego ruchu rynku to proszenie się o skok gazu. - 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.
- 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”.
- 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.
- 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.
- 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?
- Przewodnik API Polymarket - pełny przewodnik API, zaktualizowany dla pUSD
- Przewodnik wpłat - wpłacanie USDC i otrzymywanie pUSD wewnątrz aplikacji
- Przewodnik wypłat - wypłacanie pUSD jako natywne USDC do zewnętrznego portfela
- Narzędzia i zasoby - pulpity stron trzecich teraz zaktualizowane dla pUSD
- Słownik - definicje prostym językiem każdego użytego tu terminu
Polecane lektury
Zacznij tutaj, jeśli jesteś nowy, lub przeskocz prosto do strony pasującej do Twojego etapu:





