Y林YourAirdrop.AI|5月 13, 2026 13:31
The migration failure of the polymarket wallet may result in the inability to claim airdrops in the future.
After upgrading PUSD on PolyMarket, many people and I encountered situations where we were unable to migrate our old wallets, resulting in the inability to see our balance. I had Codex reinterpret the wallet migration method, and now the issue has been completely resolved. I am working on my own github@yourairdrop The solution has been publicly released, or simply send the following prompt to your AI:
You are an engineer familiar with Polymarket CLOB, py-clob-cient-v2, builder relay, and Polygon. Please help me migrate an old Polymarket Safe/Proxy wallet to the new Deposit Wallet path.
Background:
I have an old Safe/Proxy, and the old path uses signture_type=1/2.
I want to deploy and control the new deposit wallet using the same EOA private key.
The new path should use signture_type=3/POLY_1271.
Old Safe will not be upgraded to a new wallet; The correct process is to deploy a new deposit wallet using the same EOA through relay WALLET CREATE.
Please follow the steps below and perform read-only verification at each step:
Initialize the builder relay with the owner EOA private key:
RelayClient(" https://relayer-v2. ((polymarket.com))/", 137, private_key, builder_config)
Builder config uses BUILDER-API_KEY/BUILDER-API_SCRET/BUILDER-PASSPHRASE
Get new deposit wallet address:
Call relaxer. get-expected_depositw_allet()
Check if eth_getCode (address) on the chain is empty
If not deployed, execute:
relayer.deploy_deposit_wallet()
response.wait()
Check again that eth_getCode (address) is not empty
Verify wallet ownership:
Call the owner() of the deposit wallet
Owner must be equal to EOA address
Verify funds:
Check pUSD balance of (deposit wallet)
PUSD Address: 0xC011a7E12a19f7B1f670D46F03B03f334E82DFB
If the balance is 0, it means that trading is not yet possible; Need to transfer pUSD to deposit wallet
Initialize CLOB:
ClobClient(" https://clob. ((polymarket.com))", chain_id=137, key=private_key, signature_type=3, funder=deposit_wallet)
client.set_api_creds(client.derive_api_key())
Call update_malance-allowing() and get_ balance_allowing()
If the allowance is 0, initiate an approval from the deposit wallet using relaxer executioner_depositw_allet_bat():
pUSD approve(CTF Exchange V2, MAX),0xE111180000d2663C0091e4f400237545B87B996B
pUSD approve(NegRisk Exchange V2, MAX),0xe2222d279d744050d28e00520010520000310F59
ConditionalTokens setApprovalForAll(NegRisk Adapter, true),0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296
Before placing an order, limit order and market order must be constructed offline to check:
order.maker == deposit_wallet
order.signer == deposit_wallet
order.signatureType == 3
The market order must also meet the above conditions; Only patch limit order is not enough
Key troubleshooting:
Balance=0: Usually pUSD is not in the deposit wallet.
Allowance=0: Relaxer batch approval is required from the deposit wallet, EOA direct approval is not useful.
The order designer address has to be the address of the API KEY: check if the maker/designer/signtureType/under/API key is consistent; The path to the deposit wallet must be maker=designer=fund=deposit wallet, and the actual signing private key is owner EOA.
Do not disclose the private key API secret、 Complete wallet address; The output address only retains the first three digits of 0x The last three.
Share To
Timeline
HotFlash
APP
X
Telegram
CopyLink