Глава 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 bridge | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Перенесен с Ethereum mainnet |
| USDC (native) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | Нативный, выпущен напрямую на Polygon |
| pUSD | Polymarket Treasury | See docs.polymarket.com/pusd | Обеспечен в соотношении 1:1 нативным USDC, ежемесячная аттестация |
Изначально Polymarket выбрал USDC.e, потому что это был доминирующий вариант USDC на Polygon на момент запуска в 2020 году. Позже Circle выпустила native USDC напрямую на Polygon и обозначила eventual отказ от bridged-версии. Продолжая проводить расчеты по каждому рынку в USDC.e, Polymarket подвергал себя долгосрочному риску внезапного сворачивания моста. Переход на стейблкоин под управлением Polymarket решает эту проблему и открывает будущие продуктовые функции (например, маржу для перпсов, депозиты в vault, кроссчейн-квитанции), которые используют одну и ту же единицу учета.
Часть 2: Что такое pUSD (и чем он не является)
pUSD - это стандартный ERC-20 токен на Polygon (chain id 137) с 6 знаками после запятой, с той же точностью, что и USDC. Его может выпускать только контракт Polymarket Treasury, и в любой момент его можно обменять 1:1 на нативный USDC без комиссии за конвертацию (сетевой gas fee по-прежнему взимается). Резервы, обеспечивающие pUSD, хранятся на сегрегированных счетах и ежемесячно публикуются с подтверждением третьей стороны.
pUSD не является алгоритмическим стейблкоином, не имеет криптовалютного сверхобеспечения и не приносит доходности. Если вы держите pUSD вне Polymarket, следует воспринимать его как выпущенное Polymarket долговое обязательство на нативный 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 и заново запустить тестовый набор.
Повторно подтвердите allowances
Вашему прокси-кошельку Polymarket нужен ERC-20 allowance от вашего торгового аккаунта → контракта CTF Exchange для токена pUSD. Старый allowance для USDC.e по-прежнему есть в сети, но совершенно бесполезен: CLOB не будет его использовать. Без свежего allowance для 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 for Magic-link accounts
)
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 апреля, их следует обновить в качестве меры предосторожности: L1 ECDSA-подпись теперь привязана к домену, который включает новый адрес залога. Самый простой путь:
creds = client.create_or_derive_api_creds() # idempotent re-derive
client.set_api_creds(creds)
# Сохраните в ваш .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Часть 5: Проверка вашего бота после миграции
Запустите этот минимальный smoke-тест, прежде чем позволять любой логике определения размера работать с реальными деньгами:
# 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("Allowance для биржи:", 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 подписал against pUSD, allowance распознается, а журнал заявок согласован. Постепенно увеличивайте масштаб обратно.
Часть 6: Распространенные ошибки и способы их устранения
| Ошибка или симптом | Причина | Исправление |
|---|---|---|
signature verification failed | Ордер подписан против домена EIP-712 USDC.e | Обновите py-clob-client до 0.40+; перезагрузите модуль constants |
INSUFFICIENT_ALLOWANCE для каждого ордера | Нет allowance pUSD от вашего proxy к CTF Exchange | Один раз выполните update_balance_allowance(asset_type="COLLATERAL") |
invalid maker asset | В вашей конфигурации по-прежнему жестко задан адрес USDC.e | Замените любой жестко заданный адрес collateral на константу SDK |
| Кошелек показывает баланс USDC.e > 0 после миграции | Оставшиеся "пылевые" токены после перевода через сторонний сервис | Верните USDC.e обратно в нативный USDC через CCTP Circle или оставьте как есть |
| Повторное подключение WebSocket создает пустой стакан заявок | Старая подписка использовала устаревшее состояние рынка до snapshot | Удалите локальный кэш, заново получите стакан через 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в событиях fill читает "pUSD" вместо "USDC.e". - Gamma и Data APIs: без аутентификации, без изменений. Они никогда не ссылались на токен залога напрямую.
Часть 8: Налоговые и бухгалтерские последствия
Для большинства юрисдикций автоматическая конвертация USDC.e в pUSD является обменом стейблкоинов, привязанных к USD, в соотношении 1:1 как аналогичных активов и не создает налогооблагаемого события. Ваша себестоимость и срок владения переносятся.
Тем не менее, два бухгалтерских момента заслуживают внимания:
- Обновите схему своего реестра. Любой налоговый инструмент, реестр SQLite или экспорт для бухгалтера, который фильтрует транзакции Polygon по контракту USDC.e, будет незаметно пропускать все транзакции после миграции. Добавьте адрес контракта pUSD как псевдоним.
- Зафиксируйте конвертацию снимка. Хотя в большинстве режимов она не облагается налогом, явно внесите конвертацию в свои записи: сумму, блок, временную метку и примечание о том, что это миграция стейблкоина 1:1. Если ваша юрисдикция позже запросит сведения, вам нужен чистый аудиторский след.
Израильским трейдерам следует обратиться к Налоговому руководству для отчетности, специфичной для ITA; сама миграция не меняет стандартный порядок учета, но изменение адреса контракта имеет значение для автоматизированных инструментов отчетности.
Часть 9: Профессиональные советы от операторов, которые пережили переход
- Зафиксируйте py-clob-client в
>=0.40,<0.50в requirements.txt. Ветка 0.40 - это минимум, который корректно подписывает pUSD-ордера; верхний предел защищает от будущего несовместимого изменения. - Переодобрите лимиты в окно низкого объема. Вызов
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) не изменилась, поэтому зона воздействия мала, а откат выполняется без проблем.











