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.

O que você vai aprender: por que a Polymarket deixou de usar USDC.e, o que mudou no nível do contrato, o caminho exato de upgrade do py-clob-client, como reaprovar allowances para a nova garantia, como verificar seu saldo após a troca e como lidar com o pequeno saldo residual de USDC.e legado que a maioria das contas agora possui.
Pré-requisitos: você já deve ter uma conta Polymarket funcionando, familiaridade básica com contratos da Polygon e um bot existente ou fluxo manual de API que seja anterior a 28 de abril de 2026. Se você está começando do zero hoje, basta instalar o SDK mais recente e pular para o Capítulo Quatro - você nunca precisará tocar em USDC.e.
01
Capítulo Um

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.

TokenEmissorContrato no PolygonTipo de reserva
USDC.eponte Polygon PoS0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174Faz a ponte a partir da mainnet da Ethereum
USDC (nativo)Circle0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359Nativo, emitido diretamente no Polygon
pUSDTesouraria da PolymarketVeja docs.polymarket.com/pusdLastreado 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.

02
Capítulo Dois

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.

Auditoria e reservas: o contrato inteligente do pUSD foi auditado pelos auditores permanentes da Polymarket. Os relatórios de atestação de reservas são publicados em docs.polymarket.com/pusd-audit em base mensal. Verifique ambos antes de manter saldos grandes por muito tempo.
03
Capítulo três

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.

04
Capítulo Quatro

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.

O que mudou na assinatura da ordem: As ordens CLOB são assinadas via EIP-712 e referenciam o endereço do ativo de garantia como parte dos dados tipados. Antes da migração, esse endereço era USDC.e (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)
05
Capítulo Cinco

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.

Sincronize a atualização com cuidado: se você executou o bot continuamente através do bloco de snapshot, o estado local do seu livro de ofertas provavelmente divergiu. Sempre reconcilie com snapshots REST após uma grande mudança de plataforma antes de cotar tamanho.
06
Capítulo Seis

Parte 6: Erros comuns e correções

Erro ou sintomaCausaCorreção
signature verification failedOrdem assinada contra o domínio EIP-712 de USDC.eAtualize o py-clob-client para 0.40+; recarregue o módulo constants
INSUFFICIENT_ALLOWANCE em todas as ordensSem allowance de pUSD da sua carteira proxy para a CTF ExchangeExecute update_balance_allowance(asset_type="COLLATERAL") uma vez
invalid maker assetEndereço USDC.e codificado diretamente ainda está na sua configuraçãoSubstitua qualquer endereço de collateral codificado diretamente pela constante do SDK
A carteira mostra saldo de USDC.e > 0 após a migraçãoTokens "dust" que sobraram de uma transferência de terceirosFaç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 vazioA assinatura antiga usou um estado de mercado obsoleto de antes do snapshotRemova o cache local, busque novamente o livro via REST e depois reinscreva-se
Levantamento para carteira externa mostra pUSD em vez de USDCVocê selecionou "pUSD" em vez de "USDC" no modal de saqueEscolha "USDC" - a ponte converte pUSD → USDC nativo em 1:1
07
Capítulo Sete

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 asset lê "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.
Uma pequena mudança na interface: a visualização da carteira proxy da Polymarket agora mostra saldos em pUSD, com um rótulo de USD 1:1. Os exploradores de blocos (PolygonScan, API do Polygonscan) mostram transferências ERC-20 de pUSD no histórico de transações da carteira proxy. As antigas transferências de USDC.e continuam visíveis no histórico; seu endereço simplesmente terá duas linhas de token ERC-20 por um tempo.
08
Capítulo Oito

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:

  1. 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.
  2. 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.

09
Capítulo Nove

Parte 9: Dicas profissionais de operadores que viveram a mudança

  1. Fixe o py-clob-client em >=0.40,<0.50 no 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.
  2. 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.
  3. 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.
  4. 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".
  5. 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.
  6. 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.
  7. 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?

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.