Capítulo 36 de 36
A Versão Curta
Em 28 de abril de 2026, a Polymarket migrou sua garantia de liquidação na Polygon de USDC.e (o token USDC bridged, contrato 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) para pUSD, uma stablecoin (stablecoin) emitida pela Polymarket, resgatável na proporção de 1:1 por USDC nativo. Os traders da web app não precisaram fazer nada - saldos e posições foram convertidos automaticamente no bloco de snapshot. Operadores de API e bots precisam atualizar: o endereço do ativo de garantia dentro de cada assinatura de ordem CLOB mudou, as ordens antigas assinadas contra USDC.e foram canceladas, e o py-clob-client 0.40 ou mais recente é necessário. Este guia percorre exatamente as mudanças de código, contrato e aprovação necessárias para manter um bot em funcionamento durante e após a transição.
Parte 1: Três stablecoins, um Polygon
Antes da migração, três stablecoins em USD existiam na órbita da Polymarket no Polygon. Conhecer a diferença é o primeiro passo para entender por que a Polymarket mudou de plataforma.
| Token | Emissor | Contrato no Polygon | Tipo de reserva |
|---|---|---|---|
| USDC.e | ponte Polygon PoS | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Faz a ponte a partir da mainnet da Ethereum |
| USDC (nativo) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | Nativo, emitido diretamente no Polygon |
| pUSD | Tesouraria da Polymarket | Veja docs.polymarket.com/pusd | Lastreado 1:1 por USDC nativo, atestação mensal |
A Polymarket escolheu originalmente USDC.e porque era a variante dominante de USDC no Polygon no lançamento em 2020. A Circle mais tarde emitiu USDC nativo diretamente no Polygon e sinalizou a futura descontinuação da variante com ponte. Continuar a liquidar todos os mercados em USDC.e expunha a Polymarket ao risco residual de uma desativação repentina da ponte. Migrar para uma stablecoin (stablecoin) controlada pela Polymarket resolve isso e desbloqueia futuras funcionalidades do produto (por exemplo, margem de perps, depósitos em vault, recibos cross-chain) que compartilham a mesma unidade de conta.
Parte 2: O que é (e o que não é) o pUSD
pUSD é um token ERC-20 padrão na Polygon (chain id 137) com 6 casas decimais, a mesma precisão da USDC. Ele só pode ser cunhado pelo contrato do Tesouro da Polymarket e pode ser resgatado 1:1 por USDC nativo a qualquer momento, sem taxa na conversão (a taxa de gas da rede ainda se aplica). A reserva que lastreia o pUSD é mantida em contas segregadas e reportada mensalmente com uma atestação de terceiros.
pUSD não é uma stablecoin (stablecoin) algorítmica, não é supercolateralizada com cripto e não rende juros. Se você mantiver pUSD fora da Polymarket, deve entendê-lo como um IOU emitido pela Polymarket por USDC nativo - útil dentro da plataforma, resgatável sob demanda, mas sem benefício em mantê-lo por longo prazo em uma carteira externa.
docs.polymarket.com/pusd-audit em base mensal. Verifique ambos antes de manter saldos grandes por muito tempo.Parte 3: O que os traders da web app viram
Se você negocia apenas por meio de polymarket.com, a migração foi invisível. No bloco de snapshot em 28 de abril de 2026:
- Todo saldo de USDC.e mantido em uma carteira proxy da Polymarket foi convertido atomicamente para pUSD na proporção de 1:1.
- As posições em aberto mantiveram o mesmo valor em dólares, as mesmas odds do resultado e a mesma expiração. Os IDs de tokens condicionais não mudaram.
- As ordens resting denominadas em USDC.e foram canceladas no snapshot. Novas ordens após a migração passam a ser assinadas em pUSD automaticamente.
- Os saques para carteiras externas deixaram de enviar USDC.e e passaram a enviar USDC nativo (ou, a pedido, pUSD bruto - a maioria dos usuários nunca precisa disso).
Nenhuma assinatura, transação ou alteração de configurações foi necessária. As ordens limitadas resting que eram importantes para você devem ser refeitas manualmente após a migração; o cancelamento foi um evento único.
Parte 4: Operadores de API e de bots - Mudanças críticas
Esta é a parte que vai quebrar um bot se você não agir.
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174). Após a migração, é pUSD. Uma ordem assinada com base no endereço antigo vai falhar na verificação de assinatura no CLOB e retornar um erro de "invalid provedor de liquidez (maker) asset" ou "signature mismatch".Atualize o py-clob-client
A Polymarket publicou py-clob-client 0.40.0 duas semanas antes da mudança com suporte completo a pUSD. A linha 0.34.x foi descontinuada no dia seguinte à migração.
# Atualize para uma versão compatível com pUSD
pip install --upgrade "py-clob-client>=0.40.0"
# Verifique o ativo de garantia configurado
python -c "from py_clob_client.constants import POLYGON; \
print('Endereço do pUSD:', POLYGON.get('collateral'))"
O novo SDK obtém o endereço da garantia a partir da configuração da rede na inicialização, então você não precisa codificar nada manualmente. Se você fez fork ou travou uma versão mais antiga, a opção mais segura é excluir o arquivo de lock, reinstalar com o módulo de constantes mais recente e executar novamente a sua suíte de testes.
Reautorize as permissões
A sua carteira proxy da Polymarket precisa de uma permissão ERC-20 da sua conta de trading -> contrato CTF Exchange para o token pUSD. A permissão antiga para USDC.e ainda está na blockchain, mas é completamente inútil: o CLOB não vai consumi-la. Sem uma nova permissão pUSD, toda ordem retorna "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 para contas Magic-link
)
client.set_api_creds(client.create_or_derive_api_creds())
# Uma vez: autorize pUSD para o contrato CTF Exchange
# (Auxiliar adicionado no py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")
Atualize as credenciais da API
As chaves de API existentes continuam funcionando, mas se você derivou credenciais antes de 1 de abril, deve renová-las por precaução: a assinatura ECDSA da L1 agora se vincula a um domínio que inclui o novo endereço da garantia. O caminho mais simples:
creds = client.create_or_derive_api_creds() # nova derivação idempotente
client.set_api_creds(creds)
# Salve no seu .env
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Parte 5: Verificando Seu Bot Pós-Migração
Execute este teste de fumaça mínimo antes de deixar qualquer lógica de dimensionamento atuar com dinheiro real:
# 1. Confirme o saldo de pUSD na carteira proxy
from py_clob_client.client import ClobClient
client = ClobClient(...) # como acima
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("Saldo de pUSD (raw):", balance["balance"])
print("Autorização para a exchange:", balance["allowance"])
# 2. Faça uma ordem limitada de $1 bem longe do touch
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
token_id=test_token_id,
price=0.05, # longe do mercado
size=20, # nocional de $1 a $0.05
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. Cancele e confirme
client.cancel(order_id=resp["orderID"])
Se as três chamadas forem bem-sucedidas, sua integração está correta: o SDK assinou contra pUSD, a autorização é reconhecida e o livro de ordens está consistente. Aumente a escala gradualmente.
Parte 6: Erros comuns e correções
| Erro ou sintoma | Causa | Correção |
|---|---|---|
signature verification failed | Ordem assinada contra o domínio EIP-712 de USDC.e | Atualize o py-clob-client para 0.40+; recarregue o módulo constants |
INSUFFICIENT_ALLOWANCE em todas as ordens | Sem allowance de pUSD da sua carteira proxy para a CTF Exchange | Execute update_balance_allowance(asset_type="COLLATERAL") uma vez |
invalid maker asset | Endereço USDC.e codificado diretamente ainda está na sua configuração | Substitua qualquer endereço de collateral codificado diretamente pela constante do SDK |
| A carteira mostra saldo de USDC.e > 0 após a migração | Tokens "dust" que sobraram de uma transferência de terceiros | Faça a ponte de USDC.e de volta para USDC nativo no CCTP da Circle, ou deixe como está |
| Reconexão do WebSocket produz livro vazio | A assinatura antiga usou um estado de mercado obsoleto de antes do snapshot | Remova o cache local, busque novamente o livro via REST e depois reinscreva-se |
| Levantamento para carteira externa mostra pUSD em vez de USDC | Você selecionou "pUSD" em vez de "USDC" no modal de saque | Escolha "USDC" - a ponte converte pUSD → USDC nativo em 1:1 |
Parte 7: Tokens Condicionais, IDs de Ordem e Outras Coisas Que Não Mudaram
Para manter o escopo da refatoração honesto, aqui está a lista de identificadores que permanecem estáveis durante a migração:
- Contrato de Conditional Token (CTF): endereço idêntico. Suas posições ERC-1155 de YES / NO não foram alteradas.
- condition_id e question_id: determinísticos a partir dos parâmetros do mercado; não são afetados pela troca de colateral.
- token_id (resultado): derivado de condition_id + índice do resultado; inalterado.
- Endereço da carteira proxy da Polymarket: mesmo endereço; mesmo código no estilo Gnosis Safe.
- Chave de API, segredo da API, passphrase da API: ainda válidos (recomendamos a rotação; não é obrigatório).
- Esquemas do WebSocket: idênticos; o novo campo
assetlê "pUSD" em vez de "USDC.e" nos eventos de preenchimento. - APIs da Gamma e de Dados: sem autenticação, inalteradas. Elas nunca referenciaram diretamente o token de colateral.
Parte 8: Implicações fiscais e de contabilidade
Na maioria das jurisdições, a conversão automática de USDC.e para pUSD é uma troca de stablecoins atreladas ao USD em condição idêntica, na proporção de 1:1 e não gera evento tributável. Seu custo de aquisição e período de posse são mantidos.
Dito isso, dois itens de contabilidade merecem atenção:
- Atualize o esquema do seu livro-razão. Qualquer ferramenta fiscal, livro-razão SQLite ou exportação para contador que filtre transações na Polygon pelo contrato de USDC.e deixará de notar silenciosamente toda transação pós-migração. Adicione o endereço do contrato de pUSD como um alias.
- Anote a conversão do snapshot. Embora não seja tributável na maioria dos regimes, registre a conversão explicitamente nos seus registros: valor, bloco, timestamp e uma nota de que se trata de uma migração de stablecoin (stablecoin) 1:1. Se a sua jurisdição questionar isso depois, você vai querer um trilho de auditoria limpo.
Traders israelenses devem consultar Tax Guide para relatórios específicos da ITA; a migração em si não altera o tratamento padrão, mas a mudança de endereço do contrato importa para ferramentas automatizadas de reporte.
Parte 9: Dicas profissionais de operadores que viveram a mudança
- Fixe o py-clob-client em
>=0.40,<0.50no requirements.txt. A linha 0.40 é o mínimo que assina ordens pUSD corretamente; definir um limite superior protege contra uma futura mudança incompatível. - Reaprove as allowances durante uma janela de baixo volume. A chamada
update_balance_allowanceé uma transação na Polygon; fazê-la durante um movimento rápido de mercado é pedir um pico na taxa de gas. - Faça um snapshot do seu saldo de USDC.e antes de 28 de abril. Embora a conversão seja automática, um saldo pré-snapshot verificável é a forma mais limpa de contestar qualquer problema de reconciliação.
- Cancele manualmente as ordens resting antes do snapshot. Elas foram canceladas pelo venue de qualquer forma; fazer isso você mesmo gera uma entrada limpa no livro-razão em vez de uma linha de "system cancel".
- Fique atento a painéis desatualizados. Os painéis terceirizados da Polymarket (PolymarketAnalytics, Polynance, etc.) levaram de dois a três dias para reprocessar os eventos pUSD. O banco de dados local do seu bot pode ficar à frente dos painéis públicos por alguns dias.
- Transfira o dust de USDC.e no seu próprio ritmo. A maioria das contas tem alguns centavos de USDC.e restantes de antigos rebates de taxas ou transferências entre pares. Use o CCTP da Circle ou a ponte padrão Polygon Portal - sem pressa.
- Mantenha o endereço antigo de USDC.e nos seus alertas do explorador de blocos. Se algo algum dia sair da sua proxy wallet em USDC.e após a migração, isso é um sinal de alerta que vale investigar imediatamente.
Qual é o Próximo Passo?
- Guia da API da Polymarket - o guia completo da API, atualizado para pUSD
- Guia de Depósito - depositando USDC e recebendo pUSD dentro do app
- Guia de Saque - sacando pUSD como USDC nativo para uma carteira externa
- Ferramentas e Recursos - painéis de terceiros agora atualizados para pUSD
- Glossário - definições em linguagem simples para todos os termos usados aqui
Principal conclusão
A migração para pUSD da Polymarket é uma refatoração única de baixo risco para qualquer operador que já execute um bot da Polymarket. Atualize o py-clob-client para 0.40+, reautorize as permissões de pUSD, execute um teste de fumaça de US$1 e retome. A infraestrutura por trás disso (CTF, IDs de condição, IDs de token, chaves de API) não mudou, então a área de impacto é pequena e a história de reversão é limpa.











