Розділ 36 з 36
Коротка версія
28 квітня 2026 року Polymarket перевів свій заставний актив для розрахунків у Polygon з USDC.e (мостовий токен USDC, контракт 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) на pUSD, стейблкоїн, випущений Polymarket, що викуповується 1:1 за нативний USDC. Трейдери у вебдодатку нічого не робили - баланси та позиції було автоматично конвертовано в блоці знімка. Оператори API та ботів мають оновити: адреса активу застави всередині кожного підпису ордерів CLOB змінилася, старі ордери, підписані під USDC.e, були скасовані, і потрібна версія py-clob-client 0.40 або новіша. Цей посібник покроково описує точні зміни в коді, контракті та дозволах, потрібні, щоб бот працював під час і після переходу.
Частина 1: Три стейблкоїни, один Polygon
До міграції в орбіті Polymarket на Polygon існували три USD-стейблкоїни. Розуміння різниці - це перший крок до усвідомлення того, чому Polymarket змінив майданчик.
| Токен | Емітент | Контракт на Polygon | Тип резерву |
|---|---|---|---|
| USDC.e | мост Polygon PoS | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Переведений з Ethereum mainnet |
| USDC (native) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | Нативний, випущений безпосередньо на Polygon |
| pUSD | Скарбниця Polymarket | Див. docs.polymarket.com/pusd | Забезпечений у співвідношенні 1:1 нативним USDC, щомісячна атестація |
Спочатку Polymarket обрав USDC.e, тому що це був домінантний варіант USDC на Polygon під час запуску у 2020 році. Згодом Circle випустила native USDC безпосередньо на Polygon і натякнула на майбутнє виведення з ужитку переведеної версії. Продовження розрахунків за кожним ринком в USDC.e наражало Polymarket на довгохвостий ризик раптового згортання мосту. Перехід на стейблкоїн, контрольований Polymarket, вирішує цю проблему і відкриває майбутні функції продукту (наприклад, маржа для perps, депозити у vault, міжланцюгові квитанції), що використовують ту саму розрахункову одиницю.
Частина 2: Що таке pUSD і чим він не є
pUSD - це стандартний токен ERC-20 на Polygon (chain id 137) з 6 десятковими знаками, з тією самою точністю, що й USDC. Його може карбувати лише контракт Polymarket Treasury, і його можна в будь-який момент обміняти 1:1 на нативний USDC, без комісії за конвертацію (комісія за газ у мережі все одно застосовується). Резерв, що забезпечує pUSD, зберігається на відокремлених рахунках і щомісяця звітується з підтвердженням третьої сторони.
pUSD не є алгоритмічним стейблкоїном, не має криптовалютного надлишкового забезпечення і не приносить дохід. Якщо ви тримаєте pUSD поза Polymarket, слід сприймати його як виданий Polymarket IOU для нативного USDC - корисний на платформі, доступний до викупу на вимогу, але без жодної користі від довгострокового зберігання в зовнішньому гаманці.
docs.polymarket.com/pusd-audit щомісяця. Перевіряйте обидва перед тим, як тримати великі залишки протягом тривалого часу.Частина 3: Що бачили трейдери веб-додатка
Якщо ви торгуєте лише через polymarket.com, міграція була непомітною. На блоці знімка 28 квітня 2026 року:
- Усі баланси USDC.e, що зберігалися в проксі-гаманці Polymarket, були атомарно конвертовані в pUSD у співвідношенні 1:1.
- Відкриті позиції зберегли ту саму доларову вартість, ті самі шанси на результат і той самий термін дії. Ідентифікатори умовних токенів не змінилися.
- Заявки в книзі заявок, деноміновані в USDC.e, були скасовані на момент знімка. Нові заявки після міграції автоматично підписуються в pUSD.
- Виведення на зовнішні гаманці змінилося з відправлення USDC.e на відправлення нативного USDC (або, за запитом, сирого pUSD - більшості користувачів це ніколи не потрібно).
Жодних підписів, транзакцій або змін налаштувань не вимагалося. Активні лімітні заявки, які були для вас важливими, слід розмістити вручну заново після міграції; скасування було одноразовою подією.
Частина 4: Оператори API та ботів - Критичні зміни
Це та частина, яка зламає бота, якщо ви не вживете дій.
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174). Після міграції це pUSD. Заявка, підписана щодо старої адреси, не пройде перевірку підпису в CLOB і поверне помилку "invalid маркетмейкер (maker) asset" або "signature mismatch".Оновіть py-clob-client
Polymarket випустив py-clob-client 0.40.0 за два тижні до переходу з повною підтримкою pUSD. Лінію 0.34.x було виведено з експлуатації наступного дня після міграції.
# Оновіть до версії з підтримкою pUSD
pip install --upgrade "py-clob-client>=0.40.0"
# Перевірте підключений актив застави
python -c "from py_clob_client.constants import POLYGON; \
print('pUSD address:', POLYGON.get('collateral'))"
Новий SDK отримує адресу застави з конфігурації мережі під час запуску, тож вам не потрібно нічого жорстко прописувати. Якщо ви форкнули або зафіксували старішу версію, найбезпечніший крок - видалити lockfile, перевстановити з найновішим модулем constants і знову запустити ваш тестовий набір.
Повторно схваліть дозволи
Ваш проксі-гаманець Polymarket потребує дозволу ERC-20 від вашого торгового акаунта → контракту CTF Exchange для токена pUSD. Старий дозвіл для USDC.e все ще є в ланцюгу, але повністю марний: CLOB не використовуватиме його. Без нового дозволу pUSD кожна заявка повертає "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 для акаунтів Magic-link
)
client.set_api_creds(client.create_or_derive_api_creds())
# Один раз: схвалити pUSD для контракту CTF Exchange
# (Додано допоміжний метод у py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")
Оновіть облікові дані API
Існуючі API-ключі продовжать працювати, але якщо ви отримали облікові дані до 1 квітня, вам слід ротаційно їх замінити як запобіжний захід: ECDSA-підпис L1 тепер прив'язується до домену, що включає нову адресу застави. Найпростіший шлях:
creds = client.create_or_derive_api_creds() # ідемпотентне повторне виведення
client.set_api_creds(creds)
# Збережіть у вашому .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Частина 5: Перевірка вашого бота після міграції
Запустіть цей мінімальний smoke test, перш ніж дозволити будь-якій логіці визначення розміру працювати на реальні гроші:
# 1. Підтвердьте баланс pUSD на проксі-гаманці
from py_clob_client.client import ClobClient
client = ClobClient(...) # як вище
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("Баланс pUSD (raw):", balance["balance"])
print("Дозвіл для біржі:", balance["allowance"])
# 2. Розмістіть лімітну заявку на $1 далеко від поточного ринку
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
token_id=test_token_id,
price=0.05, # зовсім не близько до ринку
size=20, # номінал $1 за ціни $0.05
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. Скасуйте та підтвердьте
client.cancel(order_id=resp["orderID"])
Якщо всі три виклики успішні, ваше налаштування правильне: SDK підписувався проти pUSD, дозвіл розпізнано, а книга заявок узгоджена. Поступово збільшуйте масштаб знову.
Частина 6: Поширені помилки та виправлення
| Помилка або симптом | Причина | Виправлення |
|---|---|---|
signature verification failed | Заявка підписана для домену EIP-712 USDC.e | Оновіть py-clob-client до 0.40+; перезавантажте модуль constants |
INSUFFICIENT_ALLOWANCE для кожної заявки | Немає дозволу pUSD від вашого proxy до CTF Exchange | Запустіть update_balance_allowance(asset_type="COLLATERAL") один раз |
invalid maker asset | Адреса USDC.e, задана жорстко, усе ще є у вашій конфігурації | Замініть будь-яку жорстко задану адресу застави на константу SDK |
| Гаманець показує баланс USDC.e > 0 після міграції | Залишилися токени "dust" після переказу через сторонній сервіс | Переведіть USDC.e назад у нативний USDC через CCTP від Circle або залиште як є |
| Повторне підключення WebSocket створює порожню книгу заявок | Стара підписка використовувала застарілий стан ринку до знімка | Скиньте локальний кеш, знову отримайте книгу REST, потім підпишіться ще раз |
| Виведення на зовнішній гаманець показує pUSD замість USDC | Ви вибрали "pUSD" замість "USDC" у модалі виведення | Виберіть "USDC" - міст конвертує pUSD → нативний USDC у співвідношенні 1:1 |
Частина 7: Умовні токени, ID ордерів та інші речі, що Не Змінилися
Щоб чесно обмежити обсяг рефакторингу, ось список ідентифікаторів, які залишаються стабільними під час міграції:
- Контракт Conditional Token (CTF): ідентична адреса. Ваші позиції YES / NO ERC-1155 не зазнали змін.
- condition_id і question_id: детерміновані параметрами ринку; на них не впливає заміна колатералу.
- token_id (результат): похідний від condition_id + індексу результату; без змін.
- адреса проксі-гаманця Polymarket: та сама адреса; той самий код у стилі Gnosis Safe.
- API key, API secret, API passphrase: усе ще дійсні (рекомендуємо ротацію; не обов'язково).
- схеми WebSocket: ідентичні; нове поле
assetу подіях виконання читається як "pUSD" замість "USDC.e". - Gamma і Data APIs: без автентифікації, без змін. Вони ніколи не посилалися безпосередньо на токен колатералу.
Частина 8: Податкові та бухгалтерські наслідки
Для більшості юрисдикцій автоматична конвертація USDC.e у pUSD є обміном стейблкоїнів, прив'язаних до USD, 1:1, за принципом like-kind і не спричиняє оподатковуваної події. Ваша собівартість і період володіння переносяться.
Тим не менш, дві бухгалтерські деталі заслуговують на увагу:
- Оновіть схему своєї книги. Будь-який податковий інструмент, книга SQLite або експорт для бухгалтера, що фільтрує транзакції Polygon за контрактом USDC.e, непомітно пропустить кожну транзакцію після міграції. Додайте адресу контракту pUSD як псевдонім.
- Занотуйте конвертацію знімка. Навіть якщо в більшості режимів вона не оподатковується, явно зафіксуйте конвертацію у своїх записах: суму, блок, час і примітку про те, що це міграція стейблкоїна 1:1. Якщо у вашій юрисдикції пізніше виникнуть запитання, вам знадобиться чистий слід для аудиту.
Ізраїльським трейдерам слід звернутися до Податкового посібника для звітності, специфічної для ITA; сама міграція не змінює стандартний режим, але зміна адреси контракту має значення для автоматизованих інструментів звітності.
Частина 9: Поради від операторів, які пережили перехід
- Зафіксуйте py-clob-client на
>=0.40,<0.50у requirements.txt. Лінія 0.40 - це мінімум, який правильно підписує ордери pUSD; фіксація верхньої межі захищає від майбутньої несумісної зміни. - Повторно підтвердіть allowances у період низького обсягу. Виклик
update_balance_allowance- це одна транзакція Polygon; виконувати його під час швидкого руху ринку - це просити про стрибок комісії за газ. - Зробіть знімок свого балансу USDC.e до 28 квітня. Хоча конвертація відбувається автоматично, перевірний попередній знімок балансу - це найчистіший спосіб оскаржити будь-яку проблему звірки.
- Скасуйте ордери, що очікують виконання, вручну до знімка. На майданчику їх усе одно скасували б; якщо зробити це самостійно, ви отримаєте чистий запис у книзі замість рядка "system cancel".
- Слідкуйте за застарілими дашбордами. Сторонні дашборди Polymarket (PolymarketAnalytics, Polynance тощо) витратили два-три дні на повторний розбір подій pUSD. Локальна БД вашого бота може випереджати публічні дашборди на кілька днів.
- Бріджте дрібні залишки USDC.e у зручний для вас час. У більшості акаунтів є кілька центів залишкового USDC.e від старих ребейтів за комісію або переказів між користувачами. Використайте CCTP від Circle або стандартний міст Polygon Portal - без поспіху.
- Тримайте стару адресу USDC.e у своїх сповіщеннях блок-експлорера. Якщо після міграції з вашого проксі коли-небудь буде виведено щось у USDC.e, це червоний прапорець, який варто негайно перевірити.
Що далі?
- Polymarket API Guide - повний посібник з API, оновлений для pUSD
- Deposit Guide - внесення USDC і отримання pUSD всередині застосунку
- Withdraw Guide - виведення pUSD як нативного USDC на зовнішній гаманець
- Tools & Resources - сторонні панелі тепер оновлені для pUSD
- Glossary - прості англомовні визначення для кожного терміна, використаного тут
Ключовий висновок
Міграція Polymarket на pUSD - це разовий рефакторинг із низьким ризиком для будь-якого оператора, який уже запускає бот Polymarket. Оновіть py-clob-client до 0.40+, повторно схваліть дозволи pUSD, запустіть smoke-тест на $1 і продовжуйте роботу. Інфраструктура під капотом (CTF, condition IDs, token IDs, API keys) не змінилася, тож обсяг змін невеликий, а сценарій відкату - простий.











